Skip to main content

Using Eddy

Info
  • Ensure your printer has no electrical leakage before use.
  • If you have previously configured eddy, Probe, or BL-Touch, please delete them.
  • When installing the Eddy, the coil must be above the nozzle and at a distance of 2mm-3mm from the nozzle.
  • Do not turn on the heated bed during testing.
Precautions
  • Multi-Z-axis machines need to be manually leveled once beforehand.
Version Requirements

Klipper official has recently optimized the Eddy probe functionality, it is recommended to update to the latest version for use:

  • Regular host computer: Please update Klipper to the latest version.
  • FLY Fast System: Please upgrade the system version to V1.3.8 or higher.

Wiring Diagram

Power Off Operation

Before installing or replacing the EDDY sensor, or plugging/unplugging the FPC cable, completely shut down the printer and disconnect the power supply. Do not plug or unplug cables, arrange interface wiring, or touch terminals while the power is on.

  • When using the Max version with onboard LDC1612, install the coil with the trademark facing the heated bed:

    Loading...

Supported Toolboard Versions and I2C Addresses

According to the SB2040 series product classification, V3, Plus V3, Pro V3, and Pro Plus V3 do not have onboard LDC1612 and require an external FLY-EDDY; Max V3 and Pro Max V3 use the onboard LDC1612.

Toolboard VersionLDC1612 Support Methodi2c_addressConfiguration to Select
SB2040 V3 / SB2040 Plus V3 / SB2040 Pro V3 / SB2040 Pro Plus V3Connect external FLY-EDDY42"V3 Series: External FLY-EDDY"
SB2040 Max V3 / SB2040 Pro Max V3Use onboard LDC161243"Max Series: Onboard LDC1612"
Select the Correct Address

When using the external FLY-EDDY with V3, Plus V3, Pro V3, and Pro Plus V3, configure i2c_address: 42; when using the onboard LDC1612 with Max V3 and Pro Max V3, configure i2c_address: 43. If the address does not match the actual module, Klipper will be unable to communicate with the LDC1612.

External Module Description: FLY-EDDY Documentation

Reference Configuration

  • The offset value for XY needs to be calculated based on the probe module and the nozzle itself, then modified to the offset value below.
  • The value of descend_z must ensure that the physical height difference between the probe coil and the nozzle tip is within the recommended range of 2~3mm.

This configuration applies to the SB2040 V3, SB2040 Plus V3, SB2040 Pro V3, and SB2040 Pro Plus V3, connecting the EDDY interface on the toolboard via the FLY-EDDY-F FPC cable.

FLY-EDDY Wiring and Installation: FLY-EDDY Product Documentation

[stepper_z]
endstop_pin: probe:z_virtual_endstop
# position_endstop: -0.5

[probe_eddy_current fly_eddy_probe]
sensor_type: ldc1612
i2c_address: 42
# 外置 FLY-EDDY 模块必须使用 42
i2c_mcu: SB2040
i2c_bus: i2c1b
# I2C总线标识,根据MCU定义
x_offset: 0
# X方向探针与喷嘴偏移量(mm),需根据实际安装测量
y_offset: 21.42
# Y方向偏移量(mm),此处为21.42,需根据实际安装测量
descend_z: 2.5
# 探针下降停止距离(mm),即喷嘴与热床之间的安全距离,需根据实际设置
i2c_speed: 4000000
# I2C通信速率(Hz),此处为4MHz
frequency: 40000000
# 外部晶振频率(Hz),FLY-EDDY使用40MHz

[temperature_probe fly_eddy_probe]
sensor_type: Generic 3950
sensor_pin:SB2040:gpio28
# FLY-EDDY-F 的 TEMP 线连接到工具板 gpio28
  • Click the button below to download the coil model:
Loading...

Calculating XY Offset Values

After downloading the model, measure and calculate the XY offset values based on the actual structure of your printer, then modify the x_offset and y_offset values in the configuration.

Loading...
Loading...

EDDY Calibration

Precautions

  • Ensure that no other probe configurations such as Probe or BL-Touch are enabled simultaneously.
  • Multi-Z-axis machines need to be manually leveled once first.
  • Before calibration, check that there are no debris on the hot bed surface and keep the nozzle clean.
Safety Note

Wait until the nozzle has cooled to a safe temperature before cleaning it. If cleaning must be done while the machine is still hot, only use specialized tools—never touch the nozzle, hot end, or hot bed directly with your hands.

Adding Temporary Configuration

Important Note

The configuration below is only for temporary calibration and must be deleted or commented out after use.

  1. After adding it, click Save & Restart to save and restart the system.
  2. It must be added at the top of the printer.cfg file—do not add it at the end.
Motion Risk

The temporary macros below will move the machine before the true position of the Z-axis is fully confirmed. Move your hands and tools away, ensure nothing is blocking under the nozzle before execution, 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}

Driving Current Calibration

Enter the following in the web console:

_LDC_CALIBRATE_DRIVE_CURRENT

After execution, the printer will move to the center position and lift the nozzle away from the hot bed. The system will then automatically calibrate the driving current. Once calibration is complete, save the configuration and restart Klipper.

Calibration Height

Tips
  • Multi-Z-axis machines need to be manually leveled once before performing height calibration.
  • After height calibration, it is recommended to level the machine again and recalibrate the height.
  • Before calibration, check that there are no debris on the hot bed surface and keep the nozzle clean.

Enter the following 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 box will appear. At this point, the Z height displayed by Klipper is not important—simply follow the on-screen prompts to lower the nozzle gradually until slight friction occurs between the nozzle and the paper.

After completion, click ACCEPT in the dialog box. The system will start calibrating the EDDY height. Once calibration is done, click SAVE_CONFIG & Restart in the upper right corner of the web page to save the configuration and restart Klipper.

Common Questions

Q: What if the temperature rises too slowly?

A: Check if the environment is enclosed and if there are any significant air currents. If heating is too slow, you can end the calibration early.

Q: What if the data fluctuates greatly?

A: Ensure consistent force when testing with paper and check that the sensors are securely installed.

Q: What if calibration doesn’t work after completion?

A: Make sure SAVE_CONFIG was executed and Klipper was 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.

[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

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

Important Notice

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:

Loading...

Fluidd Z-offset calibration location:

Loading...

After calibration, click Save. The save result will only be displayed in the console; no Klipper restart is required after saving.

Notes

Z-offset calibration usually needs to be repeated several times to achieve a more stable first layer effect.

Loading...