Hello, I have been using ODrive S1 for controlling 150KV motor using ODrive USB TO CAN adapter and a AI built CAN viewer tool on my laptop. It worked well. However I have now connected the system with a Teensy 4.1 and a compatible transceiver. When I read CAN Bus, I see 0x08 from same node ID 0 as ODrive (Teensy node id is set to 1) which I have never seen before and is not in the dbc too. I am attaching a CAN log and sketch of my setup. Has anyone ever faced this? Any suggestions are appreciated.
Thanks!
Those aren’t from the ODrive – they’re CAN error frames from the USB-CAN adapter. It reports bus errors as ID 0x20000008 (error flag + protocol error); mask off the flag and you’re left with node 0, command 0x08. Byte 2 is the error type (0x04 stuff error, 0x02 form error) and the last byte is the adapter’s receive error counter, pegged at 255. So the bus has been erroring continuously since the Teensy joined – the ODrive itself never sends 0x08.
If the viewer’s on python-can, those messages will have is_error_frame == True. Pulling the Teensy’s transceiver off CANH/CANL should make them disappear entirely.
The Teensy’s own frames decode fine, so I’d look at the physical layer rather than the sketch. A few questions:
- Which transceiver, and what’s it powered from? The Teensy is 3.3V-only – a 5V transceiver like a TJA1050 can be marginal on a 3.3V TXD, and its 5V RXD isn’t safe for the Teensy either.
- How many 120R terminators are on the bus? Should be exactly two, at the ends. A lot of SN65HVD230 breakouts have one soldered on, and the adapter has its own switch.
- What bitrate and clock setting are you giving FlexCAN_T4?

