Eddy Usage
- Ensure your printer has no electrical leakage before use.
- If you have previously configured
eddy,Probe, orBL-Touch, please delete those configurations. - When installing the Eddy, the coil must be positioned above the nozzle, at a distance of
2mm-3mmfrom the nozzle. - Do not turn on the heated bed during testing.
- For multi-Z-axis machines, manual leveling must be performed once beforehand.
The latest Klipper official version has optimized the Eddy probe functionality. It is recommended to update to the latest version for use:
- Standard Host Computer: Update Klipper to the latest version.
- FLY Fast System: Upgrade the system version to V1.3.8 or higher.
Wiring Diagram
- Install with the logo facing the heated bed.
Loading...
Reference Configuration
- The
XYoffset values need to be calculated based on the probe module and the nozzle itself, then modified in the offset values below. - The value of
descend_zmust ensure the physical height difference between the probe coil and the nozzle tip is within the recommended range of2~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
# I2C bus identifier, defined according to the MCU
x_offset: 0
# X-direction probe to nozzle offset (mm), must be measured based on actual installation
y_offset: 21.42
# Y-direction offset (mm), here it is 21.42, must be measured based on actual installation
descend_z: 2.5
# Probe descent stop distance (mm), i.e., the safe distance between the nozzle and the heated bed, must be set based on actual conditions
i2c_speed: 4000000
# I2C communication speed (Hz), here it is 4MHz
frequency: 40000000
# External crystal oscillator frequency (Hz), SB2040-V3 uses 40MHZ
[temperature_probe fly_eddy_probe]
sensor_type: Generic 3950
sensor_pin:SB2040:gpio28
Coil Model Download Links
- Click the button below to download the coil model:
Calculate XY Offset Values
After downloading the model, measure and calculate the XY offset values based on your printer's actual structure, then modify x_offset and y_offset in the configuration.
EDDY Calibration
Precautions
- Ensure that no other probe configurations such as
ProbeorBL-Touchare enabled simultaneously. - Multi Z-axis machines require a manual bed leveling first.
- Before calibration, check that the bed surface is free of debris and keep the nozzle clean.
Wait for the nozzle to cool to a safe temperature before cleaning it; if cleaning must be performed while hot, use only specialized tools. Never touch the nozzle, hot end, or bed with your hands directly.
Add Temporary Configuration
The configuration below is for temporary calibration only and must be deleted or commented out after use.
- After adding, click
Save & Restartto save and reboot. - It must be added to the top of the
printer.cfgfile. Do not add it to the end of the file.
The temporary macro below will move the machine without fully confirming the actual Z-axis position. Before execution, keep hands and tools clear, ensure nothing is obstructing the nozzle, and be ready to use the emergency stop at any time.
[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
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 }
{% endif %}
PROBE_EDDY_CURRENT_CALIBRATE {rawparams}
Drive Current Calibration
Enter the following command in the web console:
_LDC_CALIBRATE_DRIVE_CURRENT
After execution, the printer will move to the center position and raise the print head away from the bed. The system will then automatically perform the drive current calibration. Once completed, save the configuration and restart Klipper.
Height Calibration
- Multi Z-axis machines require a manual bed leveling first before performing height calibration.
- After completing height calibration on multi Z-axis machines, it is recommended to perform another bed leveling and recalibrate the height.
- Before calibration, check that the bed surface is free of debris and keep the nozzle clean.
Enter the following command in the web console:
PROBE_EDDY_CURRENT_CALIBRATE_AUTO CHIP=fly_eddy_probe
After execution, the printer will move to the center position and a calibration dialog will appear. The Z height displayed by Klipper at this point is not important. Simply follow the on-screen prompts to gradually lower the nozzle until it makes light contact with the paper.
Once done, click ACCEPT in the dialog. The system will begin calibrating the EDDY height. After calibration is complete, click SAVE_CONFIG & Restart in the top right corner of the web interface to save the configuration and restart Klipper.
Frequently Asked Questions
Q: What if the temperature rises too slowly?
A: Check if the environment is enclosed and if there is significant airflow. If the heating is too slow, you can end the calibration early.
Q: What if the data fluctuates significantly?
A: Ensure the paper test force is consistent, and check that the sensor is installed securely.
Q: What if the calibration is ineffective?
A: Confirm that SAVE_CONFIG has been executed and Klipper has been restarted.
Optimization Usage
Rapid Bed Probing
The macro below will first raise the nozzle to 10mm for rapid leveling, then use the EDDY probe's descend height for fine leveling.
- Z_TILT_ADJUST
- QUAD_GANTRY_LEVEL
[gcode_macro Z_TILT_ADJUST]
rename_existing: _Z_TILT_ADJUST
gcode:
{% set PROBE_Z_OFFSET = printer.configfile.settings['probe_eddy_current fly_eddy_probe'].descend_z|float %}
SAVE_GCODE_STATE NAME=STATE_Z_TILT
BED_MESH_CLEAR
{% if not printer.z_tilt.applied %}
_Z_TILT_ADJUST horizontal_move_z=10 retry_tolerance=1
{% endif %}
_Z_TILT_ADJUST horizontal_move_z={PROBE_Z_OFFSET} retry_tolerance=0.075 retries=20 METHOD=rapid_scan ADAPTIVE=1
G0 Z10 F6000
G90
M117 Z_tilt Completed
RESTORE_GCODE_STATE NAME=STATE_Z_TILT
M400
[gcode_macro QUAD_GANTRY_LEVEL]
rename_existing: _QUAD_GANTRY_LEVEL
gcode:
{% set PROBE_Z_OFFSET = printer.configfile.settings['probe_eddy_current fly_eddy_probe'].descend_z|float %}
SAVE_GCODE_STATE NAME=STATE_QGL
BED_MESH_CLEAR
{% if not printer.quad_gantry_level.applied %}
_QUAD_GANTRY_LEVEL horizontal_move_z=10 retry_tolerance=1
{% endif %}
_QUAD_GANTRY_LEVEL horizontal_move_z={PROBE_Z_OFFSET} retry_tolerance=0.075 retries=20 METHOD=rapid_scan ADAPTIVE=1
G0 Z10 F6000
G90
M117 QGL Completed
RESTORE_GCODE_STATE NAME=STATE_QGL
M400
Heatbed
The macro below will use rapid scan mode for bed mesh calibration and temporarily turn off the heatbed during scanning to reduce the impact of heatbed heating and high-power loads on the EDDY probe. The original heatbed target temperature will be restored after scanning.
[gcode_macro BED_MESH_CALIBRATE]
rename_existing: _BED_MESH_CALIBRATE
gcode:
{% set PROBE_Z_OFFSET = printer.configfile.settings['probe_eddy_current fly_eddy_probe'].descend_z|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}
EDDY Z-Offset Usage
The EDDY Z-offset function previously had compatibility issues, which have been fixed in the Klipper update on December 31, 2025.
- Standard host: Update Klipper to the latest stable version.
- FLY host: Upgrade the system version to V1.3.5 or higher.
After completing the update, please remove any old settings related to Z-offset from the configuration file, otherwise this function may not work properly.
Z-Offset Explanation
Before calibrating the Z-offset, it is recommended to first print a large-area single-layer model to observe the first layer condition.
Mainsail Z-offset calibration location:
Fluidd Z-offset calibration location:
After calibration, click Save. The save result will only be displayed in the console; no Klipper restart is required after saving.
Z-offset calibration usually needs to be repeated several times to achieve a more stable first layer effect.