Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 29 additions & 43 deletions macros/calibrate-offsets-macros.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ gcode:
G0 Z{printer["gcode_macro _CALIBRATION_SWITCH"].z} F10000
G0 X{printer["gcode_macro _CALIBRATION_SWITCH"].x} Y{printer["gcode_macro _CALIBRATION_SWITCH"].y} F10000


[gcode_macro CALIBRATE_ALL_OFFSETS]
description: Calibrate and save nozzle offsets
TOOL= Tool number, optional (all tools are calibrated when omitted).
gcode:
{% set tools = printer.toolchanger.tool_numbers %}
{% set names = printer.toolchanger.tool_names %}
Expand All @@ -18,69 +21,52 @@ gcode:
{% if printer["gcode_macro _TOOLCHANGER_CLEAN_NOZZLE"] is defined %}
_TOOLCHANGER_CLEAN_NOZZLE
{% endif %}
_CALIBRATE_MOVE_OVER_PROBE
_CALIBRATE_MOVE_OVER_PROBE
M109 S150
TOOL_LOCATE_SENSOR
TOOL_CALIBRATE_PROBE_OFFSET PROBE="tool_probe T0"
{% if params.TOOL is not defined or params.TOOL|int == 0 %}
TOOL_CALIBRATE_PROBE_OFFSET PROBE="tool_probe {names[0]|replace('tool ', '')|trim}"
{% endif %}
M104 S0
{% for tool in tools[1:] %}
SELECT_TOOL T={tool} RESTORE_AXIS=Z
STOP_TOOL_PROBE_CRASH_DETECTION
{% if printer["gcode_macro _TOOLCHANGER_CLEAN_NOZZLE"] is defined %}
_TOOLCHANGER_CLEAN_NOZZLE
{% if params.TOOL is not defined or params.TOOL|int == tool %}
SELECT_TOOL T={tool} RESTORE_AXIS=Z
STOP_TOOL_PROBE_CRASH_DETECTION
{% if printer["gcode_macro _TOOLCHANGER_CLEAN_NOZZLE"] is defined %}
_TOOLCHANGER_CLEAN_NOZZLE
{% endif %}
M104 T{tool} S150
_CALIBRATE_MOVE_OVER_PROBE
M109 T{tool} S150
TOOL_CALIBRATE_TOOL_OFFSET
TOOL_CALIBRATE_SAVE_TOOL_OFFSET SECTION="{names[loop.index]}" ATTRIBUTE=gcode_x_offset VALUE="{% raw %}{x:0.6f}{% endraw %}"
TOOL_CALIBRATE_SAVE_TOOL_OFFSET SECTION="{names[loop.index]}" ATTRIBUTE=gcode_y_offset VALUE="{% raw %}{y:0.6f}{% endraw %}"
TOOL_CALIBRATE_SAVE_TOOL_OFFSET SECTION="{names[loop.index]}" ATTRIBUTE=gcode_z_offset VALUE="{% raw %}{z:0.6f}{% endraw %}"
TOOL_CALIBRATE_PROBE_OFFSET PROBE="tool_probe {names[loop.index]|replace('tool ', '')|trim}"
M104 S0
{% endif %}
M104 T{tool} S150
_CALIBRATE_MOVE_OVER_PROBE
M109 T{tool} S150
TOOL_CALIBRATE_TOOL_OFFSET
TOOL_CALIBRATE_SAVE_TOOL_OFFSET SECTION="{names[loop.index]}" ATTRIBUTE=gcode_x_offset VALUE="{% raw %}{x:0.6f}{% endraw %}"
TOOL_CALIBRATE_SAVE_TOOL_OFFSET SECTION="{names[loop.index]}" ATTRIBUTE=gcode_y_offset VALUE="{% raw %}{y:0.6f}{% endraw %}"
TOOL_CALIBRATE_SAVE_TOOL_OFFSET SECTION="{names[loop.index]}" ATTRIBUTE=gcode_z_offset VALUE="{% raw %}{z:0.6f}{% endraw %}"
TOOL_CALIBRATE_PROBE_OFFSET PROBE="tool_probe T{tool}"
M104 S0
{% endfor %}

# Finish up
SELECT_TOOL T={tools[0]} RESTORE_AXIS=XYZ


[gcode_macro CALIBRATE_ONE_OFFSET]
description: Calibrate and save nozzle offset for one tool
TOOL= Tool number
gcode:
{% set tools = printer.toolchanger.tool_numbers %}
{% set names = printer.toolchanger.tool_names %}
# Tool 0
SELECT_TOOL T=0 RESTORE_AXIS=XYZ
STOP_TOOL_PROBE_CRASH_DETECTION
{% if printer["gcode_macro _TOOLCHANGER_CLEAN_NOZZLE"] is defined %}
_TOOLCHANGER_CLEAN_NOZZLE
{% endif %}
_CALIBRATE_MOVE_OVER_PROBE
M104 S150
TOOL_LOCATE_SENSOR
M104 S0
SELECT_TOOL T={params.TOOL} RESTORE_AXIS=Z
STOP_TOOL_PROBE_CRASH_DETECTION
{% if printer["gcode_macro _TOOLCHANGER_CLEAN_NOZZLE"] is defined %}
_TOOLCHANGER_CLEAN_NOZZLE
{% endif %}
M104 S150 T{params.TOOL}
_CALIBRATE_MOVE_OVER_PROBE
TOOL_CALIBRATE_TOOL_OFFSET
TOOL_CALIBRATE_PROBE_OFFSET PROBE="tool_probe T{params.TOOL}"
M104 S0

# Finish up
SELECT_TOOL T=0 RESTORE_AXIS=XYZ

CALIBRATE_ALL_OFFSETS TOOL={params.TOOL}

[gcode_macro CALIBRATE_NOZZLE_PROBE_OFFSET]
gcode:
{% set active_tool_number = printer.tool_probe_endstop.active_tool_number %}
{% set names = printer.toolchanger.tool_names %}

STOP_TOOL_PROBE_CRASH_DETECTION
{% if printer["gcode_macro _TOOLCHANGER_CLEAN_NOZZLE"] is defined %}
_TOOLCHANGER_CLEAN_NOZZLE
{% endif %}
_CALIBRATE_MOVE_OVER_PROBE
M109 S150
TOOL_LOCATE_SENSOR
TOOL_CALIBRATE_PROBE_OFFSET PROBE="tool_probe T0"
TOOL_CALIBRATE_PROBE_OFFSET PROBE="tool_probe {names[active_tool_number]|replace('tool ', '')|trim}"
M104 S0