Velocity readout using CAN

Our team is making an autonomous rover and we wanted to use an ODrive to control two standard hoverboard wheel motors. Our system uses a CAN network for sending sensor data to the processor.
I saw the current CAN setup seems to focus on sending commands to the ODrive controller, but there aren’t many messages/statistics being sent from the motors. Can this be configured or do we need a microcontroller reading out SPI/UART and putting the messages on the CAN network?

The messages that you can get from the ODrive are:
Battery voltage, motor errors, encoder errors, axis state, Sensorless Error, Motor Error, Encoder Count, Sensorless Estimates, Encoder Estimates - I might be missing some.

For “information from the motor”, the most interesting might be: Encoder Estimates (position and velocity) are sent every 10ms.
What other information do you need?


Ahh yes, I see, thank you. Can I find the units this is expressed in somewhere?

By default, position is in revs and velocity is in revs/sec.

1 Like