If the stock firmware does what you need, you might as well use it. If not, use SimpleFOC. I looked into editing the ODrive firmware before since its GPIO mapping wasn’t able to do what I wanted, but setting up the compiler for it seemed so difficult I just added an Arduino to do my extra stuff.
What size motor and what features do you need? As Olaf says, hoverboard controllers are a good cheap option for large motors, as are the ODrive clones.
B-G431B-ESC1 remains a good option for medium-small motors, although it is limited on I/O and has doubled in price recently along with all STM products.
MicroSpora is good for small motors.
The latest version of my Gooser is not fully validated yet, but it’s good for medium sized motors. No CAN bus since that’s mainly for communicating with drivers that are located near each motor, whereas the primary dual/quad design of Gooser favors having the drivers near the battery. But I have considered adding it to the single-motor version since it’s pretty heavily modified already and can spare the second encoder connector for it.
EDIT: Annnd here it is. 6 hours, I’m getting faster
I didn’t even have to increase the board size, just move the mounting screw holes. Less GPIO than before, but still plenty, and the encoder is upgraded to 6-pin so it can do SPI without any hassle.


