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

  1. Missing or incompatible CH340 driver: The Jetson Orin Nano may not have the necessary driver installed or loaded to recognize the CH340 chipset.

  2. Kernel module not loaded: The required kernel module for CH340 devices might not be automatically loaded at boot time.

  3. Udev rules misconfiguration: There could be issues with the udev rules that manage device detection and naming.

  4. Hardware compatibility issues: The specific SBUS to USB converter might not be fully compatible with the Jetson Orin Nano’s USB controller.

  5. 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

  1. 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.
  2. 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.
  3. 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)
      
  4. 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
      
  5. 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
      
  6. 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.
  7. Test the device:

    • Unplug and replug the USB device.
    • Check if it appears in /dev/tty* or as /dev/ttyUSB_CH340.
  8. 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.
  9. 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.
  10. 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.

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.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *