Enabling CAN Driver for Nvidia Drive AGX Orin

Please provide the following info (tick the boxes after creating this topic):
Software Version
DRIVE OS 6.0.6
DRIVE OS 6.0.5
DRIVE OS 6.0.4 (rev. 1)

Target Operating System
[*] Linux

Hardware Platform
[*] DRIVE AGX Orin Developer Kit (940-63710-0010-300)
DRIVE AGX Orin Developer Kit (940-63710-0010-200)
DRIVE AGX Orin Developer Kit (940-63710-0010-100)
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
DRIVE AGX Orin Developer Kit (not sure its number)

SDK Manager Version
[*] other

Host Machine Version
native Ubuntu Linux 20.04 Host installed with SDK Manager
[*] native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers

We have the Nvidia Drive AGX Orin, along with the Vehicle Accessory kit. We want to test the CAN Communication on the Target Device(AGX Orin).

We are following the above link to set up the CAN, however we are not sure how to set it up properly. Below are some of the screenshots of the steps that we are stuck on.

From the above screenshots the instructions are not pointing to where to enable the CAN Drivers on the Target device.

Is there some files in the driveworks docker container that we need to transfer to the Target device? If so can you list them?

Can you please help us in any way possible?

Thanks in advance.

Dear @chintan.patel2,
Does How to develop "Can" functionality on the development board? helps?

We have looked into the link provided by yourself, we tried to setup the can0 bitrate and sent some data through, as shown in the screenshots below.

The details that you see on the screenshot is only showing data between 2 terminal windows without the harness cables being connected. Therefore it is not a valid loopback test. We can seem to send any data via cansend function from one terminal window to another terminal window, which will receive the data when we use candump function, irrespective of the harness cables being connected or disconnected.

We require the following things to work:

  1. We want to test the cables, as in send the CAN signals through the cable harnesses and receive it on some other device. We have set up the CAN loopback connections as shown in the pictures of Harness H1& H2 as shown in the link: Test Specific Setup | NVIDIA Docs

  2. Is there a way to check if the mttcan and mttcan-ivc drivers are set on the target properly or not.

  3. We want to run the sample program in Driveworks SDK called: " ./sample_canbus_interpreter --driver=can.socket --params=device=can0 " and test it with a real device. So for example we want to send steering angle data from the drive unit via Harness cable to the other end connected with a CAN interface device(CAN to USB) connected to another PC to see the received data.

Hi @chintan.patel2 ,
Just want to confirm if CAN Loopback Cable TS3 is prepared? Could you please share the pictures of all connections used for the test?
Also, could you try below commands
Terminal 1

sudo ip link set can0 type can bitrate 500000 berr-reporting on
sudo ip link set can1 type can bitrate 500000 berr-reporting on 
sudo ip link set up can0 
sudo ip link set up can1

Terminal 2

candump -x can1

Terminal 1

cansend can0 220#50

mttcan seems to be loaded by default on target. I am checking on file needs to be changed for mttcan-ivi and update you.

nvidia@tegra-ubuntu:~$ lsmod | grep can
can_raw                28672  0
can                    28672  1 can_raw
mttcan                 65536  0
can_dev                36864  1 mttcan
nvpps                  28672  2 mttcan,nvethernet

In your current setting, what do you see in log, when you run ./sample_canbus_interpreter --driver=can.socket --params=device=can0 on one terminal and run cansend can0 220#50 in loop on other termimal.

Hi there, we are in the middle of testing the system with the instructions you specified. We however need to know how to access the log when we run ./sample_canbus_interpreter --driver=can.socket --params=device=can0

Hi there, I’ve attached the photos of the cable connections for the CAN Loopback Cable TS3, as well as the pictures of commands from the terminals.

These are the cable connections, and below are the screenshots of the command terminals.

We have sent data on CAN0, however we cannot see any data received on CAN1.
Please can we get assistance in this, and also we still do not know where and how to access log.

Thanks in advance.

Hello @SivaRamaKrishnaNV,

Can we please get an update with regards to my previous post?


Dear @chintan.patel2,
Thank you for sharing connection details. I will check internally and update you.