CAN Communication Setup for Nvidia Jetson Orin Nano Dev Board
Issue Overview
Users of the Nvidia Jetson Orin Nano Dev Board are experiencing difficulties setting up and utilizing CAN (Controller Area Network) communication. The main challenges include:
- Inability to locate CAN pins on the 40-pin GPIO header
- Uncertainty about the need for additional configuration or modules
- Concerns about soldering a CAN header to the unpopulated space (J17) on the board
- Difficulties in getting USB-to-CAN adapters to work properly with the Jetson Orin Nano
These issues are primarily encountered during the initial setup phase and affect users who require CAN communication for various applications, such as robotics projects involving motor controllers and other devices.
Possible Causes
-
Lack of built-in CAN transceiver: The Jetson Orin Nano Dev Board does not come with a pre-installed CAN transceiver, necessitating additional hardware.
-
Unpopulated CAN header: The board has an unpopulated space (J17) for a CAN header, which requires soldering skills to utilize.
-
Insufficient documentation: Users may be unaware of the specific requirements for setting up CAN communication on this board.
-
Compatibility issues with USB-to-CAN adapters: Some adapters, particularly those using SLCAN instead of native CAN, may not work seamlessly with the Jetson Orin Nano.
-
Incorrect SocketCAN initialization: Users might be initializing the CAN interface incorrectly, preventing proper communication.
Troubleshooting Steps, Solutions & Fixes
-
Adding a CAN Transceiver
- Purchase a recommended CAN transceiver, such as the Waveshare SN65HVD230.
- Carefully solder the transceiver to the unpopulated space (J17) on the board.
- If uncomfortable with soldering, consider professional assistance to avoid damaging the dev kit.
-
Using a USB-to-CAN Adapter
-
As an alternative to soldering, use a USB-to-CAN adapter.
-
Ensure the adapter is compatible with the Jetson Orin Nano and supports native CAN (not just SLCAN).
-
Follow these steps to set up the USB-to-CAN adapter:
a. Connect the adapter to the Jetson Orin Nano.
b. Check if the kernel recognizes the device:dmesg | grep -i "can"
c. Load the necessary kernel modules:
sudo modprobe can sudo modprobe can_raw
d. Set up the CAN interface (replace X with the appropriate interface number):
sudo ip link set canX type can bitrate 500000 sudo ip link set canX up
e. Use
candump
to monitor CAN traffic:candump canX
-
-
Configuring CAN Communication
- Refer to the Jetson Linux Developer Guide for detailed instructions on setting up CAN communication.
- Key steps include:
a. Enabling CAN in the device tree
b. Building and flashing a custom kernel
c. Configuring CAN interfaces usingip
commands
-
Troubleshooting USB-to-CAN Adapters
- If the adapter’s data indicator light shows it’s receiving CAN frames, but the Jetson can’t read them:
a. Check if the adapter is recognized by the system:lsusb
b. Verify the correct kernel modules are loaded:
lsmod | grep can
c. Ensure the bitrate settings match your CAN network:
sudo ip link set canX type can bitrate <your_network_bitrate>
- If the adapter’s data indicator light shows it’s receiving CAN frames, but the Jetson can’t read them:
-
Additional Resources
- Consult the official Nvidia Jetson Linux Developer Guide for comprehensive information on CAN setup.
- Join Nvidia Developer forums or communities for peer support and updated information on CAN communication with Jetson Orin Nano.
Remember to always refer to the latest documentation and seek professional assistance if unsure about hardware modifications to avoid damaging your Jetson Orin Nano Dev Board.