Hello everyone,

We have a 6 wheeled robot with BotWheels controlled by ODrive S1 drivers. We are required to add an Emergency Stop button and, from what I read, this means a costumized firmware to check for a GPIO value and send zeros to the velocity controller.
I started by cloning ODrive repository. I copied and renamed the tup.config.default file to tup.config. I ran make and (after a few problems with the new version of cantools) it compiled. However, when I tried to flash it says “Magic numbers don’t match”.
I assume this has to do with the version in the tup.config file. Where can I check the version of S1? There is no indication on the board…

I know that there some firmwares out there doing this, but I wanted to start with a clean setup.

Thank you!

The ODrive repository does not support Pro or S1, it only works for v3.x.
The S1 has a dedicated ENABLE pin for this use case, but this feature is not currently implemented.
In the mean time, some users have been able to setup the max_endstop pin as an emergency stop. I would suggest checking out our discord to see how others are solving this problem, and keep an eye out for official ENABLE/ERROR pin support

Hello Nicholas,

I am going with ODrive S1 knowing that it includes an on-board absolute encoder, mainly to avoid calibration at every boot, is this valid assumption? I have seen threads with people purchasing AMT absolute encoders to be integrated with ODrive S1/Pro, so i am wondering if there is something i am missing,


Yes, you can reboot without needing to recalibrate the onboard encoder. External absolute encoders are great if the ODrive can’t mount on the motors axis, or if your encoder is mounted on the other side of some transmission (belt/pully/gears etc.)

1 Like