blog’s logo (little yellow bolt)

spark

my tinkerer journey into the fantastic 3D printing world, cnc, rc cars and such…

Klipper: Lost communication with MCU

My Voron 0.1 has been running for a few months now and I did not have a lot of issue with it. Fast forward to today… it started to throw this error:

Lost communication with MCU 'mcu'
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.

No dicernible pattern. It happened 5-10 seconds after boot or after few minutes. Even mid print on jobs meant to run for hours. So I started digging.

dmesg

First thing I did was to check system logs using dmesg -w and this is what I saw:

[…]
[ 39.988394] usb 1-1.2: USB disconnect, device number 7
[ 40.301068] usb 1-1.2: new full-speed USB device number 8 use dwc_otg
[ 41.560994] usb 1-1.2: device descriptor read/64, error -32
[ 41.815606] usb 1-1.2: New USB device found, idVendor=1d50, idProduct614e, bcdDevice= 1.00
[…]

Well, the line device descriptor read/64, error -32 is in red and it seems to be related to the MCU USB cable linked with the Raspberry Pi. I checked the previous logs and have multiple occurences of that error.

device descriptor read/64, error -32

I ask my good friend ChatGTP about the meaning of this error to learn a little bit more about it and here is the response:

What does the error "device descriptor read/64" means?

The "device descriptor read/64" error message on Ubuntu usually indicates an issue with the USB device that you are trying to connect to your system. This error message is typically displayed when the kernel is unable to read the descriptor information from the USB device.

There are several possible reasons why you might encounter this error, including:

  1. A faulty USB cable or port.
  2. A problem with the USB device itself.
  3. An issue with the USB controller or driver on your system.
  4. A problem with the USB hub, if you are using one.

Bingo! I changed the cable for a new one and never had the error since 🤞

But, I talked a little bit more with it to understand more about the error and what it really means.

What about the negative number at the end of the error? What does it mean?

The negative number at the end of the "device descriptor read/64" error message on Ubuntu is typically an error code that is returned by the USB subsystem of the kernel. The specific error code can provide additional information about the nature of the problem that caused the error.

So -32 means what?

In the context of the "device descriptor read/64" error message on Ubuntu, the error code "-32" indicates that the kernel was unable to allocate memory for the USB device. This error code is also known as "ENOMEM".

My issue might not be fixed afterall since the error I got earlier was probably caused by a lack of memory. But, as it does not occur anymore I cannot test that theory. If it ever come back I will make a follow up to check the state of the device’s memory.


✌️