CAN not working on ODrive Pro

Hey! I recently bought a couple of ODrive Pro boards and I’m using them in a robotics project. Back in 2018 & '19 I did another project using 3.6 boards. The boards all work fine for controlling my current bldc motors. And I’m running the Pro boards using a 10S battery (40V or so). Odrivetool and the new GUI also work fine (I like the new GUI!) but I cannot get CAN to work on the Pro boards at all. I’m using the Pi HAT recommended in the ODrive docs (Raspberry Pi RS485 CAN HAT Allows Stable Long-Distance Communication via RS485/CAN Functions Onboard MCP2515 Transceiver SN65HVD230 SP3485) and it works without any problems with the 3.6 board. I’ve connected DC- to the CAN gnd pin (pin 3 on the header, lower right side) and I connected that to the Pi HAT gnd. When I check continuity, it works from the DC- cable to the Pi HAT gnd and all points in between. I’ve turned on the 120 ohm terminating resistor as there are only 2 points in my CAN, both terminal. When I check the resistance between CAN_L and CAN_H, it’s 119.4 ohms. On the software side, I used the web GUI to set up the CAN. On startup odrv0.can is
baud_rate: 250000 (uint32)
protocol: 1 (uint8)
error: 0 (uint8)
n_restarts: 0 (uint32)
n_rx: 0 (uint32)

The Pro boards have 0.6.9 firmware on them.

The CAN pins on the Pro boards, I tried both, don’t seem to generate any signal at all. When I use the 'scope, I get a very stable 2.4V for CAN_L and CAN_H. When I test the 3.6 board, the CAN pins immediately generate perfect signal. What am I missing? Or is there something else I should look at?

Hi there! Could you sketch your wiring diagram?

Also, as a note you need 120 ohm terminators on either side of the bus - so the total DC resistance should be 60 ohms. But at 250,000 baud it /should/ still work even with a single termination resistor.

Can you share your GUI configuration? What have you set the node ID to?

Ah, I did the resistance test with it open, when it’s all connected it’s 59.8 ohms. It’s wired like this:

the Interfaces tab in the GUI looks like:

Does this help?

The motor works fine and ifconfig on the Pi shows can0. When I use the 3.6 board, I get traffic in candump. For the Pro, candump never shows anything.

Hi! Note this change of CAN between v3.6 and Pro CAN Protocol — ODrive Documentation 0.6.9 documentation

If you set node ID to anything but 63, it should work as expected!

Thanks, that fixed it!