Skip to main content

Eddy Usage

Info
  • Before use, ensure your printer is not leaking electricity.
  • If you have previously configured eddy, Probe, or BL-Touch, please delete those configurations.
  • When installing Eddy, the coil should be above the nozzle and positioned 2mm-3mm away from it.
  • Do not turn on the heated bed during testing.
Important Notes
  • Multi-Z axis machines require manual leveling to be performed once and done properly.

Wiring Diagram

  • Install with the logo facing the heated bed.
    Loading...

Reference Configuration

  • The XY offset values need to be calculated based on the scanning bed module and the nozzle itself, then modified in the offset values below.
  • The Z offset value must ensure the physical height difference between the probe coil and the nozzle tip is within the recommended range of 2~3mm.
[stepper_z]
endstop_pin: probe:z_virtual_endstop
# position_endstop: -0.5
[probe_eddy_current fly_eddy_probe]
sensor_type: ldc1612
i2c_address: 43
i2c_mcu: SB2040
i2c_bus: i2c1b
x_offset: 0 # Remember to set the X offset
y_offset: 21.42 # Remember to set the Y offset
z_offset: 2 # Remember to set the Z offset
i2c_speed: 4000000

[temperature_probe fly_eddy_probe]
sensor_type: Generic 3950
sensor_pin:SB2040:gpio28
horizontal_move_z: 2
  • Click the download links below
  • Loading...

Calculate XY Offset Values

  • After downloading the model, please calculate the XY offset values according to your printer's actual situation
  • After measurement, modify the x_offset and y_offset values in the configuration
Loading...

Eddy Calibration

Precautions

  • Ensure that configurations such as Probe and BL-Touch are not set
  • Multi-Z axis machines require manual leveling once
  • Before calibration, check that the heat bed is clear of debris and the nozzle is clean

Add Configuration

Important Notice

⚠️ Important Notes:

  1. The configuration below is temporary and must be deleted or commented out after use
  2. After adding, click Save & Restart to save and reboot
  3. It must be added to the very top of the printer.cfg file, do not add it to the bottom
[force_move]
enable_force_move: true

[gcode_macro _LDC_CALIBRATE_DRIVE_CURRENT]
gcode:
BED_MESH_CLEAR
SET_KINEMATIC_POSITION x=100 y=100 z=10
G28 X Y
M104 S0
M140 S0
M106 S0
G0 X{printer.toolhead.axis_maximum.x / 2} Y{printer.toolhead.axis_maximum.y / 2} F6000
G0 Z30 F600
G4 P1000
LDC_CALIBRATE_DRIVE_CURRENT CHIP=fly_eddy_probe
G4 P1000
SAVE_CONFIG

[gcode_macro PROBE_EDDY_CURRENT_CALIBRATE_AUTO]
gcode:
BED_MESH_CLEAR
G28 X Y
M104 S0
M140 S0
M106 S0
G90 # Abs positioning
G1 X{ printer.toolhead.axis_maximum.x/2 } Y{ printer.toolhead.axis_maximum.y/2 } F6000
{% if 'z' not in printer.toolhead.homed_axes %}
SET_KINEMATIC_POSITION Z={ printer.toolhead.axis_maximum.z-1 } # Allows the user to work it down until it touches.
{% endif %}
PROBE_EDDY_CURRENT_CALIBRATE {rawparams}

Drive Current Calibration

  • Enter the following command in the web console
    _LDC_CALIBRATE_DRIVE_CURRENT
  • The printer will then move to the center position and lift the printhead away from the heat bed
  • It will then automatically start drive current calibration and save the configuration upon completion
  • Finally, Klipper will restart

Calibrate Height

Tip
  • Multi-Z axis machines require manual leveling once before calibrating the height
  • For multi-Z axis machines, after completing the height calibration, perform a leveling and then recalibrate the height (recommended)
  • Before calibration, check that the heat bed is clear of debris and the nozzle is clean
  • Enter the following command in the web console

    PROBE_EDDY_CURRENT_CALIBRATE_AUTO CHIP=fly_eddy_probe
  • The printer will then move to the center position, and a dialog box will pop up

  • After executing this command, the Z height displayed by Klipper is not important; you only need to adjust the nozzle to a suitable height

  • Follow the prompts in the Klipper UI to gradually lower the nozzle until it contacts a piece of paper placed on the print bed. Ensure the paper can move smoothly under appropriate pressure while feeling slight friction.

  • Be careful to avoid applying excessive pressure or damaging the print bed during this process.

  • Once completed, click the ACCEPT button in the dialog box, and the system will begin calibrating the EDDY height

  • After calibration, click the SAVE_CONFIG & Restart button in the upper right corner of the webpage to save the configuration and restart Klipper

Frequently Asked Questions

Q: Temperature rises too slowly?
A: Check if the environment is enclosed and free from airflow. If it's too slow, you can end the calibration early.

Q: Data fluctuates significantly?
A: Ensure consistent paper test pressure and that the sensor is securely installed.

Q: Calibration is ineffective?
A: Confirm that SAVE_CONFIG has been executed and a restart has been performed to take effect.

Using Optimizations

Rapid Bed Scanning

  • The macro below will first raise the nozzle to 10mm during leveling execution, then perform a rapid bed scan. After the scan is complete, it will raise the nozzle to 2mm for fine leveling.
[gcode_macro Z_TILT_ADJUST]
rename_existing: _Z_TILT_ADJUST
gcode:
{% set PROBE_Z_OFFSET = printer.configfile.settings['probe_eddy_current fly_eddy_probe'].z_offset|float %}
# ========== State Save ==========
SAVE_GCODE_STATE NAME=STATE_Z_TILT

# ========== Environment Preparation ==========
BED_MESH_CLEAR # Clear existing bed mesh data

# ========== Main Leveling Process ==========
{% if not printer.z_tilt.applied %}
# Initial coarse adjustment
_Z_TILT_ADJUST horizontal_move_z=10 retry_tolerance=1
{% endif %}

# Fine secondary leveling
_Z_TILT_ADJUST horizontal_move_z={PROBE_Z_OFFSET} retry_tolerance=0.075 retries=20 METHOD=rapid_scan ADAPTIVE=1
G0 Z10 F6000 # Use standard G-code commands instead of HORIZONTAL_MOVE_Z

# ========== Post-Processing ==========
G90 # Force absolute coordinate mode
G0 Z10 F6000 # Raise Z axis to safe height
M117 Z_tilt Completed # Display completion status
#G28 # Return to origin
# ========== State Restore ==========
RESTORE_GCODE_STATE NAME=STATE_Z_TILT
M400

Heated Bed

  • The macro below will change the bed mesh scanning action to rapid mode.
  • This configuration reduces the impact of bed heating on scanning.
  • This configuration reduces the impact of high-power heated beds on EDDY.
  • It turns off the heated bed during mesh calibration and re-heats it to the original temperature after completion.
[gcode_macro BED_MESH_CALIBRATE]
rename_existing: _BED_MESH_CALIBRATE
gcode:
{% set PROBE_Z_OFFSET = printer.configfile.settings['probe_eddy_current fly_eddy_probe'].z_offset|float %}
{% set TARGET_TEMP = printer.heater_bed.target %}
M140 S0
_BED_MESH_CALIBRATE horizontal_move_z={PROBE_Z_OFFSET} METHOD=rapid_scan {rawparams}
M140 S{TARGET_TEMP}

Using the Z-Offset Feature with EDDY

Important Notice

EDDY's Z-Offset feature previously had compatibility issues, which were fixed in the Klipper update on December 31, 2025. Please perform the following actions based on your host type:

  • If using a standard host, please update Klipper to the latest version.
  • If using a FLY host, please upgrade the system version to V1.3.5 or higher. Please note: After completing the above updates, be sure to delete the old Z-Offset related settings in your previous configuration file, otherwise the feature will not work properly.

Z-Offset Explanation

  • Z-Offset calibration requires printing a model with a relatively large area; only one layer needs to be printed.
  • mainsail Z-Offset Calibration Location
    Loading...
  • fluidd Z-Offset Calibration Location
    Loading...
  • After calibration is complete, click Save. Please note that saving will only be indicated in the console!!!!
  • And after saving, there is no need to restart klipper!
Important Notes
  • Repeat the Z-Offset calibration process several times.
  • This is necessary to achieve a perfect first layer.
Loading...