Enable CAN0 on Jetson Orin Nano (JP17) - Registers verified but no data from DroneCAN sensor

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:

  1. 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.

    image

  2. 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:

  1. 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.

Found the solution to my problem in this post:

CAN Message from Jetson Orin Nano not detected - Jetson & Embedded Systems / Jetson Orin Nano - NVIDIA Developer Forums

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.