Toolhead MCU timeout errors

Basic Information:

Printer Model: V2.4
MCU / Printerboard: M8P over USB + 6x EBB36 over Canable
Host / SBC: Pi4
klippy.log (4.9 MB)

Describe your issue:

So I have been chasing this with no avail for a while. Maybe someone has directions/ Ideas?

I am loosing connection to my toolhead MCUs over Canbus with “Timeout with MCU” error.
This seems to be happeing randomly, more if the chamber temp is higher.
BUT also happening with the printer idle and ~20C ambient temp once about ~ 24h.
Nothing directly pointing towards overheat or HW issue.

After the connection loss, all but the affected toolhead is reachable over canbus.
Connection to the affected toolhead is restored after a power cycle for the toolhead without restarting the rest of the system.
So on the surface a MCU crash/overheat seems plausible.

Toolheads et0 and et2 are the ones dying, the rest seem to be doing fine.

Things I have tried so far:

  • no lost canbus packets reported by canbus or Klipper
  • switch the wiring harnesses around - no effect, still the same toolheads die.
  • redo all my wiring - no effect.
  • reduce number of toolheads active with Klipper - seems to have some positive effect, but not 100%.
  • Klippy for some reason does not write send/recieved buffer for the lost MCU in the log :frowning:

I solved this by soldering down all the connections, so this was a wiring issue after all.

Still, I would expect toolhead MCUs to not lock up over some signal loss. Is there a way to debug such chrashes?

1 Like

Update - this did not fully solve the issue, still seeing disconnects.
And interestingly more as the weather is getting warmer or the printer bed is hotter (ABS vs PLA).

After some debugging today, once the disconnects start, reconnecting a toolhead fixes it only for a few minutes, until another toolhead randomly dies.

A printer power cycle restores it to normal operation. My next suspect is the USB2CAN chip becoming glitchy when hot.

Moved it right next to the intake fans, will report how it goes.

I have that exact same USB2CAN board and have never had any issues with it.

You say you soldered your connections but that’s not actually a great idea for CAN bus as those traces aren’t a twisted pair so you’re introducing an impedance mismatch at that point. The signal reflection can cause all kinds of issues.

I know the connections on the PCBs are traces too but there is a termination resistor IMMEDIATELY after the connector and if there isn’t then immediately after the connector is the transceiver which handles the signal. That’s much different than wide open copper tracks being essentially a break in the connection.

Also, Have you tried “tug testing” your crimped ferrule connections as well?

Quick update - have been running with no errors for 30+ hours, so flaky U2C seems to have been the cause.

Forgot to mention, that I swapped out a different U2C board.
The one I was having issues is a Canable V2 Pro.

On the 10cm of untwisted cable concerns I have not had any packet loss to speak of, so very unlikley a signal quality issue.
You can get all kinds of canbus splitter boards, and none of them seem to pay particual attention to shielding the traces.

If anything having 6 unterminated stubs with ~80cm length is out of spec.
People have been runing up to 2.5m stubs in star configuration successfully however, so the spec is very conservative here.