Skip to content

Eddy

Product Link: https://biqu.equipment/products/bigtreetech-eddy

Eddy Guide Video

Features Highlights

  • Compact size and lightweight;
  • Equipped with temperature compensation;
  • Highly efficient leveling;
  • Broad application, strong compatibility;
  • High precision, strong stability;
  • Non-contact operation.

Specifications

Name Eddy
Weight 6g
Voltage 5V
Static Current 30mA
Operating Current 30mA
Cable Length 2.5 m (USB Version), 15 cm (Coil Version)
Connection USB: 4-pin, 1.5mm pitch
Coil: 4-2.54mm DuPont female header, one end with ZH1 5mm 4P connector
Operating Temperature ≤60℃ Ambient
Standard Error 0.5μm
Compatible Models All FDM printers using the Klipper firmware

Dimensions

Note: When installing Eddy, ensure the bottom is at least 1-2 mm above the nozzle.

The coil center point is as follows:

Instructions for the BOOT Button

Note: Only Eddy V1.0 has the BOOT function; the button on Eddy Coil V1.0 is non-functional.

Installation Guide

Example using Voron 2.4

Installation replaces the original PL-08N position.

Use two M3*25 screws (included in the package) to secure the Eddy to the X Carriage as shown in the diagram.

Eddy + Manta M5P

Eddy + Manta M8P V2.0

Eddy Coil + EBB36 V1.2

Eddy Coil + EBB42 V1.2

Firmware

Important Notes

1、Klipper has not yet merged the pull request for fast scanning. Until then, please use the BIGTREETECH version of Klipper by running the following commands in your SSH terminal:

cd ~/klipper/

git remote add eddy https://github.com/bigtreetech/klipper

git fetch eddy

git checkout eddy/eddy

Then, restart the Klipper with:

sudo systemctl restart klipper

2、When Eddy performs temperature compensation, the heated bed temperature can be high. Please be cautious to avoid burns.

Compiling Firmware

For the USB version, update the firmware of the MCU built into Eddy. For the coil version, update the firmware of the MCU connected to the motherboard.

1、After SSH connects to Raspberry Pi, enter the following in the command line:

cd ~/klipper/

make menuconfig

Compile the firmware using the configuration below

[*] Enable extra low-level configuration optionsMicro-controller

Micro-controller Architecture (Raspberry Pi RP2040) --->

Bootloader offset (No bootloader) --->

Flash chip (W25Q080 with CLKDIV 2) --->

Communication interface (USB) --->

USB ids --->

() GPIO pins to set at micro-controller startup

2、After configuring, enter ‘q’ to exit the configuration interface. When asked to save configuration, select ‘Yes’.

3、Enter make to compile the firmware. When make is completed, the required klipper.uf2 firmware will be generated in the home/pi/klipper/out folder and can be directly downloaded to the computer on the left side of the SSH software.

Update Firmware via Computer

1、Press and hold the Boot button, then connect Eddy to your computer's USB port using a USB cable.

2、Once recognized as a storage device, copy the downloaded klipper.uf2 to it. Eddy will automatically update its firmware and restart. The update is complete after the restart.

Update Firmware via DFU

1、Press and hold the Boot button, then connect Eddy to the USB port of your Raspberry Pi/BIGTREETECH Pi using a USB cable.

2、In the SSH terminal, run the command lsusb to query the DFU device ID.

3、Run:

cd ~/klipper

make flash FLASH_DEVICE=2e8a:0003

to start writing the firmware (Note: Replace 2e8a:0003 with the actual ID of the device obtained in the previous step).

4、Once firmware writing is complete, run the following to query the ID for USB communication:

ls /dev/serial/by-id/

This ID can also be located in Mainsail.

Klipper

Configuration for USB Version

Configure Eddy in printer.cfg:

[mcu eddy]

serial: /dev/serial/by-id/ (Refer to the actual ID found in SSH or Mainsail using the method above)

[temperature_sensor btt_eddy_mcu]

sensor_type: temperature_mcu

sensor_mcu: eddy

[probe_eddy_current btt_eddy]

sensor_type: ldc1612

z_offset: 1.0 # Set to a non-zero value

i2c_mcu: eddy

i2c_bus: i2c0f

x_offset: 0 # Set actual offset relative to nozzle

y_offset: 20 # Set actual offset relative to nozzle

data_rate: 500

[temperature_probe btt_eddy]

sensor_type: Generic 3950

sensor_pin: eddy:gpio26

horizontal_move_z: 2

[bed_mesh]

horizontal_move_z: 2

# Configure other parameters as needed

Configuration for Coil Version

Configure Eddy Coil in printer.cfg:

[probe_eddy_current btt_eddy]

sensor_type: ldc1612

z_offset: 1.0 # Set to a non-zero value

i2c_mcu: EBBCan # MCU name of the actual board connected to Eddy Coil

i2c_bus: i2c3_PB3_PB4 # I2C bus actually connected to Eddy Coil

x_offset:0 # Set actual offset relative to nozzle

y_offset: 20 # Set actual offset relative to nozzle

data_rate: 500

[bed_mesh]

horizontal_move_z: 2

# Configure other parameters as needed

# The coil version does not have a built-in thermistor, so there is no need to configure temperature_probe

bed_mesh Configuration

[bed_mesh]

speed: 50

# X and Y movement speed during calibration (mm/s)

horizontal_move_z: 2

# Height (in mm) to which the head is moved before starting the scanning operation

mesh_min: 10, 10

# For rectangular beds, defines the minimum X, Y coordinates of the grid. This coordinate is relative to the Eddy's location. This will be the first scanning point, closest to the origin. This parameter must be provided for rectangular beds.

mesh_max: 220, 220

# For rectangular beds, defines the maximum X, Y coordinates of the grid. Following the same principle as mesh_min, but this will be the scanning point farthest from the bed origin. This parameter must be provided for rectangular beds.

probe_count: 5, 5

# For rectangular beds, this is a pair of comma-separated integers X, Y, defining the number of points probed along each axis. A single value is also valid, in which case the value will be applied to both axes.

Refer to https://www.klipper3d.org/Config_Reference.html#bed_mesh

The parameter horizontal_move_z in [bed_mesh] should be set to 2 to bring Eddy as close to the bed as possible during scanning.

Calibration

1、After the above configuration is completed, first calibrate the drive current of Eddy. Position Eddy about 20mm above the platform.

Execute in Mainsail's Console:

LDC_CALIBRATE_DRIVE_CURRENT CHIP=btt_eddy

Save the settings with ‘SAVE_CONFIG’.

2、Calibrate the relationship between Eddy frequency and Z-axis height. First, home the X and Y axes: G28 X Y

Center the nozzle: (ensure there is no height map activated during this step).

G0 X150 Y150 F6000

Perform manual z-offset calibration Paper test:

PROBE_EDDY_CURRENT_CALIBRATE CHIP=btt_eddy

Save the settings with ‘SAVE_CONFIG’.

3、For printers with z_tilt or quad_gantry_level (QGL) function, run Z_TILT_ADJUST or QUAD_GANTRY_LEVEL once to prevent the nozzle from hitting the heated bed during grid scanning.

4、At this point, you can home all axes, then execute the following command for rapid grid scanning:

BED_MESH_CALIBRATE METHOD=scan SCAN_MODE=rapid

Save the settings with ‘SAVE_CONFIG’.

5、Temperature Compensation (The coil version has no temperature compensation, ignore this step):

Note: Exercise caution as the heated bed can reach very high temperatures.

(1) Home all axes.

(2) Set the machine's idle timeout longer to prevent a timeout during the heating process:

SET_IDLE_TIMEOUT TIMEOUT=36000

(3) Record Temperatures:

​ Document the BIGTREETECH Eddy temperature at room temperature.

Set the heated bed to its maximum temperature and a commonly used tool head temperature. Wait for the BIGTREETECH Eddy temperature to stabilize and then record the highest temperature reached,which will serve as the target temperature for the next steps. Ensure this target is slightly below the maximum to prevent overheating.

(4) Wait until it returns to room temperature and then execute:

PROBE_DRIFT_CALIBRATE PROBE=btt_eddy TARGET=50 STEP=5

​ Where TARGET=50 means the target temperature is 50℃, and STEP=5 means each node's temperature scale is 5℃.

​ For example, if the current temperature is 30℃ and the target temperature is 50℃, then the total temperature range is 50-30=20℃, and the temperature scale for each node is 5℃, so there will be 20 / 5 = 4 nodes sampled.

​ Executing the above command will immediately require a manual z-offset calibration (Paper test). Then manually heat the heated bed and nozzle, waiting for the BIGTREETECH Eddy temperature to rise. The BIGTREETECH Eddy will require another manual z-offset calibration (Paper test) at the next node, which is 35℃, and then another manual z-offset calibration (Paper test) at the next node, which is 40℃, and so on.

Back to top