Hi everyone, I am using a 21 pole pairs motor. I am constantly getting an error saying: Procedure error POLE_PAIR_CPR_MISMATCH. It looks like Motor > Pole Pairs should be 22. Please consult your motor datasheet and update the configuration.
When I recalibrate the motor, it gives me error saying Procedure error POLE_PAIR_CPR_MISMATCH. It looks like Motor > Pole Pairs should be 20.
After recalibrating it couple of times, it works. Any idea regarding why does this keeps happening?
Your current limit and calibration current/voltage is very very very low, and your torque limit is miniscule (this will limit the motor to 0.12A). When lock-in spin current is low, the motor won’t be able to turn smoothly during calibration, leading to your error. I would use the following values:
Current limit: 30A
Motor calib. current: 10A
Motor calib. voltage: 2V
Lock-in spin current: 20A
You will additionally need to raise your torque limit, or disable it, in order to get good control in closed loop mode, otherwise the motor will be too weak. A torque limit of 2.481 Nm will correspond to the motor’s maximum current of about 30A.
Hii, my motor’s max continuous current is 8A. I am using the Tmotor U8 100Kv, older version. I am bit confused, won’t it be an issue if I set the current limit higher than that?
Sorry - can you link the exact motor you’re using? And glad I can help
Typically the motors have a 180-second current rating, this is fine to hit, especially in calibration. Generally, the current limit you use will vary depending on your load and duty cycle – if your load won’t nominally exceed the continuous current limit, but instead have occasional peaks, that’s usually fine. It always helps to add a thermistor to the motor, if possible – this way, the ODrive can sense and limit the temperature.
Ah - understood, so that’s a totally different motor. In that case, you can set the current limit to 8A, and also set calib current and lock-in spin current to 8A.
But for some reason I was able to calibrate it via the odrivetool. When I perform position estimate (using Spi encoder),I get the position values but when I perform input pos to move the motor, the motor does not move. Trying to perform filtered position control .
What ODrive are you using, and what bus voltage? Are you calibrating the motor unloaded, and does the motor move during calibration? Does the ODrive throw any errors? Can you share your configuration so far?
Yes, I am calibrating it without load. When using the GUI i get the pole pair mismatch error.
The motor rotates while calibration via odrivetool, but not when i apply odrv0.axis0.controller.input_pos = 0.02 (or similar values),the motor does not move to the entered position.