ODriveError.SPINOUT_DETECTED

Hi everyone,

I’m using an Odrive Pro to control a BLDC motor with hall effect sensor (might be the reason of my problem due to it’s lack of precision?!). It’s controlling an inverted pendulum. When I send a command, the motor do not necesserly turn, but maintain a certain force to keep a certain torque. Sometimes, the torque applied is not on the same side of the rotation (which is normal). I think it’s because of that, but I get the following error:

In [8]: dump_errors(odrv0)
axis0
  active_errors: no error
  disarm_reason: Error(s):
    ODriveError.SPINOUT_DETECTED
  procedure_result: ProcedureResult.DISARMED
  last_drv_fault: none
internal issues: none

As you can see on the figures below, when


The motor normally runs for a few seconds before getting the error and then stops.
Hence, is there a setting to remove that error, because everytime, the motor just stop and the pendulum falls. I have no idea what to do in that case. If you need any other informations, just ask and I’ll upload them, I’m desepered !

EDIT :
What are the unit of these parameters ? Watts ? Amp ? I might be able to fix my problem by adjusting those parameters.

In [3]: odrv0.axis0.controller.config.spinout_electrical_power_threshold
Out[3]: 10.0

In [4]: odrv0.axis0.controller.config.spinout_mechanical_power_threshold
Out[4]: -10.0

In [5]: odrv0.axis0.controller.config.mechanical_power_bandwidth
Out[5]: 20.0

In [6]: odrv0.axis0.controller.config.electrical_power_bandwidth
Out[6]: 20.0

EDIT EDIT :
Just found out in the doc that those settings are in Watts odrv0.axis0.controller.config.spinout_electrical_power_threshold Out[3]: 10.0 odrv0.axis0.controller.config.spinout_mechanical_power_threshold Out[4]: -10.0
Does that mean I have to enter the mechanical power that I need in those variables or is it something else ? I don’t want to blow up my controller.

From a poor desperate guy

If this can help anyone, here’s another thread with similar problem.

SPINOUT is usually caused by bad encoder calibration. You can try setting those values very high but then you risk the motor just spinning at max speed. It will however fix nuisance trips if that’s the actual issue.

1 Like