Bytes_invalid and "Missed scheduling of next digital out event" issues

Basic Information:

Printer Model: JGAurora A1
MCU / Printerboard: original STM32F103 based board
klippy.log (913.9 KB)

There are already a lot of discussions about these issues. I’m running MainsailOS 1.3.2, and the printer is connected either via a Waveshare RS485 CAN HAT (MCP2515-based) or via a DSD Tech SH-C30A CANable clone USB-to-CAN adapter. The CAN bus is set to run with 250000 baud and a txqueuelen setting of 128 on the linux interface.

I had major issues with bytes_invalid increasing and with frequent mcu shutdowns. I’m not exactly sure how they are related, but I would like to add some data points:

I used the CAN HAT for the connection first, ans changed to the USB adapter in an attempt to fix my issues, but that didn’t change anything.

The bytes_invalid issue (reordered CAN packets) was immediately and completely resolved by updating the Linux kernel from 6.1 to 6.6 using rpi-update. At least for the USB adapter it might be related to this change: can: gs_usb: convert to NAPI/rx-offload to avoid OoO reception · torvalds/linux@24bc41b · GitHub

Unfortunately I still had shutdowns. It looked like the transmission of CAN packets just stops at some point, while packets were still received (temperature readings were still being updated after the last transmitted package). The symptom was the same using candleLight_fw v2.0 release, candleLight_fw master or klipper in USB-CAN-bridge mode. It might be a hardware issue with the adapter. I wasn’t able to check a different USB-to-CAN adapter, and I don’t know how to diagnose this further.

After changing back to the CAN HAT now everything works stable, bytes_invalid is 0 and there are no shutdowns.

Did you read here already:

However baudrate and queue length might be too low for at list input shaper and other features when running higher speeds.

Interesting findings @ssiegel. Thanks for sharing.

From the user experience here, a lot seems to depend on the system and used hardware if a CAN system runs cleanly or not.

In fact, rather the Waveshare RS485 CAN HAT is known to cause issues by dropping packets.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.