Hello,
I am trying to enable the CAN0 interface on a Jetson Orin Nano Developer Kit to read data from an RM3100 CAN magnetometer (DroneCAN HOLYBRO).
Environment:
-
Board: Jetson Orin Nano Developer Kit.
-
L4T Version: 36.4.3 (JetPack 6.2).
-
Hardware:
-
Port: JP17 (Header under the WiFi module).
-
Transceiver: Waveshare SN65HVD230 (3.3V).
-
Sensor: RM3100 CAN Module (DroneCAN 1Mbps).
-
Configuration Steps & Verification:
-
Pinmux: I updated the tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi to enable CAN0 on PAA.00 and PAA.01 and reflashed the board.

-
Register Verification :
I manually verified the PADCTL registers using busybox devmem.
root@nvidia# busybox devmem 0x0c303018
0x0000C454
root@nvidia# busybox devmem 0x0c303018 w 0xc458
root@nvidia# busybox devmem 0x0c303018
0x0000C458
root@nvidia# busybox devmem 0x0c303010
0x0000C408
root@nvidia# busybox devmem 0x0c303010 w 0xc400
root@nvidia# busybox devmem 0x0c303010
0x0000C400
Interface Setup:
ip link set can0 type can bitrate 1000000
ip link set can0 up
ip -d link show can0
3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0 minmtu 0 maxmtu 0
can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0
bitrate 1000000 sample-point 0.740
tq 20 prop-seg 18 phase-seg1 18 phase-seg2 13 sjw 1
mttcan: tseg1 2..255 tseg2 0..127 sjw 1..127 brp 1..511 brp-inc 1
mttcan: dtseg1 1..31 dtseg2 0..15 dsjw 1..15 dbrp 1..15 dbrp-inc 1
clock 50000000 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 parentbus platform parentdev c310000.mttcan
But right after i connect magnetometer state ERROR-ACTIVE Changed:
root@nvidia:~# ip -d link show can0
3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0 minmtu 0 maxmtu 0
can state ERROR-PASSIVE (berr-counter tx 0 rx 127) restart-ms 0
bitrate 1000000 sample-point 0.740
tq 20 prop-seg 18 phase-seg1 18 phase-seg2 13 sjw 1
mttcan: tseg1 2..255 tseg2 0..127 sjw 1..127 brp 1..511 brp-inc 1
mttcan: dtseg1 1..31 dtseg2 0..15 dsjw 1..15 dbrp 1..15 dbrp-inc 1
clock 50000000 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 parentbus platform parentdev c310000.mttcan
root@nvidia:~# sudo dmesg | tail
[ 786.714879] rtk_btcoex: Open BTCOEX
[ 786.714884] rtk_btcoex: rtk_vendor_cmd_to_fw: opcode 0xfc1b
[ 786.714893] rtk_btusb: btusb_open end
[ 786.716856] rtk_btcoex: unknown hci command
[ 786.718852] rtk_btcoex: BTCOEX hci_rev 0x09a8
[ 786.718855] rtk_btcoex: BTCOEX lmp_subver 0xcbc9
[ 786.739841] rtk_btusb: btusb_notify: hci0 evt 3
[ 810.686368] mttcan c310000.mttcan can0: Bitrate set
[ 813.845392] mttcan_controller_config: ctrlmode 0
[ 813.845413] mttcan c310000.mttcan can0: Bitrate set
The Issue:
Running candump can0 shows absolutely no data.
Hardware Setup:
-
Jetson JP17 Pin 1 (RX) → Waveshare RX
-
Jetson JP17 Pin 2 (TX) → Waveshare TX
-
Jetson JP17 3.3V/GND → Waveshare VCC/GND
-
Waveshare CAN H/L → Sensor CAN H/L
Questions:
- Maybe I’m doing something wrong and that’s why I can’t receive messages from my magnetometer via the CAN bus?
Please help me enable the CAN bus so that I can receive messages via it.
