Hi all,
I recently received an ODrive and i am trying to use it with a turnigy 28-30s 900kv.
So far the full calibration executes but it leaves a ERROR_CPR_OUT_OF_RANGE error on the encoder.
The polepairs are configured to be 3 but this might be the problem because when i set the encoder to ready = true and requesting closed loop state, the motor starts making a soft screeching sound and does not respont to pos_setpoint inputs (indicating bad commutation).
I reduced the standard velocity gain to 10e-3 and the velocity integral to 0.
The position gains only affect the current.
When i turn the motor by hand it does not correct itself to its original position.
I tried changing pole pairs but i have no succes so far.
Anyone who can help me out?
Cheers,
Bas
You shouldn’t be setting is_ready = true manually. CPR_OUT_OF_RANGE means either your pole-pair setting is wrong, your encoder CPR setting is wrong, or you’re not getting good data from the encoder. This can be due to a wiring issue or a mechanical slippage.
Thanks,
There shouldn’t be any slip as the encoder is realy tightly connected to the BLDC.
I will try a different BLDC with different encoder and see what will happen.
Just to be sure: there are 12 permanent magnets and 9 poles, this should equal to 3 polepairs. Making one mechanical cycle would require 3 electrical cycles, thus is assume that the polepair paramater is polepairs * electrical cycles?
Tanks, got it working.
The noise came from a very high p_gain for the current controller.
You shouldn’t be changing the P or I gains for the current control manually. It’s setup to give a critically damped PI control according to the desired control bandwidth. You can reduce the bandwidth via odrivetool, though