Manta MP8 v2 shutdown: i2c timeout

Basic Information:

Printer Model: Voron 2.4 r2
MCU / Printerboard: Manta MP8 v2 + CB1
klippy.log
klippy (1).log (136.8 KB)

My equipment:
Voron 2.4 board Manta-M8P v2 + CB1, head Stealthburner with EBB 2240, Eddy Coil , Knomi v2
Eddy coil is connected to the i2c port on the MP8 v2 board (the cable length is approximately 2m)
Knomi v2 is connected as usual via wi-fi
Eddy coil is configured, works fine, scans and levels the table!
But very often an error appears!!! MCU ‘mcu’ shutdown: i2c timeout, Sometimes an error appears MCU shutdown: i2c timeout
I think this error is related to Eddie because he is the only one connected to the i2c bus!
I noticed that when Eddie is turned on, Knomi loses Wifi
here is my configuration!

[probe_eddy_current btt_eddy]
sensor_type: ldc1612
z_offset: 1
i2c_mcu: mcu
i2c_bus: i2c3_PA8_PC9
x_offset:0
y_offset: 20
data_rate: 500

Gentlemen and ledies do you have any thoughts???

Hello @borysne !

  1. The klippy.log is shortened. Always provide a complete klippy.log

  2. When you post code snippets, please use the Preformatted Text feature of the forum editor for this

  3. Do you want to keep the ladies out of this?

1 Like
  1. My klippy.log 37mB. no matter how you compress it, it won’t fit! I highlighted the important information containing the error and added only it! if anyone is interested in my macros, table measurements and pin settings, I can send them
  2. ok fixed
  3. in my 40 years I have never met a single lady who would help me with an electrical or programming issue. if it makes you feel better, I fixed it!

There are other important things in the log for the supporters too.

It’s not a matter what your experience is - it’s a matter of well mannered behaviour.

1 Like

You can check what can be done with I2C here:

But I can’t find schematics of Eddy Coil, so can’t be specific.

You can also check/test this one:
STM32: Check for NACK by nefelim4ag · Pull Request #6687 · Klipper3d/klipper · GitHub - it will return NACK, instead of timeout.
And this one:
I2C Error handling by nefelim4ag · Pull Request #6689 · Klipper3d/klipper · GitHub

As far, as it looks at the code side, this should only happen while houming - when Klipper actually queries probe status.

FWIW,
Basically, Klipper mcu does not handle errors of I2C.
Because behavior for them is undefined in a general/broad sense.
Some mcu define specific errors, some do not.
I2C timeout is a general check for everything - if you see that - mcu does not catch or does not have checks for actual errors, the code just sees I2C write or read does not complete in a reasonable time.

If you get it working, initially that only means you have issues with wiring/bad contact. In your case with long cables that BTT provides, it can be simply because they are straight, so have high electrical capacity and bad signal edges.

But without oscilloscopes, you will not find out.

thanks for the info! I read your links! I thought I wouldn’t have to delve deeply into the problem and there are some settings in the klipper! so in your opinion the problem is in the wiring and the strapping with resistors! maybe
I’ll borrow an oscilloscope from a friend and see what’s going on there!
I really don’t want to solder small resistors on the Manta board
they really are 10 kOhm there.

Very interesting but nothing is clear!
there is a diagram of connecting the Eddy coil to the EBB 36 board
I do not see any resistors on this diagram!!! perhaps the pull-up is implemented programmatically or there are resistors inside the Eddy!!!

regarding the i2c bus voltage 5v or 3.3v
I think everything is clear! Definitely 3.3v! since the eddy was developed to work via i2c with the EBB36/42 board. They have STM32 controllers - 3.3v.
so level converters are not needed!

the result of all this is: I need to look at the oscilloscope readings and select other pull-up resistors, and also try using a flexible shielded cable. connect the shield to GND only from the MANTA side.
because of the cable length of 2m. it is advisable to lower the bus speed to 100MHz
And also try to use ferrite rings

So from all of the above:
I’m unlikely to be able to carefully remove and solder the resistors without damaging the Manta board
so I’m trying a shielded cable, and use ferrite rings and lower the bus speed to 100000
if that doesn’t work, then the only option is to buy Eddy USB

and so ladies and gentlemen!
measurements with an oscilloscope!
SDA — blue
SCL — Yellow
everything is very bad

1 Like

pull-up resistors should be on both sides.
I only suggest touching them on the sensor, motherboards are sacred :smiley:

Because this is a bus, when you connect like 2-3 devices here - you effectively decrease the total resistance of pull-up and increase the capacitance because of longer wires.

I’m trying a shielded cable, and use ferrite rings

This will not decrease capacitance.

lower the bus speed to 100000

on stm32h723 i2c hardware is not regulated properly, you can’t change speed.

Everything is very bad

:fire:

So, line is just charging slowly.

installing ferrite rings and connecting the shielded wire to the ground did not give much result! a little bit prettier but the signal is not as it should be! (((
the only way to make it work is to select resistors

measuring resistance MANTA Vcc to SDA,SCL = 13kOm
measuring resistance Eddy coil Vcc to SDA,SCL = it is not measured! it just grows to infinity!!! Eddy coil seems to have no resistors on the bus!!!

1 Like

then why are there no pull-up risistors on the EBB36/42 board???
Sorry, I remembered there were pull-up implemented in software!)))

There should only be one set of pullups on an I2C bus. I’m not sure where @nefelim4ag got the idea that there should be multiples.

Your measurements:

measuring resistance MANTA Vcc to SDA,SCL = 13kOm
measuring resistance Eddy coil Vcc to SDA,SCL = it is not measured! it just grows to infinity!!! Eddy coil seems to have no resistors on the bus!!!

Are as expected.

The specification, such as it is, can be found here:

You asked:

then why are there no pull-up risistors on the EBB36/42 board???

Probably because nobody at BTT actually tested the board with an actual I2C bus device to see if it works.


Can you share pictures of how you’re wiring the connection between the M8P V2 and the Eddy Coil? Along with that, what kind of probes are you using and where are you placing your ground connection? Finally, can you show the waveforms at the M8P as well as at the Eddy Coil?

Two metres is long for I2C but I wouldn’t expect to see as much capacitance on the line as you have - you also have some coupling between the lines that is worrying.

Personally, adding ferrite cores is always the last thing I do as they can affect signal integrity and increase rise times.

The specification, such as it is, can be found here

Does not specify how many there should be, this document only specifies how to find the required resistance with ratio to capacitance and signal frequency.

So, according to the spec, there is a limit of 3mA on the bus, so as long as pull-up resistor’s total resistance provides > 1.1kOm (for 3.3v) - everything should be fine.

The most readily available sensors out there have those resistors around the sensor. (but that may be because they also have level shifters).

Even a simple multiplexer from Adafruit has them:

Again, it’s not a hard and fast “specification” but it’s well accepted that there is only one resistor on the SDA and SCL lines.

Even Adafruit says that:

If you look at the schematic that you posted, you’ll see that that the pull ups on the board aren’t really implemented - if they are needed (ie nowhere else on the bus), then the user solders the bridge which is what the outlined symbols below means:

Regardless, I would consider it very bad practice to put multiple pullups on the same bus that are sourced from different power supplies.

This side discussion isn’t helpful to @borysne and isn’t germane to his problem.


@borysne If you’re going to connect to the EBB42 then you’ll have to add pull up resistors to the SDA/SCL lines coming from the board.

Try 4k7 pullups on it and keep your lines as short as possible.

I wrote my equipment and connection type at the beginning of the topic! ok I’ll take a photo
waveforms at the M8P v2. and Eddy Coil in the photo