# ============================================================================ # NEPTUNE 4 PLUS CALIBRATION SUITE # Complete calibration macros for Cartographer 3D # ============================================================================ # Installation: Add [include calibration/*.cfg] to printer.cfg # Usage: Run CALIBRATION_MENU in console # ============================================================================ # ---------------------------------------------------------------------------- # MAIN MENU - Shows all available calibration options # ---------------------------------------------------------------------------- [gcode_macro CALIBRATION_MENU] description: Show calibration menu with all options gcode: RESPOND MSG="==============================================" RESPOND MSG=" NEPTUNE 4 PLUS CALIBRATION SUITE" RESPOND MSG="==============================================" RESPOND MSG="" RESPOND MSG="Run these macros INDIVIDUALLY (in order):" RESPOND MSG="" RESPOND MSG="SETUP (do once):" RESPOND MSG=" CALIBRATE_Z_OFFSET - Z0 with Cartographer (MANUAL!)" RESPOND MSG=" CALIBRATE_INPUT_SHAPER - ADXL resonance (if ADXL connected)" RESPOND MSG="" RESPOND MSG="FILAMENT-SPECIFIC (per filament):" RESPOND MSG=" CALIBRATE_PRESSURE_ADVANCE - PA tuning (inspect squares)" RESPOND MSG=" CALIBRATE_FLOW_RATE - Flow calibration (measure)" RESPOND MSG=" CALIBRATE_TEMPERATURE - Temp tower (inspect)" RESPOND MSG=" CALIBRATE_RETRACTION - Retraction test (inspect)" RESPOND MSG="" RESPOND MSG="PERIODIC:" RESPOND MSG=" CALIBRATE_BED_MESH - Mesh verification" RESPOND MSG="" RESPOND MSG="⚠️ IMPORTANT:" RESPOND MSG=" - Each macro must be run individually" RESPOND MSG=" - Some require manual interaction (Z-Offset)" RESPOND MSG=" - Some require visual inspection (PA, Temp, Retract)" RESPOND MSG=" - Run SAVE_CONFIG after Z-Offset and Input Shaper" RESPOND MSG="==============================================" # ---------------------------------------------------------------------------- # 1. Z-OFFSET CALIBRATION with Cartographer # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_Z_OFFSET] description: Calibrate Z-offset using Cartographer touch gcode: RESPOND MSG="Starting Z-Offset Calibration..." RESPOND MSG="" RESPOND MSG="Step 1: Heating up..." # Heat up for calibration M104 S50 M190 S60 TEMPERATURE_WAIT SENSOR=extruder MINIMUM=45 TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM=55 RESPOND MSG="Step 2: Homing..." G28 RESPOND MSG="Step 3: Cartographer Z0 calibration..." RESPOND MSG="" RESPOND MSG="⚠️ MANUAL INTERACTION REQUIRED!" RESPOND MSG="" RESPOND MSG="Cartographer will prompt for manual Z adjustment." RESPOND MSG="In console, use these commands:" RESPOND MSG=" TESTZ Z=0.01 - Move nozzle DOWN (closer to bed)" RESPOND MSG=" TESTZ Z=-0.01 - Move nozzle UP (away from bed)" RESPOND MSG=" TESTZ Z=0.005 - Fine adjustment" RESPOND MSG="" RESPOND MSG="When nozzle barely touches paper:" RESPOND MSG=" ACCEPT - Finish calibration" RESPOND MSG=" ABORT - Cancel" RESPOND MSG="" RESPOND MSG="Starting probe now - watch the console!" # Start Cartographer calibration (Survey Touch) CARTOGRAPHER_SCAN_CALIBRATE RESPOND MSG="" RESPOND MSG="Z-Offset calibration complete!" RESPOND MSG="Don't forget to run SAVE_CONFIG" # ---------------------------------------------------------------------------- # 2. INPUT SHAPER CALIBRATION # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_INPUT_SHAPER] description: Measure resonance frequencies with ADXL345 gcode: RESPOND MSG="Starting Input Shaper Calibration..." RESPOND MSG="" RESPOND MSG="Step 1: Homing..." G28 RESPOND MSG="Step 2: Measuring X-axis resonance..." MEASURE_AXES_NOISE axis=x RESPOND MSG="Step 3: Measuring Y-axis resonance..." MEASURE_AXES_NOISE axis=y RESPOND MSG="" RESPOND MSG="Input Shaper calibration complete!" RESPOND MSG="Check console for shaper_type and shaper_freq values" RESPOND MSG="Add to [input_shaper] section and run SAVE_CONFIG" # ---------------------------------------------------------------------------- # 3. PRESSURE ADVANCE CALIBRATION # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_PRESSURE_ADVANCE] description: Calibrate Pressure Advance for optimal corners gcode: {% set FILAMENT = params.FILAMENT|default("PLA")|upper %} {% set START = params.START|default(0.01)|float %} {% set END = params.END|default(0.05)|float %} {% set STEPS = params.STEPS|default(10)|int %} {% set TEMP = params.TEMP|default(205)|int %} RESPOND MSG="Starting Pressure Advance Calibration..." RESPOND MSG="Filament: {FILAMENT}" RESPOND MSG="PA Range: {START} to {END} in {STEPS} steps" RESPOND MSG="" # Call the actual print pattern PA_TEST_PATTERN START={START} END={END} STEPS={STEPS} TEMP={TEMP} RESPOND MSG="" RESPOND MSG="Pressure Advance calibration complete!" RESPOND MSG="Examine squares and find best corner quality" # ---------------------------------------------------------------------------- # 4. FLOW RATE CALIBRATION # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_FLOW_RATE] description: Calibrate flow rate for exact wall dimensions gcode: {% set FILAMENT = params.FILAMENT|default("PLA")|upper %} {% set START = params.START|default(0.90)|float %} {% set END = params.END|default(1.10)|float %} {% set STEPS = params.STEPS|default(5)|int %} {% set TEMP = params.TEMP|default(205)|int %} RESPOND MSG="Starting Flow Rate Calibration..." RESPOND MSG="Filament: {FILAMENT}" RESPOND MSG="Flow range: {START} to {END} in {STEPS} sections" RESPOND MSG="" # Call the actual print pattern FLOW_TEST_CUBE START={START} END={END} STEPS={STEPS} TEMP={TEMP} RESPOND MSG="" RESPOND MSG="Flow Rate calibration pattern complete!" RESPOND MSG="Measure walls with calipers and calculate optimal flow" # ---------------------------------------------------------------------------- # 5. TEMPERATURE TOWER # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_TEMPERATURE] description: Print temperature tower to find optimal temp gcode: {% set FILAMENT = params.FILAMENT|default("PLA")|upper %} {% set START = params.START|default(195)|int %} {% set END = params.END|default(225)|int %} {% set STEP = params.STEP|default(5)|int %} {% set BED = params.BED|default(60)|int %} RESPOND MSG="Starting Temperature Tower..." RESPOND MSG="Filament: {FILAMENT}" RESPOND MSG="Temperature Range: {START}°C - {END}°C (step: {STEP}°C)" RESPOND MSG="" # Call the actual print pattern TEMP_TOWER START={START} END={END} STEP={STEP} BED={BED} RESPOND MSG="" RESPOND MSG="Temperature Tower complete!" RESPOND MSG="Examine sections for best quality" # ---------------------------------------------------------------------------- # 6. RETRACTION TEST # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_RETRACTION] description: Test retraction settings to minimize stringing gcode: {% set FILAMENT = params.FILAMENT|default("PLA")|upper %} {% set START = params.START|default(1.5)|float %} {% set END = params.END|default(3.5)|float %} {% set STEPS = params.STEPS|default(8)|int %} {% set TEMP = params.TEMP|default(205)|int %} RESPOND MSG="Starting Retraction Test..." RESPOND MSG="Filament: {FILAMENT}" RESPOND MSG="Retraction range: {START}mm to {END}mm in {STEPS} towers" RESPOND MSG="" # Call the actual print pattern RETRACT_TEST_PATTERN START={START} END={END} STEPS={STEPS} TEMP={TEMP} RESPOND MSG="" RESPOND MSG="Retraction Test complete!" RESPOND MSG="Find tower with least stringing" # ---------------------------------------------------------------------------- # 7. BED MESH CALIBRATION # ---------------------------------------------------------------------------- [gcode_macro CALIBRATE_BED_MESH] description: Calibrate bed mesh with Cartographer gcode: RESPOND MSG="Starting Bed Mesh Calibration..." RESPOND MSG="" RESPOND MSG="Step 1: Heating bed..." M190 S60 TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM=55 RESPOND MSG="Step 2: Homing..." G28 RESPOND MSG="Step 3: Clearing existing mesh..." BED_MESH_CLEAR RESPOND MSG="Step 4: Starting adaptive mesh calibration..." BED_MESH_CALIBRATE ADAPTIVE=1 RESPOND MSG="" RESPOND MSG="Bed Mesh calibration complete!" RESPOND MSG="Mesh saved automatically" RESPOND MSG="Run SAVE_CONFIG to make permanent" # ---------------------------------------------------------------------------- # ⚠️ CALIBRATION_FULL / CALIBRATION_QUICK REMOVED # ---------------------------------------------------------------------------- # These macros were removed because they don't work correctly: # # - CALIBRATE_Z_OFFSET requires manual interaction (TESTZ/ACCEPT) # - PA_TEST_PATTERN requires visual inspection # - TEMP_TOWER requires visual inspection # - RETRACT_TEST requires visual inspection # # Running these automatically without user input produces bad results! # # ✅ CORRECT WORKFLOW: # Run calibration macros INDIVIDUALLY from the menu: # 1. CALIBRATE_Z_OFFSET - Do manually with paper test # 2. CALIBRATE_INPUT_SHAPER - Automatic (if ADXL connected) # 3. CALIBRATE_PRESSURE_ADVANCE - Inspect test pattern # 4. CALIBRATE_FLOW_RATE - Measure with calipers # 5. CALIBRATE_TEMPERATURE - Inspect temp tower # 6. CALIBRATE_RETRACTION - Inspect stringing towers # 7. CALIBRATE_BED_MESH - Automatic # # After each calibration that changes settings: SAVE_CONFIG # ---------------------------------------------------------------------------- RESPOND MSG=" QUICK CALIBRATION COMPLETE!" RESPOND MSG="==============================================" RESPOND MSG="" RESPOND MSG="Run SAVE_CONFIG to save settings!"