Macros Safety - vvuk/eddy-ng GitHub Wiki
Unlike many other probes, Eddy current probes are able to take a direct sensor reading instead of needing to move up/down in order to "trigger" a sensor. There are two requirements:
- The probe's coil must be over the bed
- The bed must contain a uniform metallic material (i.e. the spring steel in flexible sheets)
- If the bed has embedded magnets, they must be uniform and weak (i.e. a magnetic sticker, and not separate strong magnets)
If any of the above isn't true, the probe will not be able to read the height correctly, and damage may result.
Homing and homing-like operations (QUAD_GANTRY_LEVEL
, Z_TILT_ADJUST
) need adjustment in order to perform safely.
The probe must be over the bed when you home Z. Ensure you have safe_z_home
, homing_override
, or some other set up to move your sensor to be over the bed before Z is homed. If the sensor is not over the bed, the toolhead may not stop and damage may result.
bed_mesh
will be most accurate if the scan is done at Z=2.0mm (the default "home height" for eddy-ng
). In the bed_mesh
configuration section, you should set horizontal_move_z: 2.0
.
There is no retraction and Z movement with eddy probes, as reading the height is done directly. There is no advantage to moving the toolhead up and down when probing with Eddy current probes; in fact, it likely reduces precision.
Kalico includes "adaptive height" support for QGL, which will start the sensor up higher, and then move it down in subsequent rounds as the gantry becomes more and more aligned.
TODO: config
For the most accurate results, leveling with the probe should take place at 2.0mm (the default "home height" for eddy-ng
). In the [quad_gantry_level]
configuration section, you should set horizontal_move_z: 2.0
.
However, doing a QGL at 2mm height with a highly skewed gantry is dangerous, because there may be more than 2mm skew. To safely perform a QGL, add a macro that first performs a QGL at a higher "safe" height, and then moves down to 2mm.
[bed_mesh]
... # the rest of your bed_mesh section
horizontal_move_z: 2.0
[gcode_macro QUAD_GANTRY_LEVEL]
rename_existing: _QUAD_GANTRY_LEVEL
gcode:
SAVE_GCODE_STATE NAME=STATE_QGL
BED_MESH_CLEAR
# If QGL has not been done yet, correct for any major skew first
# at 8mm height
{% if not printer.quad_gantry_level.applied %}
_QUAD_GANTRY_LEVEL horizontal_move_z=8 retry_tolerance=1
{% endif %}
# Compelte with a full QGL at the configured height
_QUAD_GANTRY_LEVEL
RESTORE_GCODE_STATE NAME=STATE_QGL
Kalico includes "adaptive height" support for Z Tilt Adjust, which will start the sensor up higher, and then move it down in subsequent rounds as the axis becomes more and more aligned.
TODO: config
Like quad_gantry_level
, this adjustment will take place at whatever horizontal_move_z
is set to. If Z Tilt has not been done yet, using too low of a value may cause the toolhead to crash into the bed if there is significant skew. The following macro will first do a coarse tilt adjust, and then a fine tuned one at a more accurate level.
[z_tilt_adjust]
... # the rest of your z_tilt_adjust section
horizontal_move_z: 2.0
[gcode_macro Z_TILT_ADJUST]
rename_existing: _Z_TILT_ADJUST
gcode:
SAVE_GCODE_STATE NAME=STATE_Z_TILT
BED_MESH_CLEAR
{% if not printer.z_tilt.applied %}
_Z_TILT_ADJUST horizontal_move_z=8 retry_tolerance=1
{% endif %}
_Z_TILT_ADJUST horizontal_move_z=2
RESTORE_GCODE_STATE NAME=STATE_Z_TILT
`