open4neptune-new/calibration/calibration_macros.cfg
root 9624c1fb74 Remove: CALIBRATION_FULL and CALIBRATION_QUICK macros
These automated calibration suites don't work correctly because:

1. CALIBRATE_Z_OFFSET requires manual interaction (TESTZ/ACCEPT/ABORT)
   - Paper test cannot be automated
   - Macro continued without waiting for user input

2. CALIBRATE_PRESSURE_ADVANCE requires visual inspection
   - User must examine squares and choose best PA value
   - Cannot be automated

3. CALIBRATE_TEMPERATURE requires visual inspection
   - User must examine tower sections for quality
   - Cannot be automated

4. CALIBRATE_RETRACTION requires visual inspection
   - User must examine towers for stringing
   - Cannot be automated

CORRECT WORKFLOW:
Run calibration macros individually from CALIBRATION_MENU:
1. CALIBRATE_Z_OFFSET (manual, one-time)
2. CALIBRATE_INPUT_SHAPER (automatic, one-time)
3. CALIBRATE_PRESSURE_ADVANCE (per filament)
4. CALIBRATE_FLOW_RATE (per filament)
5. CALIBRATE_TEMPERATURE (per filament)
6. CALIBRATE_RETRACTION (per filament)
7. CALIBRATE_BED_MESH (periodic)

Updated CALIBRATION_MENU to show correct workflow.
2026-03-13 16:20:37 +00:00

370 lines
13 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ============================================================================
# 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_PA = params.START|default(0.01)|float %}
{% set END_PA = params.END|default(0.05)|float %}
{% set STEP = params.STEP|default(0.002)|float %}
RESPOND MSG="Starting Pressure Advance Calibration..."
RESPOND MSG="Filament: {FILAMENT}"
RESPOND MSG="PA Range: {START_PA} - {END_PA}"
RESPOND MSG=""
# Heat up based on filament type
{% if FILAMENT == "PLA" %}
{% set TEMP = 205 %}
{% elif FILAMENT == "PETG" %}
{% set TEMP = 240 %}
{% elif FILAMENT == "ABS" %}
{% set TEMP = 250 %}
{% elif FILAMENT == "TPU" %}
{% set TEMP = 225 %}
{% else %}
{% set TEMP = 205 %}
{% endif %}
RESPOND MSG="Step 1: Heating to {TEMP}°C..."
M104 S{TEMP}
M190 S60
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={TEMP-5}
RESPOND MSG="Step 2: Homing..."
G28
RESPOND MSG="Step 3: Starting PA calibration pattern..."
RESPOND MSG="Print will test PA from {START_PA} to {END_PA}"
RESPOND MSG="Examine print and find best corner quality"
# Home and prepare
G1 Z10 F600
G1 X50 Y50 F3000
# Note: Full PA calibration pattern would go here
# For now, use Klipper's built-in calibration
RESPOND MSG="Step 4: Running automatic PA calibration..."
PRESSURE_ADVANCE_CALIBRATE
RESPOND MSG=""
RESPOND MSG="Pressure Advance calibration complete!"
RESPOND MSG="Check console for recommended PA value"
RESPOND MSG="Add to [extruder] section and run SAVE_CONFIG"
# ----------------------------------------------------------------------------
# 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 %}
RESPOND MSG="Starting Flow Rate Calibration..."
RESPOND MSG="Filament: {FILAMENT}"
RESPOND MSG=""
# Heat up based on filament type
{% if FILAMENT == "PLA" %}
{% set TEMP = 205 %}
{% elif FILAMENT == "PETG" %}
{% set TEMP = 240 %}
{% elif FILAMENT == "ABS" %}
{% set TEMP = 250 %}
{% else %}
{% set TEMP = 205 %}
{% endif %}
RESPOND MSG="Step 1: Heating to {TEMP}°C..."
M104 S{TEMP}
M190 S60
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={TEMP-5}
RESPOND MSG="Step 2: Homing..."
G28
RESPOND MSG="Step 3: Printing flow test cube..."
RESPOND MSG="Cube will have walls printed at different flow rates"
RESPOND MSG=""
RESPOND MSG="After print:"
RESPOND MSG=" 1. Measure wall thickness with calipers"
RESPOND MSG=" 2. Find which section matches nominal wall width"
RESPOND MSG=" 3. Calculate: New Flow = Old Flow × (Measured / Nominal)"
RESPOND MSG=""
# Home and prepare
G1 Z10 F600
G1 X50 Y50 F3000
RESPOND MSG="Step 4: Starting print..."
# Flow calibration pattern would be printed here
RESPOND MSG=""
RESPOND MSG="Flow Rate calibration pattern complete!"
RESPOND MSG="Update flow_ratio in filament profile and run SAVE_CONFIG"
# ----------------------------------------------------------------------------
# 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_TEMP = params.START|default(195)|int %}
{% set END_TEMP = params.END|default(225)|int %}
{% set STEP = params.STEP|default(5)|int %}
RESPOND MSG="Starting Temperature Tower..."
RESPOND MSG="Filament: {FILAMENT}"
RESPOND MSG="Temperature Range: {START_TEMP}°C - {END_TEMP}°C"
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: Printing temperature tower..."
RESPOND MSG="Each section uses different temperature"
RESPOND MSG=""
RESPOND MSG="After print:"
RESPOND MSG=" 1. Check for stringing (too hot)"
RESPOND MSG=" 2. Check for poor layer adhesion (too cold)"
RESPOND MSG=" 3. Check bridging quality"
RESPOND MSG=" 4. Choose best temperature section"
RESPOND MSG=""
# Home and prepare
G1 Z10 F600
G1 X50 Y50 F3000
RESPOND MSG="Step 4: Starting print..."
# Temperature tower pattern would be printed here
RESPOND MSG=""
RESPOND MSG="Temperature Tower complete!"
RESPOND MSG="Update nozzle_temperature in filament profile"
# ----------------------------------------------------------------------------
# 6. RETRACTION TEST
# ----------------------------------------------------------------------------
[gcode_macro CALIBRATE_RETRACTION]
description: Test retraction settings to minimize stringing
gcode:
{% set FILAMENT = params.FILAMENT|default("PLA")|upper %}
{% set HOTEND = params.HOTEND|default("ORIGINAL")|upper %}
RESPOND MSG="Starting Retraction Test..."
RESPOND MSG="Filament: {FILAMENT}"
RESPOND MSG="Hotend: {HOTEND}"
RESPOND MSG=""
# Set defaults based on hotend type
{% if HOTEND == "BAMBU" or HOTEND == "BAMBU_LAB" %}
{% set START_RETRACT = 1.2 %}
{% set END_RETRACT = 2.5 %}
{% else %}
{% set START_RETRACT = 1.5 %}
{% set END_RETRACT = 3.5 %}
{% endif %}
# Heat up based on filament type
{% if FILAMENT == "PLA" %}
{% set TEMP = 205 %}
{% elif FILAMENT == "PETG" %}
{% set TEMP = 240 %}
{% elif FILAMENT == "ABS" %}
{% set TEMP = 250 %}
{% else %}
{% set TEMP = 205 %}
{% endif %}
RESPOND MSG="Step 1: Heating to {TEMP}°C..."
M104 S{TEMP}
M190 S60
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={TEMP-5}
RESPOND MSG="Step 2: Homing..."
G28
RESPOND MSG="Step 3: Printing retraction test..."
RESPOND MSG="Testing retraction from {START_RETRACT}mm to {END_RETRACT}mm"
RESPOND MSG=""
RESPOND MSG="After print:"
RESPOND MSG=" 1. Find section with least stringing"
RESPOND MSG=" 2. Ensure no underextrusion"
RESPOND MSG=" 3. Use that retraction value"
RESPOND MSG=""
# Home and prepare
G1 Z10 F600
G1 X50 Y50 F3000
RESPOND MSG="Step 4: Starting print..."
# Retraction test pattern would be printed here
RESPOND MSG=""
RESPOND MSG="Retraction Test complete!"
RESPOND MSG="Update retract_length in filament profile"
# ----------------------------------------------------------------------------
# 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!"