Flipping the sign of current_setpoint


I’m trying to control a motor in four quadrant modes. I was able to run the calibration and position/velocity control . In the current control mode, when I set the current set-point to a value (around 1 A), it starts spinning in one direction and reaches the maximum speed, but when I flip the sign of the current, it won’t apply any torque in the opposite direction and keep spinning in the same direction. Even if I set the “axis.controller.current_setpoint” to zero, it keeps spinning and won’t stop.
I was wondering how can I apply a torque in the opposite direction? Is ODrive capable of performing four quadrant control?


Hm negative current setpoint should slow and reverse the motor, and zero current setpoint should spool down to a halt. I don’t know why it would keep spinning, that sounds like there may be an issue with the current controller.
I guess it’s unlikely, but maybe you were actually still in velocity control mode by mistake?

What motor were you using? What bus voltage? Does it still happen if you run at a lower voltage (if you are able to test that)?