Skip to main content

Eddy Usage

info
  • Ensure your printer is not leaking electricity before use
  • If you previously configured eddy, Probe, or BL-Touch, please remove those configurations
  • When installing Eddy, the coil should be positioned above the nozzle, approximately 2mm-3mm away from it
  • Do not turn on the heated bed during testing
Notes
  • Machines with multiple Z axes need to be manually leveled once

Wiring Diagram

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

Reference Configuration

  • The XY offset values need to be calculated based on the scanning 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 remains 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 x offset
y_offset: 21.42 # remember to set y offset
z_offset: 2 # remember to set 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 link below
  • Loading...

Calculate XY Offset Values

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

Eddy Calibration

Precautions

  • Ensure there is no configuration for Probe, BL-Touch, or similar.
  • Multi-Z axis machines require a manual leveling once.
  • Before calibration, check that the heatbed is clear of debris and the nozzle is clean.

Add Configuration

Important Note

⚠️ Important Notice:

  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 heatbed.
  • It will then automatically start the drive current calibration and save the results upon completion.
  • Finally, Klipper will restart.

Calibrate Height

tip
  • Multi-Z axis machines require a 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 heatbed 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 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 slide smoothly under appropriate pressure while feeling slight friction.

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

  • Once done, click the ACCEPT button in the dialog box. The system will begin calibrating the EDDY height.

  • After calibration is complete, click the SAVE_CONFIG & Restart button in the upper right corner of the webpage. This will 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 pressure during the paper test and that the sensor is securely installed.

Q: Calibration has no effect? A: Confirm that SAVE_CONFIG was executed and a restart was performed for the changes to take effect.

Usage Optimization

Rapid Bed Scanning

  • The macro below will first raise the nozzle to 10mm during leveling execution, perform a rapid bed scan, and then raise the nozzle to 2mm for fine leveling after the scan is complete.
[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 Z-Offset Function with EDDY

Important Notice

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

  • If using a regular 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 settings related to Z-offset in the previous configuration file, otherwise the function 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-axis offset calibration location
    Loading...
  • fluidd Z-axis offset calibration location
    Loading...
  • After calibration is complete, click save. Please note that saving will only prompt in the console!!!!
  • And after saving, there is no need to restart klipper!
Important Notes
  • Repeat the Z-offset tutorial several times.
  • Only then can a perfect first layer be achieved.
Loading...