Home        Store        Learn        Blog

Issue with routing USB vs USB2.0

Hi guys,

I recently started to have some issues with routing.

I use an arduino nano and send a string at 115200.

The code is good but the problem appears depending which USB version the raspberry pi sees the nano.

If the serial port is detected as USB, all is good
image

If the serial port is detected as USB2.0. All I get is gibberish at the topside
image

Both arduino work just fine if I plug them on my laptop directly windows detect them as CH340.

Both nano boards are almost identical but the one that works has a serial to usb chip CH340C and the one that doesn’t work has an unmarked serial to usb. So likely its a different version or IC model.

My problem is I have no control which IC I will receive since I bought both from the same supplier at different time.

Maybe this is something others have experienced with different devices?

What are the restrictions on the Rpi for routing?

Will it not accept USB2.0 compatible devices?

Many thanks,
E.

Hi @etienne ,

This is new! I wonder if it is a linux driver issue, as it is an unmarked chip.
Have you tried reading its output using screen?

I have two suggestions:

  • Check the output of dmesg in the companion after plugging it in. That should give us more information about the chip.
  • Remote the routing, flash something with a human-readable output in the arduino, and connect a screen to it screen /dev/serial/... 115200 (fix path and baudrate) to check if everything looks fine.

If everything looks fine, that it is likely a bug in our routing system.

Hi Willian,
Here is the screen grab from the ‘NANO.txt (31.2 KB) sudo dmesg | less’ command. It’s late where Etienne is, so I figured since I have the same issue, I’d grab it.
Hopefully you can glean something out of this.

Hi,

Did you disconnect the adapter? It looks like there is a connection issue there. Something happened and it disconnected 120s after boot.

[    8.994024] usbcore: registered new interface driver ch341
[    8.994103] usbserial: USB Serial support registered for ch341-uart
[    8.994185] ch341 1-1.4.3:1.0: ch341-uart converter detected
[    8.999192] usb 1-1.4.3: ch341-uart converter now attached to ttyUSB0
.....
[  114.295529] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[  114.295629] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[  114.349602] usb 1-1.4.3: USB disconnect, device number 7
[  114.349824] usb 1-1.4.3: failed to send control message: -19
[  114.350091] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[  114.350138] ch341 1-1.4.3:1.0: device disconnected
[  120.016671] usb 1-1.4.3: new full-speed USB device number 9 using dwc_otg
[  120.116691] usb 1-1.4.3: device descriptor read/64, error -32
[  120.336935] usb 1-1.4.3: device descriptor read/64, error -32
[  120.566694] usb 1-1.4.3: new full-speed USB device number 10 using dwc_otg

Hi there,
No, I did not remove it. I plugged it in, then ran dmesg till the (end). The board was connected the whole time.
K.

Hi ken, did you try

  • Remote the routing, flash something with a human-readable output in the arduino, and connect a screen to it screen /dev/serial/... 115200 (fix path and baudrate) to check if everything looks fine.

Its already a human-readable ouput so no need to flash the arduino with something else.

FYI, I pause the code for 15sec when the arduino initialize to give time to the Companion to boot. I had to do this or sometime the pixhawk doesn’t get picked up…