CAN-bus Communication Issues with Jetson Orin Nano
Issue Overview
Users are experiencing difficulties with CAN-bus communication on the Nvidia Jetson Orin Nano development board. The specific symptoms include:
- Successful communication only in loopback mode
- Inability to transmit data from a USB CAN device to the Jetson
- No data reception when loopback mode is disabled
The issue occurs during the setup and testing of CAN-bus functionality. The user has connected the Jetson Orin Nano’s J17 pins to a CAN transceiver (Waveshare SN65HVD230) and further connected the transceiver to a USB CAN device. Despite these connections, bidirectional communication is not functioning as expected.
Possible Causes
-
Incorrect Configuration: The CAN-bus might be improperly configured, leading to communication issues.
-
Hardware Compatibility: There could be incompatibilities between the Jetson Orin Nano, the CAN transceiver, and the USB CAN device.
-
Driver Issues: The CAN drivers might not be properly installed or configured for the specific hardware setup.
-
Wiring Problems: Incorrect wiring between the Jetson, CAN transceiver, and USB CAN device could cause communication failures.
-
Bitrate Mismatch: The bitrate settings on the Jetson and the USB CAN device might not be synchronized.
-
Loopback Mode Misuse: Misunderstanding of the loopback mode’s purpose and proper usage could lead to incorrect testing procedures.
Troubleshooting Steps, Solutions & Fixes
-
Verify Hardware Setup:
- Ensure proper connections between the Jetson Orin Nano’s J17 pins, the CAN transceiver, and the USB CAN device.
- Double-check the wiring for any loose connections or incorrect pin assignments.
-
Correct Loopback Mode Usage:
- Disable loopback mode for external communication:
sudo ip link set can0 type can bitrate 50000 loopback off
- Only use loopback mode for internal testing without external connections.
- Disable loopback mode for external communication:
-
Configure CAN Interface:
- Set up the CAN interface with the correct parameters:
sudo ip link set down can0 sudo ip link set can0 type can bitrate 50000 sudo ip link set up can0
- Set up the CAN interface with the correct parameters:
-
Verify Driver Installation:
- Confirm that all necessary CAN drivers are loaded:
lsmod | grep can
- If any drivers are missing, load them manually:
sudo modprobe can sudo modprobe can_raw sudo modprobe can_dev sudo modprobe mttcan
- Confirm that all necessary CAN drivers are loaded:
-
Check Jetpack Version:
- Verify the Jetpack version installed on the Jetson Orin Nano:
sudo apt-cache show nvidia-jetpack
- Ensure compatibility between the Jetpack version and the CAN hardware being used.
- Verify the Jetpack version installed on the Jetson Orin Nano:
-
Synchronize Bitrates:
- Make sure the bitrate settings on both the Jetson and the USB CAN device match.
- Try different bitrates if 50000 doesn’t work (e.g., 125000, 250000, 500000).
-
Test with SocketCAN Tools:
- Use candump to monitor CAN traffic:
candump can0
- Use cansend to transmit a test message:
cansend can0 123#DEADBEEF
- Use candump to monitor CAN traffic:
-
Check USB CAN Device Configuration:
- Ensure the USB CAN device is properly recognized and configured on the host system.
- Verify its driver installation and settings.
-
Create a Block Diagram:
- Draw a detailed block diagram of the connections between the Jetson, CAN transceiver, and USB CAN device.
- Use this to identify any potential wiring or connection issues.
-
Consult Jetson Documentation:
- Review the official Nvidia Jetson documentation for CAN-bus setup and troubleshooting.
- Check for any known issues or limitations with CAN communication on the Orin Nano.
-
Isolate the Problem:
- Test the CAN communication between two Jetson boards if possible.
- If successful, this would indicate an issue with the USB CAN device or its configuration.
-
Update Firmware and Software:
- Ensure the Jetson Orin Nano has the latest firmware and software updates installed.
- Check for any available updates for the USB CAN device.
If the issue persists after trying these steps, consider reaching out to Nvidia support or consulting the Jetson developer community for further assistance. Additional debugging may be required to identify any hardware-specific issues or advanced software conflicts.