Skip to main content

Eddy Usage

info
  • Ensure your printer is not leaking electricity before use
  • If there was any previous configuration for eddy, Probe, or BL-Touch, please remove it
  • When installing Eddy, the coil should be positioned above the nozzle, approximately 2mm-3mm away from the nozzle
  • 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 the logo facing the direction of the heated bed

Reference Configuration

  • The offset values for XYZ need to be calculated based on the scanning module and the nozzle itself, then modified in the offset values below
[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: SHT36
i2c_bus: i2c1e
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:SHT36:gpio28
horizontal_move_z: 2
  • Click on the download link below
  • Loading...

Calculate XY Offset

  • After downloading the model, calculate the XY offset value based on the actual printer
  • After completing the measurement, modify the x_offset and y_offset values in the configuration

Please help me see what parts of this tutorial can be optimized

Eddy Calibration

Precautions

  • Please make sure that there is no configuration for Probe, BL-Touch, or related components
  • Machines with multiple Z axes need to be manually leveled once
  • Check that the heatbed is free of debris and the nozzle is clean before calibration

Adding Configuration

Notice

⚠️ Important Notice:

  1. The configuration below is temporary and must be deleted or commented out after use
  2. Click Save & Restart to save and restart after adding
  3. Must be added to the very top of the printer.cfg file, not 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}

[gcode_macro TEMP_COMPENSATION]
description: Temperature Compensation Calibration Procedure
gcode:
{% set bed_temp = params.BED_TEMP|default(90)|int %}
{% set nozzle_temp = params.NOZZLE_TEMP|default(250)|int %}
{% set temperature_range_value = params.TEMPERATURE_RANGE_VALUE|default(3)|int %}
{% set desired_temperature = params.DESIRED_TEMPERATURE|default(80)|int %}
{% set Temperature_Timeout_Duration = params.TEMPERATURE_TIMEOUT_DURATION|default(6500000000)|int %}
# Safety check: Ensure all axes are not locked
{% if printer.pause_resume.is_paused %}
{ action_raise_error("Error: Printer is paused, please resume first to enable") }
{% endif %}
# Step 1: Home all axes
STATUS_MESSAGE="Homing all axes..."
G28
STATUS_MESSAGE="Homing completed"
# Step 2: Auto-leveling
#Z_TILT_ADJUST
#quad_gantry_level
# Step 3: Safe Z-axis lift
STATUS_MESSAGE="Lifting Z-axis..."
G90
G0 Z5 F2000 # Lift slowly to prevent collision
# Step 4: Set timeout and temperature calibration
SET_IDLE_TIMEOUT TIMEOUT={Temperature_Timeout_Duration}
STATUS_MESSAGE="Starting temperature probe calibration..."
TEMPERATURE_PROBE_CALIBRATE PROBE=fly_eddy_probe TARGET={desired_temperature} STEP={temperature_range_value}
# Step 5: Set print temperature (modify according to actual needs)
STATUS_MESSAGE="Setting working temperature..."
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={bed_temp}
SET_HEATER_TEMPERATURE HEATER=extruder TARGET={nozzle_temp}
# Completion prompt
STATUS_MESSAGE="Temperature compensation process completed!"
description: G-Code macro

Drive Current Calibration

  • Enter the following command in the web interface console
    _LDC_CALIBRATE_DRIVE_CURRENT
  • At this point, the printer will move to the center position and move the print head away from the heatbed
  • Then it will automatically start the drive current calibration and save it after completion
  • Finally, it will restart klipper

Calibration Height

tip
  • Machines with multiple Z axes need to be manually leveled once before calibrating the height
  • After multi-Z-axis machines complete the height calibration, perform a leveling operation and recalibrate the height (recommended)
  • Check that the heatbed is free of debris and the nozzle is clean before calibration
  • Enter the following command in the web interface console

    PROBE_EDDY_CURRENT_CALIBRATE_AUTO CHIP=fly_eddy_probe
  • At this point, the printer will move to the center position and a dialog box will pop up

  • The Z height displayed by Klipper after executing this command doesn't matter, you only need to adjust the nozzle height to the appropriate height

  • Follow the prompts on the klipper UI to gradually lower the nozzle until it touches the paper placed on the print bed. Ensure the paper can move smoothly under appropriate pressure while feeling slight friction.

  • Note that during this process, avoid applying excessive pressure or damage to the print bed with the nozzle.

  • After completion, click the ACCEPT button in the dialog box, the system will start calibrating the EDDY height

  • After calibration is complete, click the SAVE_CONFIG & Restart button in the upper right corner of the web interface, which will save the configuration and restart klipper

Temperature Compensation

tip
  • When Eddy performs temperature compensation, the heatbed's maximum temperature is very high; be careful not to get burned
  • Do not heat the heatbed and nozzle before performing temperature compensation
  • Touching the heatbed surface during operation is prohibited
  • It is recommended to wear heat-resistant gloves during operation
  • Click the TEMP_COMPENSATION macro button, a dialog box will pop up
  • In the dialog box, you can set the heatbed temperature, nozzle temperature, temperature range value, and desired temperature
  • Click the START button, the system will start the temperature compensation calibration
  • During the temperature compensation process, the system will automatically adjust the heatbed and nozzle temperatures and prompt you to perform a manual Z offset calibration every 3°C
  1. After performing this operation, the UI will display a Z-axis adjustment box. Please use the manual Z-axis offset calibration (Paper Test) method mentioned above, placing the paper between the nozzle and the bed surface, and then confirm the value.
  1. After accepting the value, the system will automatically adjust the heatbed temperature to 80°C and the nozzle temperature to 250°C.
  2. If you are in a room with air conditioning or an open window, to ensure Eddy's temperature rises, it is recommended to turn off the air conditioning or window, as wind can affect temperature increase.
  3. As Eddy's temperature rises, the system will automatically prompt you to perform a manual Z offset calibration every 3°C. The heatbed temperature is very high; be careful not to get burned!!!
  1. Repeat the manual Z offset calibration (Paper Test) until calibration is complete. If you find that Eddy's temperature no longer rises, you can use the relevant commands below to end the calibration early.
  • Additional gcode commands available during drift calibration include: TEMPERATURE_PROBE_NEXT
  • TEMPERATURE_PROBE_NEXT Used to force Eddy to sample new data before reaching the target temperature 80°C for EDDY.
  • TEMPERATURE_PROBE_COMPLETE Used to complete calibration before EDDY reaches the set temperature 80°C.
  • ABORT Can be used to terminate the calibration and ignore the results.
  • When calibration is complete, use SAVE_CONFIG to save the temperature offset settings!
  • In summary, compared to most other procedures, the above calibration process is more challenging and time-consuming. It may require practice and multiple attempts to provide excellent first-layer print results over a wide temperature range!

Usage Optimization

Quick Bed Sweeping

  • The macro below will raise the nozzle to 10mm before performing leveling, quickly sweep the bed, and then raise the nozzle to 2mm for fine leveling after the sweep is complete
[gcode_macro Z_TILT_ADJUST]
rename_existing: _Z_TILT_ADJUST
gcode:
# ========== 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=2 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

Heatbed

  • The macro below will make the bed mesh action become a fast bed mesh
[gcode_macro BED_MESH_CALIBRATE]
rename_existing: _BED_MESH_CALIBRATE
gcode:
_BED_MESH_CALIBRATE horizontal_move_z=2 METHOD=rapid_scan {rawparams}
# G28 X Y
  • If you are using a high-power AC heatbed, it is recommended to configure the following
  • This configuration will reduce the impact of a high-power heatbed on EDDY
  • When using EDDY, automatically turn off the heatbed and restore the temperature after use
[gcode_macro BED_MESH_CALIBRATE]
rename_existing: _BED_MESH_CALIBRATE
gcode:
{% set TARGET_TEMP = printer.heater_bed.target %}
M140 S0
_BED_MESH_CALIBRATE {rawparams}
M140 S{TARGET_TEMP}

Using Z-Axis Offset Function with EDDY

Download EDDY Optimization Configuration

  • Click on the download link below
  • Please note there are two files named eddy.cfg and variables.cfg that need to be added to the same directory as printer.cfg
  • Loading...

Adding eddy.cfg Configuration

  • If you want Eddy to serve as both an auto-leveling sensor and a Z-axis limit switch, and wish to use the Z axis offset function
  • Please add the following configuration at the top of printer.cfg
[include eddy.cfg]

Modify Path

  • Open the eddy.cfg file and locate the [save_variables] configuration item
  • Modify the filename path to the corresponding path for your system
Precautions
  • Below is an example
  • The path to the variables.cfg file, you need to modify it according to your system
  • Path used by Fly_FAST system
    [save_variables]
    filename: /usr/share/printer_data/config/variables.cfg
  • Path used by Fly_Armbian system, other systems can refer to this method
    [save_variables]
    filename: /home/fly/printer_data/config/variables.cfg

Z-Offset Explanation

  • Z-offset calibration requires printing a model with a large enough area, only one layer is needed
  • Z-axis offset calibration location in mainsail
  • Z-axis offset calibration location in fluidd
  • Click save after calibration is complete. Please note that saving will only be prompted in the console!!!!!!
  • Also, no need to restart klipper after saving!
Notes
  • Repeat the Z-offset tutorial several times
  • To achieve a perfect first layer
Loading...
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -