- Octopus Pro: Motors (MOTOR0-7), bed heater (PA1), chamber heater (PB10) - Azteeg X3: Thermistors, endstops, probe, fan, hotend heaters - IDEX setup with external DM542T drivers - Includes wiring documentation and swap guide Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
277 lines
8.7 KiB
INI
277 lines
8.7 KiB
INI
# AON3D M2+ Macros
|
|
# For BTT Octopus Pro with IDEX configuration
|
|
|
|
# ================================================================================
|
|
# Cancel Print
|
|
# ================================================================================
|
|
[gcode_macro CANCEL_PRINT]
|
|
description: Cancel the actual running print
|
|
rename_existing: CANCEL_PRINT_BASE
|
|
gcode:
|
|
PARK_{printer.toolhead.extruder}
|
|
CANCEL_PRINT_BASE
|
|
|
|
# ================================================================================
|
|
# Pause / Resume
|
|
# ================================================================================
|
|
[gcode_macro PAUSE]
|
|
rename_existing: BASE_PAUSE
|
|
gcode:
|
|
{% set Z = params.Z|default(10)|float %}
|
|
{% set E = params.E|default(1)|float %}
|
|
SAVE_GCODE_STATE NAME=PAUSE_state
|
|
BASE_PAUSE
|
|
G91
|
|
G1 E-{E} F2100
|
|
G1 Z{Z}
|
|
PARK_{printer.toolhead.extruder}
|
|
|
|
[gcode_macro RESUME]
|
|
rename_existing: BASE_RESUME
|
|
gcode:
|
|
{% set E = params.E|default(1)|float %}
|
|
G91
|
|
G1 E{E} F2100
|
|
G90
|
|
RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1
|
|
BASE_RESUME
|
|
|
|
# ================================================================================
|
|
# End Print
|
|
# ================================================================================
|
|
[gcode_macro END_PRINT]
|
|
gcode:
|
|
{% set Z = params.Z|default(10)|float %}
|
|
{% set E = params.E|default(5)|float %}
|
|
# Turn off heaters and fan
|
|
M106 S0
|
|
SET_HEATER_TEMPERATURE HEATER=extruder TARGET=0
|
|
SET_HEATER_TEMPERATURE HEATER=extruder1 TARGET=0
|
|
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=0
|
|
SET_HEATER_TEMPERATURE HEATER=chamber TARGET=0
|
|
G91
|
|
G1 E-{E} F2100
|
|
G1 Z{Z}
|
|
PARK_{printer.toolhead.extruder}
|
|
# Disable steppers
|
|
M84
|
|
|
|
# ================================================================================
|
|
# Homing Override
|
|
# ================================================================================
|
|
[homing_override]
|
|
set_position_z: 10
|
|
gcode:
|
|
SAVE_GCODE_STATE NAME=home_z_state
|
|
G91
|
|
G1 Z10 F480
|
|
G28 X0 Y0
|
|
G28 Z0
|
|
G90
|
|
G1 Z3 F600
|
|
RESTORE_GCODE_STATE NAME=home_z_state
|
|
axes: z
|
|
|
|
# ================================================================================
|
|
# Idle Timeout
|
|
# ================================================================================
|
|
[idle_timeout]
|
|
timeout: 86400 # 24 hours
|
|
|
|
# ================================================================================
|
|
# IDEX Toolhead Macros
|
|
# ================================================================================
|
|
|
|
# Primary toolhead (T0) park position
|
|
[gcode_macro PARK_extruder]
|
|
gcode:
|
|
SAVE_GCODE_STATE NAME=park0
|
|
G90
|
|
G1 X-85 F12000
|
|
RESTORE_GCODE_STATE NAME=park0
|
|
|
|
# Activate primary extruder
|
|
[gcode_macro T0]
|
|
gcode:
|
|
PARK_{printer.toolhead.extruder}
|
|
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
|
SET_DUAL_CARRIAGE CARRIAGE=0
|
|
SET_GCODE_OFFSET Z=0
|
|
# Input shaper for carriage 0 (calibrate these values for your machine)
|
|
SET_INPUT_SHAPER SHAPER_FREQ_X=60 SHAPER_TYPE_X=ei SHAPER_FREQ_Y=40 SHAPER_TYPE_Y=ei
|
|
|
|
# Secondary toolhead (T1) park position
|
|
[gcode_macro PARK_extruder1]
|
|
gcode:
|
|
SAVE_GCODE_STATE NAME=park1
|
|
G90
|
|
G1 X518 F12000
|
|
RESTORE_GCODE_STATE NAME=park1
|
|
|
|
# Activate secondary extruder
|
|
[gcode_macro T1]
|
|
gcode:
|
|
PARK_{printer.toolhead.extruder}
|
|
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
|
SET_DUAL_CARRIAGE CARRIAGE=1
|
|
SET_GCODE_OFFSET Z=-0.45
|
|
# Input shaper for carriage 1 (calibrate these values separately)
|
|
SET_INPUT_SHAPER SHAPER_FREQ_X=60 SHAPER_TYPE_X=ei SHAPER_FREQ_Y=40 SHAPER_TYPE_Y=ei
|
|
|
|
# ================================================================================
|
|
# Calibration Macro
|
|
# ================================================================================
|
|
[gcode_macro CALIBRATE_M2]
|
|
description: Calibrate the current tool with a mesh centered at Z=0
|
|
gcode:
|
|
G28
|
|
G1 Z15 F600
|
|
G1 X200 Y200 F6000
|
|
Z_ENDSTOP_CALIBRATE
|
|
PROBE
|
|
TESTZ Z=-.001
|
|
G4 P500
|
|
M400
|
|
ACCEPT
|
|
SET_KINEMATIC_POSITION Z=0
|
|
BED_MESH_CALIBRATE
|
|
|
|
[gcode_macro Calibrate_Tool_Offset]
|
|
gcode:
|
|
z_endstop_calibrate
|
|
|
|
# ================================================================================
|
|
# Temperature Command Overrides (for chamber heater compatibility)
|
|
# ================================================================================
|
|
[gcode_macro M140]
|
|
rename_existing: M140.1
|
|
gcode:
|
|
{% if params.S is defined %}
|
|
SAVE_VARIABLE VARIABLE=bedtemp VALUE={params.S}
|
|
{% endif %}
|
|
M140.1 { rawparams }
|
|
|
|
[gcode_macro M190]
|
|
rename_existing: M190.1
|
|
gcode:
|
|
{% if params.S is defined %}
|
|
SAVE_VARIABLE VARIABLE=bedtemp VALUE={params.S}
|
|
{% endif %}
|
|
M190.1 { rawparams }
|
|
|
|
[gcode_macro M104]
|
|
rename_existing: M104.1
|
|
gcode:
|
|
{% if params.T is defined and params.T == "3"%}
|
|
SET_HEATER_TEMPERATURE HEATER=chamber TARGET={params.S if params.S is defined else "0"}
|
|
{% else %}
|
|
{% if params.S is defined %}
|
|
{% set varname = "t1temp" if params.T is defined and params.T == "1" else "t0temp" %}
|
|
SAVE_VARIABLE VARIABLE={varname} VALUE={params.S}
|
|
{% endif %}
|
|
M104.1 { rawparams }
|
|
{% endif %}
|
|
|
|
[gcode_macro M109]
|
|
rename_existing: M109.1
|
|
gcode:
|
|
{% if params.T is defined and params.T == "3"%}
|
|
SET_HEATER_TEMPERATURE HEATER=chamber TARGET={params.S if params.S is defined else "0"}
|
|
TEMPERATURE_WAIT SENSOR=chamber MINIMUM={params.S} MAXIMUM={params.S}
|
|
{% else %}
|
|
{% if params.S is defined %}
|
|
{% set varname = "t1temp" if params.T is defined and params.T == "1" else "t0temp" %}
|
|
SAVE_VARIABLE VARIABLE={varname} VALUE={params.S}
|
|
{% endif %}
|
|
M109.1 { rawparams }
|
|
{% endif %}
|
|
|
|
# ================================================================================
|
|
# G-code Offset Management
|
|
# ================================================================================
|
|
[gcode_macro SET_GCODE_OFFSET]
|
|
rename_existing: _SET_GCODE_OFFSET
|
|
gcode:
|
|
{% if printer.save_variables.variables.gcode_offsets %}
|
|
{% set offsets = printer.save_variables.variables.gcode_offsets %}
|
|
{% else %}
|
|
{% set offsets = {'x': None,'y': None,'z': None} %}
|
|
{% endif %}
|
|
|
|
{% set ns = namespace(offsets={'x': offsets.x,'y': offsets.y,'z': offsets.z}) %}
|
|
|
|
_SET_GCODE_OFFSET {% for p in params %}{'%s=%s '% (p, params[p])}{% endfor %}
|
|
|
|
{%if 'X' in params %}{% set null = ns.offsets.update({'x': params.X}) %}{% endif %}
|
|
{%if 'Y' in params %}{% set null = ns.offsets.update({'y': params.Y}) %}{% endif %}
|
|
{%if 'Z' in params %}{% set null = ns.offsets.update({'z': params.Z}) %}{% endif %}
|
|
SAVE_VARIABLE VARIABLE=gcode_offsets VALUE="{ns.offsets}"
|
|
|
|
[delayed_gcode LOAD_GCODE_OFFSETS]
|
|
initial_duration: 2
|
|
gcode:
|
|
{% if printer.save_variables.variables.gcode_offsets %}
|
|
{% set offsets = printer.save_variables.variables.gcode_offsets %}
|
|
|
|
_SET_GCODE_OFFSET {% for axis, offset in offsets.items()
|
|
if offsets[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %}
|
|
|
|
{ action_respond_info("Loaded gcode offsets from saved variables [%s]" % (offsets)) }
|
|
{% endif %}
|
|
|
|
# Initialize input shaper on startup (for dual_carriage compatibility)
|
|
[delayed_gcode INIT_INPUT_SHAPER]
|
|
initial_duration: 3
|
|
gcode:
|
|
# Set default input shaper for carriage 0 (T0)
|
|
SET_INPUT_SHAPER SHAPER_FREQ_X=60 SHAPER_TYPE_X=ei SHAPER_FREQ_Y=40 SHAPER_TYPE_Y=ei
|
|
{ action_respond_info("Input shaper initialized for dual carriage") }
|
|
|
|
# ================================================================================
|
|
# Utility Macros
|
|
# ================================================================================
|
|
[gcode_macro LOAD_FILAMENT]
|
|
description: Load filament into current extruder
|
|
gcode:
|
|
{% set TEMP = params.TEMP|default(220)|float %}
|
|
{% set LENGTH = params.LENGTH|default(100)|float %}
|
|
M109 S{TEMP}
|
|
G91
|
|
G1 E{LENGTH} F300
|
|
G90
|
|
|
|
[gcode_macro UNLOAD_FILAMENT]
|
|
description: Unload filament from current extruder
|
|
gcode:
|
|
{% set TEMP = params.TEMP|default(220)|float %}
|
|
{% set LENGTH = params.LENGTH|default(100)|float %}
|
|
M109 S{TEMP}
|
|
G91
|
|
G1 E10 F300
|
|
G1 E-{LENGTH} F1000
|
|
G90
|
|
|
|
[gcode_macro PID_EXTRUDER]
|
|
description: PID tune the current extruder
|
|
gcode:
|
|
{% set TEMP = params.TEMP|default(240)|float %}
|
|
PID_CALIBRATE HEATER=extruder TARGET={TEMP}
|
|
|
|
[gcode_macro PID_EXTRUDER1]
|
|
description: PID tune extruder 1
|
|
gcode:
|
|
{% set TEMP = params.TEMP|default(240)|float %}
|
|
PID_CALIBRATE HEATER=extruder1 TARGET={TEMP}
|
|
|
|
[gcode_macro PID_BED]
|
|
description: PID tune the heated bed
|
|
gcode:
|
|
{% set TEMP = params.TEMP|default(100)|float %}
|
|
PID_CALIBRATE HEATER=heater_bed TARGET={TEMP}
|
|
|
|
[gcode_macro PID_CHAMBER]
|
|
description: PID tune the heated chamber
|
|
gcode:
|
|
{% set TEMP = params.TEMP|default(70)|float %}
|
|
PID_CALIBRATE HEATER=chamber TARGET={TEMP}
|