CH340 USB-to-Serial Converter Not Detected on Jetson Orin Nano
Issue Overview
Users of the Jetson Orin Nano are experiencing difficulties with CH340-based USB-to-Serial converters, specifically SBUS to USB converters. The device is not being detected or listed when running the command ls /dev/tty*
, despite being visible in the output of lsusb
. This issue is occurring on a Jetson Orin Nano running Linux kernel version 5.15.136-tegra.
Possible Causes
-
Missing or incompatible CH340 driver: The Jetson Orin Nano may not have the necessary driver installed or loaded to recognize the CH340 chipset.
-
Kernel module not loaded: The required kernel module for CH340 devices might not be automatically loaded at boot time.
-
Udev rules misconfiguration: There could be issues with the udev rules that manage device detection and naming.
-
Hardware compatibility issues: The specific SBUS to USB converter might not be fully compatible with the Jetson Orin Nano’s USB controller.
-
USB port power limitations: Some CH340 devices might require more power than the Jetson Orin Nano’s USB ports can provide by default.
Troubleshooting Steps, Solutions & Fixes
-
Verify device detection:
- Run
lsusb
to confirm that the device is physically connected and recognized by the system. - Note the Vendor ID and Product ID of the CH340 device from the
lsusb
output.
- Run
-
Check for existing CH340 driver:
- Run
dmesg | grep ch34*
to see if there are any messages related to the CH340 driver. - If no messages appear, the driver might not be installed or loaded.
- Run
-
Install or update CH340 driver:
- Update the system packages:
sudo apt update sudo apt upgrade
- Install the CH340 driver if not present:
sudo apt install linux-modules-extra-$(uname -r)
- Update the system packages:
-
Load the CH340 kernel module:
- Manually load the module:
sudo modprobe ch341
- If successful, add it to auto-load on boot:
echo "ch341" | sudo tee -a /etc/modules
- Manually load the module:
-
Create a custom udev rule:
- Create a new udev rule file:
sudo nano /etc/udev/rules.d/99-ch340.rules
- Add the following line (replace XXXX:YYYY with your device’s Vendor:Product ID):
SUBSYSTEM=="tty", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="YYYY", SYMLINK+="ttyUSB_CH340"
- Save the file and reload udev rules:
sudo udevadm control --reload-rules && sudo udevadm trigger
- Create a new udev rule file:
-
Adjust USB power management:
- Disable USB autosuspend for the device:
echo -1 | sudo tee /sys/bus/usb/devices/XXXX:YYYY/power/autosuspend_delay_ms
- Replace XXXX:YYYY with the device’s address from
lsusb
.
- Disable USB autosuspend for the device:
-
Test the device:
- Unplug and replug the USB device.
- Check if it appears in
/dev/tty*
or as/dev/ttyUSB_CH340
.
-
If issues persist:
- Try a different USB port on the Jetson Orin Nano.
- Test the CH340 device on another computer to rule out hardware failure.
- Consider using a powered USB hub if power issues are suspected.
-
Kernel compatibility check:
- Verify if the CH340 driver is compatible with the current kernel version:
modinfo ch341
- If incompatible, consider updating or downgrading the kernel version.
- Verify if the CH340 driver is compatible with the current kernel version:
-
Log analysis:
- Check system logs for any USB or serial port related errors:
sudo journalctl -b | grep -i "usb\|tty\|serial"
- Look for any error messages that might provide additional clues about the issue.
- Check system logs for any USB or serial port related errors:
If these steps do not resolve the issue, it may be necessary to seek further assistance from NVIDIA’s Jetson community forums or consider alternative USB-to-Serial converters that are known to be compatible with the Jetson Orin Nano platform.