fluidd-core / FluiddPI

FluiddPi - A Pi image with Klipper, Moonraker, Fluidd and Web Camera support pre-installed.
https://docs.fluidd.xyz
GNU General Public License v3.0
299 stars 58 forks source link

USB disconnect/timeout issues with Ender 7 with ch341-uart USB2Serial #34

Open ganzgustav22 opened 2 years ago

ganzgustav22 commented 2 years ago

Browser

Chrome

Device

Other (Please tell us below)

Operating System

Linux

What happened

From time to time (usually every few hours, sometimes it lasts longer, for maybe 12 hours) I get disconnected from the printer because of those dreaded Linux Kernel USB issues Linux and especially the Pi platform have been plagued by for years.

This happens only on a Pi4. No, it's not a wiring/shielding/grounding or power supply issue. Switched the exact same sdcard from the Pi4 over to a Pi3B+ and the problem is gone.

Linux kernel log looks like this when it happens:

[45407.479837] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[45407.480360] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[45407.580037] ch341-uart ttyUSB0: usb_serial_generic_write_bulk_callback - urb stopped: -32
[45407.606245] ch341-uart ttyUSB0: usb_serial_generic_write_bulk_callback - urb stopped: -32
[45407.657376] ch341-uart ttyUSB0: usb_serial_generic_write_bulk_callback - urb stopped: -32
[45407.732291] usb 1-1.3: USB disconnect, device number 3
[45407.733660] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[45407.733766] ch341 1-1.3:1.0: device disconnected
[65765.234395] usb 1-1.3: new full-speed USB device number 4 using xhci_hcd
[65765.380539] usb 1-1.3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[65765.380562] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[65765.380580] usb 1-1.3: Product: USB Serial
[65765.385347] ch341 1-1.3:1.0: ch341-uart converter detected
[65765.392747] usb 1-1.3: ch341-uart converter now attached to ttyUSB1
[74477.881226] ch341-uart ttyUSB1: usb_serial_generic_read_bulk_callback - urb stopped: -32
[74477.884539] ch341-uart ttyUSB1: usb_serial_generic_read_bulk_callback - urb stopped: -32
[74478.083060] ch341-uart ttyUSB1: usb_serial_generic_write_bulk_callback - urb stopped: -32
[74478.083842] ch341-uart ttyUSB1: usb_serial_generic_write_bulk_callback - urb stopped: -32
[74478.089993] usb 1-1.3: USB disconnect, device number 4
[74478.092247] ch341-uart ttyUSB1: ch341-uart converter now disconnected from ttyUSB1
[74478.092346] ch341 1-1.3:1.0: device disconnected

What did you expect to happen

No random USB disconnects

How to reproduce

Additional information

No response

matmen commented 2 years ago

I'm not sure if this would be a FluiddPi issue. I personally can't reproduce this, though maybe you are willing to troubleshoot: Is this reproducible on a clean Raspberry Pi OS install with Klipper / fluidd installed via KIAUH?

ganzgustav22 commented 2 years ago

It's not a bug in the Fluiddpi components or changes to the base Raspberry Pi OS image, indeed. It's a kernel and/or Pi firmware issue within Raspberry Pi OS. But it affects FluiddPi users, so I thought I report it here so that people can find it when they face the same issue.

I can open an issue on the Raspberry Pi github, but my experience is that these issues often do not get fixed because they are sporadic, hard to debug and need specific hardware.

Sometimes they get fixed "by accident", when a larger kernel release bump occurs, sometimes they get re-introduced later, etc. it's quite annoying.

What still left to try is using the Pi4 USB-C power connector as a workaround (It's basically the same old USB controller from the older Pis, so there is hope that it works with that one). Need to order a cable first and power the Pi4 via it's GPIO pins. I can report back if that turns out successful.