Odrive control loop non-linearity

I am seeing some strange behavior out of our ODrive 56V board once I changed to a new encoder.

Old HW combination worked, but non-indexed encoder was not production worthy, but worked
We are using a HUB motor with 10 pole pairs, and were using a 4096 CPR encoder WITHOUT index. This setup seemed to work but was susceptible to noise coupling from the drive wires.

So we added an external 8192CPR AMT 102V encoder. Now we get good operation, but noticed that the ODrive can get stuck in a state where the feedback loop appears to be broken. We are setting a velocity command with velocity of 0, and it seems there are two stable positions where the feedback works properly when surpassed by forcing rotation in either direction. The state is bistable, and the feedback appears to work to the left and right of the two locations.

Any thoughts?

To me, that sounds like a cogging torque issue. With the ODrive off, does the motor show preferential positions when you rotate it by hand?

No, the motor spins fine with the odrive off in either direction. Also, the problem just showed up when we switched encoders. I am going to adjust the CPR on the AMT to 4096 and try again

It is a hard problem to explain. It can happen to either motor, but does not always happen. The two stable points are about 4 revs apart

Hopefully this conveys what it is doing

That is very strange! Just to make sure - when you switched to the 8192 cpr encoders, you changed the encoder.cpr setting for the firmware? I would expect motor calibration to fail if the cpr wasn’t set correctly.

I did, trying it now. Thanks for your help

The problem is still here

Can you post your full ODrive settings? I can think of very few reasons that going from 4096 cpr to 8192 cpr would cause an issue like this (but I’ve been wrong before!). Also, what firmware version are you running?

I switched the encoders to 4096, and the problem is still here.

I must have a hardware issue, I am going to comb over the setup

OK, issue was found. I have belt slip between my motor and encoder.

1 Like

Thanks for your help PJohnson