ERROR_CURRENT_SENSE_SATURATION when trying to move motor

I recently recieved a new ODrive board and began basic testing to check out the new board. I was sucessfully able to run full calibration on both ports. However, when I attempted to set the velocity or current on port 1, the motor would click and then disengage. When looking for the error is printed ERROR_CURRENT_SENSE_SATURATION. What exactly does this mean? Why would it be happening when I set any sort of velocity or current (high or small)? And why would the motor be able to calibrate if there is too much current being sent to the board?

Any ideas help. Thanks

What motors are you using?

The calibration code uses a very different method to drive the motors than the “closed loop control” system, so that current sense isn’t really an issue during calibration.

I am using propdrive 35-30. I am also using a RSP 320 24 volt power supply.

It is interesting because I am able to run the motor perfeclty in port 0, but it throws the error when using port 1.

Also, on port 1, I can set the velocity to a speed of 1, and the motor begins to hum and shake. Anything higher and it clicks and disengages

I had the same problem yesterday. The motor accelerates fine, but when going over a certain speed it just stopped and gave me ERROR_CURRENT_SENSE_SATURATION.

I fixed it by lowering the vel_limit in the controller config and trap_traj config. I found that weird because I knew the motor could turn faster than that speed. Then it hit me that in the situation of yesterday the motor had a pretty unstable load attached to it. So I think that the current measurements were fluctuating too much and the ODrive saw it as noise. Or that the current measurements were spiking too high.

So then I thought that maybe the ODrive was reacting too aggressively on that unstable load. So I turned down the vel_gain value to 3 / 10000 and after that, my problem was fixed.

So perhaps lowering vel_gain may also work for you?

And for the problem that the motor hums and shakes when setting the velocity to one, maybe has something to do with the PI parameters or a speed of 1 count/s is maybe just to low.

1 Like

I tried decreasing the vel_gain but I still received the same error. I am wondering if some wires possibly melted (maybe ground and power) so that current is just running through them excessively. Does anyone have any ideas on how I could test out this theory;I have an ohm-meter.


Well it might be a mechanical issue because the motor I was talking about broke yesterday. Not electrically, but it isn’t aligned correctly anymore so doesn’t spin freely anymore.

Motors don’t contain specific power and ground conductors. Instead of that, (from a high level) there are three separate current paths that can be taken that are either wye or delta connected inside the motor. There are a couple of things that you can check:

With the motor disconnected, verify the resistance between motor case and each of the motor phases (A, B, and C). Those should all report open circuits. Also, check the resistance between each of the phases (i.e. A->B, A->C, B->C). Those should all show roughly the same resistance.

If either of those checks don’t come back as expected then you likely have a fault that is internal to the motor.

hi, i am also receiving the same problem under closed loop control , could you please tell me till how much velocity did you run the motor , because in my case this error comes at very high speeds only

I have exactly the same problem “when going over a certain speed it just stopped and gave me ERROR_CURRENT_SENSE_SATURATION.”
I did try to reduce the vel_gain but still have same problem
FYI : on “AXIS_STATE_SENSORLESS_CONTROL” i can reach the maximum speed without any issue !
Does someone has any suggestion ?

in my case around 2700 (Max RPM I can reach on sensor_less mode is 6000)

Check your motor.config.requested_current_range. You may also have large current spikes?

Even tried to boost the it (motor.config.requested_current_range) to 120 A without any improvement !