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
-
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.
-
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.
-
Improper connection: The physical connection between the DJI Eport and the Jetson board may be incorrect, affecting the USB configuration.
-
Software configuration errors: Mistakes in the USB bulk configuration files or script modifications could prevent proper setup of the bulk endpoints.
-
Insufficient permissions: Running the configuration scripts without proper permissions (e.g., not using sudo) may result in incomplete setup.
Troubleshooting Steps, Solutions & Fixes
-
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.
-
Check UDC device presence:
Inspect the available UDC devices:ls /sys/class/udc/
If you see
3550000.usb
instead of the expected3550000.xudc
, modify the script to use the correct device name. -
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.
-
Modify USB device mode script:
Edit the/opt/nvidia/l4t-usb-device-mode-start.sh
script to match your hardware:- Replace
3550000.xudc
with3550000.usb
if that’s what your system shows. - Ensure the
enable_bulk
variable is set to 1.
- Replace
-
Run configuration with elevated privileges:
Execute the USB configuration script with sudo:sudo /opt/nvidia/l4t-usb-device-mode-start.sh
-
Verify bulk endpoint creation:
After running the script, check for the presence of bulk endpoints:ls /dev/usb-ffs/
You should see
bulk1
andbulk2
directories. -
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.
- Set
-
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
andbulk2
. -
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. -
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.