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:

  1. The probe's coil must be over the bed
  2. The bed must contain a uniform metallic material (i.e. the spring steel in flexible sheets)
  3. 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.

Safe Homing

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

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.

Quad Gantry Leveling

Kalico

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

Klipper

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

Z Tilt adjust

Kalico

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

Klipper

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
`
⚠️ **GitHub.com Fallback** ⚠️