Ever wished QGL took less time? The main problem is that the initial probing height needs to be very tall (10mm-20mm) so that the machine doesn’t crash. But after that first course adjustment the machine is usually close enough to level to allow probing from a much smaller height.
The QUAD_GANTRY_LEVEL
command isn’t documented but there are options you can pass to it to override its behavior. This is the missing manual:
QUAD_GANTRY_LEVEL
QUAD_GANTRY_LEVEL [HORIZONTAL_MOVE_Z=<value>] [RETRY_TOLERANCE=<value>] RETRIES=<value>
HORIZONTAL_MOVE_Z
- A floating point value in mm that overrides thehorizontal_move_z
option specified in the config file.RETRY_TOLERANCE
- A floating point value between 0 and 1 that overrides theretry_tolerance
value in the config.RETRIES
- The maximum number of retries to perform, overrides theretries
value in the config
And here is a pair of GCode Macros that switch from course adjustment at the default configured height to fine adjustment at a lower height:
[gcode_macro QUAD_GANTRY_LEVEL]
rename_existing: _QUAD_GANTRY_LEVEL
gcode:
# If QGL is not applied, first run a course calibration
{% if printer.quad_gantry_level.applied == False %}
_QUAD_GANTRY_LEVEL RETRY_TOLERANCE=1.0
{% endif %}
# then perform fine QGL down to desired spec
# this has to be a separate macro call so the results of the above call will be visible!
_FINE_QUAD_GANTRY_LEVEL
[gcode_macro _FINE_QUAD_GANTRY_LEVEL]
gcode:
{% if printer.quad_gantry_level.applied == True %}
# go for full quality at reduced probing height
_QUAD_GANTRY_LEVEL HORIZONTAL_MOVE_Z=1.0 # <- set your preferred probing height here!
{% else %}
# This should never happen, just perform the full calibration using the defaults
{action_respond_info("Fine QGL called without calling course QGL first!")}
_QUAD_GANTRY_LEVEL # default behavior, no speedup
{% endif %}
If QGL is already applied, it always runs at the lower height, skipping the course adjustment.