Over a year ago I started porting my motor control firmware away from mbed. I've been working on it in spurts every few months and and ended up re-doing a lot of things from scratch, so it took much longer than I originally planned. Find it here:
https://github.com/bgkatz/motorcontrol
The core motor control math hasn't changed (foc.c is nearly identical to the old version). Lots of features have been improved though:
- Encoder calibration/linearization is now current-mode, not voltage mode, and the calibration current can be configured from the serial terminal interface
- Lots more parameters are configurable from the serial interface
- Hardware setup is done with the Cube auto-generated setup code. Linking between the hardware and motor control code is all done in hw_config.h so it should be pretty easy to port to different micros (someday I'll switch to using G4's instead of F446's....)
It's certainly not completely polished, but I think everything's working - I've been using this firmware for the espresso machine pump. I don't have any Mini Cheetah hardware other than the motor drives any more, so I haven't been able to confirm backwards-compatibility. Let me know if you try it and have problems.