CAN implementation on Nvidia Jetson AGX Orin

I want to use 2 CAN channels on Nvidia Jetson AGX Orin Developer Kit (64GB). How can I do the same?
I referred the [Nvidia CAN documentation] Controller Area Network (CAN) — Jetson Linux<br/>Developer Guide 34.1 documentation)
Nvidia recommends the use of this CAN tranceiver board. Are these boards appropriate for use with Jetson AGX Orin?

Hi paul.anuj1,

Are you using AGX Orin or AGX Xavier?
What’s your Jetpack version in use?

Please just refer to the instruction from developer guide or the following thread about our verification for 2 CAN channels.
Jetson AGX Xavier Developer Kit CAN commmunication error - #8 by KevinFFF

I am using the AGX Orin Developer Kit(64GB).
Jetpack version:
Package: nvidia-jetpack
Version: 5.1.2-b104

Will the thread provided by you in the above reply be applicable to AGX Orin as well?

I’ve moved your topic to correct category for AGX Orin.

Yes, I’ve checked the pin from AGX Xavier and AGX Orin are similar.
Please just make sure you connect the correct pins.
The following figure is for AGX Orin.

Hi I would like to implement can based communication using C++, can you point me to the required dependencies and some sample codes in C++ ?

Linux uses SocketCan nowadays. SocketCan is hardware independent. A CAN interface is a special type of network interface visible in ip and ifconfig, so the usual BSD socket api works. It’s the sameon all platforms - PCs, NVidia, NXP, …


I was following the steps in this link:

In the section which describes To load the CAN kernel drivers

I get the following error:
$ insmod /lib/modules/
insmod: ERROR: could not load module /lib/modules/ No such file or directory

$ modprobe can
modprobe: ERROR: could not insert ‘can’: Operation not permitted

How do I fix this?

“” should be the actual module version.
ls /lib/modules should show the name.

1 Like

You should run the following command to load drivers for CAN.

$ sudo modprobe can
$ sudo modprobe can_raw
$ sudo modprobe mttcan
1 Like