DJI PSDK USB Bulk Configuration Issue on Nvidia Jetson Orin Nano

Issue Overview

Users are experiencing difficulties configuring USB bulk endpoints for the DJI PSDK (Payload SDK) on the Nvidia Jetson Orin Nano (JP6) development board. The main symptoms include:

  • Inability to detect the expected USB bulk endpoints (/dev/usb-ffs/bulk1 and /dev/usb-ffs/bulk2) after system restart
  • Discrepancies in the UDC (USB Device Controller) device paths
  • Confusion regarding the correct connection method between the DJI Eport and the Jetson board

The issue appears to be related to the USB device mode configuration and potentially hardware-specific differences between Jetson models.

Possible Causes

  1. Incorrect UDC device path: The script is looking for UDC devices (700d0000.xudc or 3550000.xudc) that may not be present on the specific Jetson model being used.

  2. Mismatched hardware: The configuration guide may be intended for a different Jetson model (e.g., Jetson Nano instead of Jetson Orin Nano), leading to compatibility issues.

  3. Improper connection: The physical connection between the DJI Eport and the Jetson board may be incorrect, affecting the USB configuration.

  4. Software configuration errors: Mistakes in the USB bulk configuration files or script modifications could prevent proper setup of the bulk endpoints.

  5. Insufficient permissions: Running the configuration scripts without proper permissions (e.g., not using sudo) may result in incomplete setup.

Troubleshooting Steps, Solutions & Fixes

  1. Verify Jetson model and software version:
    Confirm the exact Jetson model and software version you are using:

    head -n 1 /etc/nv_tegra_release
    

    Ensure that you are following documentation specific to your hardware.

  2. Check UDC device presence:
    Inspect the available UDC devices:

    ls /sys/class/udc/
    

    If you see 3550000.usb instead of the expected 3550000.xudc, modify the script to use the correct device name.

  3. Correct USB connection:

    • For UART communication: Connect the UART TX/RX pins from the Eport to the Jetson’s USB-A port using an FTDI adapter.
    • For USB bulk transfer: Use a USB-C to USB-A cable to connect the Eport’s USB output to the Jetson’s USB-A port.
  4. Modify USB device mode script:
    Edit the /opt/nvidia/l4t-usb-device-mode-start.sh script to match your hardware:

    • Replace 3550000.xudc with 3550000.usb if that’s what your system shows.
    • Ensure the enable_bulk variable is set to 1.
  5. Run configuration with elevated privileges:
    Execute the USB configuration script with sudo:

    sudo /opt/nvidia/l4t-usb-device-mode-start.sh
    
  6. Verify bulk endpoint creation:
    After running the script, check for the presence of bulk endpoints:

    ls /dev/usb-ffs/
    

    You should see bulk1 and bulk2 directories.

  7. Test with simplified configuration:
    If issues persist, try using only UART communication first:

    • Set DJI_USE_ONLY_UART in your PSDK configuration.
    • Once UART communication is working, gradually introduce USB bulk configuration.
  8. Check running processes:
    After reboot, verify if the bulk endpoint processes are running:

    ps aux | grep startup_bulk
    

    You should see two processes for bulk1 and bulk2.

  9. Consult DJI documentation:
    Refer to the latest DJI PSDK documentation for Jetson Orin Nano-specific instructions, as the setup may differ from other Jetson models.

  10. Seek vendor support:
    If the issue persists, contact DJI support or the Jetson community forums for hardware-specific guidance on PSDK integration with Jetson Orin Nano.

Remember to reboot the system after making configuration changes and always backup important files before modifying system scripts.

Similar Posts

Leave a Reply

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