CANopen Support

Hi, I was thinking about buying the ODrive, but I’m slightly disappointed that CANopen is still not supported. Is there an initiative to integrate it in the near future?

Planned for ODrive Pro, but not the 3.6 / open source firmware. If you have the CANOpen spec and can write a driver though, that would be super dope lol

1 Like

Ok thanks, and is there any update planned for the ODrive 3.6 or is all effort being commited to the ODrive Pro?

We will continue to do minor bugfixes for 3.6, but no major updates.

Out of curiosity, what functionality from CANopen do you need?

Higher reliability, the controllers are gonna be used in designs where malfunctions could result in severe injuries.

For that case, I would strongly recommend an industrial servo controller e.g. from Elmo or Ingenia. ODrive is NOT rated to any kind of safety standard, and doesn’t have an STO (e-stop) input.
Whereas industrial drives are able to guarantee that the chance of a failure of the E-stop function is less than 10^-14 for example (i.e. certified to IEC61508 SIL 3). They also support CANopen (DS402), and CANopen-over-EtherCAT.

1 Like

CANopen doesn’t have anything to do with safety, and likely doesn’t have meaningfully higher reliability than CANSimple.

CANopen Safety is a bit different, but you’re probably not talking about that.

1 Like

Well, CANopen does make use of message priorities a bit more than CANsimple does.
IIRC, the most significant part of the ID in CANsimple is axis_id, so a “my position is x” message from axis 0 would win the arbitration over an “axis1 emergency stop” message, no? :stuck_out_tongue:
But, you do at least have a watchdog in CANsimple whereby if you stop sending messages then it will shutdown after a short delay, i think.
I don’t know if multiple ODrives could “keep eachother alive” in the absence of a master controller though.

Hah yes, that was a fuck up on my part. The axis IDs should be the least significant bits. Oh well.

Yep, if enabled.

They can, in theory, but not going to happen in practice. The watchdog is fed only if the AxisID matches on an incoming CAN message.

1 Like