Waveshare CAN and RS485 Hat with Jetson nano 4GB B00

Hi there,
I’ve purchased this Waveshare CAN hat which uses MCP2515. I’ve already modified the dts files as per the interrupt pin mentioned by Waveshare and by following other topics on this forum I’ve reached the stage where I get the message “MCP251x initialized successfully” also I’m able to bring up the can0 interface.

Jetson 4GB B00 - Jetpack 4.6[L4T 32.6.1]

jetson-mcp251x.dts.txt (3.9 KB)

I’ve changed the clock to 8Mhz as my module has a 8Mhz oscillator and changed the interrput to 29.

I’ve also used the default driver(.ko) file for MCP2515 that came with the jetpack.

  1. My MCP is initialized:
  2. My interface also goes up and get the interrupt:


  1. I can only send one message on can0, then i need to bring the interface down and up again to send the next message and I’ll have to do the same thing to send the next message. If I don’t do this I don’t see any message on the receiving device.
  2. I cannot receive any message on the can0 network on the Jetson.

I’ve also searched the forum for any similar issue to somebody else couldn’t find any. Kindly redirect me if any exists or please help me find a solution.

Hi roopanyt,

Is that the devkit or custom board?

Could you help to verify with the latest JP4.6.4 (R32.7.4)?

Do you confirm if this message has been sent correctly?
Could you also share the result of following command after you send the packet?

$ sudo ip -d -s link show can0

Hello there KevinFFF,

  1. The Board is a dev-kit.
  2. Yes I would be glad to help with lastest JP, but kindly direct me through the process. I’m using the Ubuntu images from QEngineering. As I require Ubuntu 20.04. Is it possible to upgrade to the latest jetpack without modifying the Ubuntu version?
  3. I’ve attached a image with the phenomenon I just mentioned in the OP below.

The second cansend command didn’t do anything, but after bringing down and up the can. The next cansend command execution results in the message being sent.

Thanks and Regards,

Please just get a Ubuntu 18.04 or 20.04 as your host PC and use SDKM to flash JP4.6.4 (R32.7.4) on the devkit.

Is your left terminal and right terminal coming from the same device?
Are you doing the loopback test?

Could you share the block diagram of your connections?
Is there any error in dmesg?

Yeah! I’ll try flashing to the jetpack version you mentioned.
The left terminal is a ssh to the nano, the right one is the received PC with a usb to can device. [Edit]Yes both terminal comes from the same device. No loopback test, standard communication between two nodes.
Here’s the Block Diagram.

I don’t have any errors in dmesg though.

Thanks for your information.

Could you help to check why the sample-point from Jetson Nano is different from the X86-PC?

I have no idea. I also have a Orin nano that has a sample-point of 0.740. What should I do to help you? I’m also trying to flash the jetson to the version you mentioned.

Shall I try syncing the sample points and other properties as same in the PC. Using the below command?

I’m not sure if the configuration in your host PC for USB CAN correct.

Do you have another Waveshare MCP2515 CAN could be connected on the another SPI interface and try to verify with the loopback test?

I don’t have another Waveshare MCP2515, but I can use the other orin nano’s CAN to check if my MCP2515 is working.
Will update to you once I’ve tested it. Thanks a lot.

1 Like

Kevin thanks for your help. But I am unable to diagnose the above mentioned issue as I don’t have that much time. I’ve resorted to a Microchip USB to CAN to test my CAN Hardware and this jetson MCP2515 isn’t required for now. I shall open a new thread if I get my hands on it again.

Again thanks a lot!.

For your reference, you could also try using sjw 4 for both side to setup CAN and check if it could help.

$ sudo ip link set can0 up type bitrate 500000 sjw4

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