Eddy Coil I2C NACK Problem

Basic Information:

Printer Model: KP3S 3.0
MCU / Printerboard: STM32F103 type / MKS KP3S V1.3
Host / SBC: Raspberry Pi 4 4GB
klippy.log klippy.log (101.5 KB)

Describe your issue:

Hello.
My printer is having some problem stating as I2C START NACK.
I recently installed BTT EDDY Coil on my KP3S, and every time I try to home my printer from IDLE state, it causes error like above.
However, when I try homing again after immediately restarting the firmware, it works fine afterwords.
It only causes this error when I try to use the sensor from an IDLE state, after few minutes from the last movement occured.

KP3S 3.0 uses a custom board called MKS KP3S V1.3, which is a variant of MKS Robin Nano V1.2. Both shares the schematic and pinouts.
As BTT Eddy Coil uses I2C, I found out that the leftover ports didn’t have any Hardware I2C left. So I used Software I2C Instead.

[probe_eddy_current btt_eddy]
sensor_type: ldc1612
i2c_mcu: mcu        # Printer side. Not Host side.
i2c_software_scl_pin: PA8
i2c_software_sda_pin: PB2
x_offset: 20
y_offset: 0
z_offset: 2.5

This is the configuration part of it. I used leftover pins which had no Pull Up/Down Resistors, and had direct connection to the MCU.

I also used these pins for BDSensor, which is another type that uses eddy current mechanism. It works fine on BDSensor.

What do you think the problem is?

(post deleted by author)

I also used these pins for BDSensor, which is another type that uses eddy current mechanism. It works fine on BDSensor.

It is a little “unique” , and it just has no error handling nor detection, so - no errors :slight_smile: (and no real I2C). Also, there are no schematics of that probe, maybe it has pull-ups.

This is the configuration part of it. I used leftover pins which had no Pull Up/Down Resistors, and had direct connection to the MCU.

This is the most possible reason, because eddy it self also lacks them.
MCU will pull-up by default, but current is limited and it has an equivalent of 40kOm.

Depends on your line capacitance, it maybe worth to add something around 3-5kOm to pull-up SDA/SCL to VCCIO (3.3v here).

every time I try to home my printer from IDLE state, it causes error like above.

This is mostly a coincidence, I think.

BTT EDDY Coil

You may wish to test this patch: ldc1612: handle i2c errors by nefelim4ag · Pull Request #6813 · Klipper3d/klipper · GitHub
But it will only handle I2C errors inside the homing procedure, like 90% of all sensor communication.
Commands issued from the host still can trigger errors.

Hope it helps.