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!
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
ok fixed
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!
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.
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
pull-up resistors should be on both sides.
I only suggest touching them on the sensor, motherboards are sacred
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.
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!!!
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).
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: