Finally, after several months after my oDrive arrived, I tried to test it.
I was using these motors with the cheap 2400CPR chinese encoders. The whole setup was powered from a lab bench power supply.
After setting the constants and flashing firmware, the calibration procedure run as expected. However the motors had almost no torque. When I tried to push them out-of-position, they weren’t able to hold the position. The power supply showed only the maximal current consumption of 250 mA even though the current limit was set to 10 A. When I increased the limit to 75A, the max current consumption was roughly 800 mA.
What could be wrong?
So there are two things going on:
- The motor you picked has very low torque.
- The motor current is not the same as the power supply current.
Here you can see I have added (temporarily for the screenshot) your motor to the ODrive Motor Guide
As the guide will tell you, the rated torque at full current for this motor is only 30N-cm, which is not very much. If you are looking at buying a motor, you can take a copy of the guide, and enter the data for your prospective motor to see its performance. Specifically, the motor torque is proportional to
I_max / kv, and your motor has a very high kv.
Secondary, the current in the motor is not the same as the current from the power supply. In general, when the motor is stopped, the current is significantly lower on the power supply. When the motor is spinning at top speed then they approach similar values.
Thank you for the fast response.
I used a motor I had lying around, but I though it was suitable. I assume oDrive does field-oriented-control. My thought process was:
- when I do FOC, I can get a high torque even at low speeds as the motor behave more like stepper and the torque is proportional to the current going through the winding
- the kv values determines the inductance of the motor. With growing kv, the inducted counter-voltage per rpm is higher and therefore I have a bigger trouble to push desired current through the winding in high speeds. So with high kv motor I cannot have a big torque in high speeds.
- having very high kv causes very low winding resistance and therefore it is hard to regulate the current more precisely
Where am I making mistake in my thought process?
Yes, ODrive does FOC, and the torque is indeed proportional to the current. But the constant of proportionality (called the motor torque constant) is different between different motors. It is related to the kv of the motor, see here.
So no, the kv is not the inductance, they are separate parameters. Let me enumerate the different motor parameters that I usually see as relevant, and how they work:
- Resistance (ohm): Higher value means higher voltage required to maintain a current.
- Inductance (H): Higher value means higher voltage required to change the current.
- Motor torque constant (Nm/A): Higher value means higher torque per unit current.
- Motor speed constant (rpm/v): Higher value means higher speed per unit no-load voltage.
As described before, the last two are actually the same value, just in different units.
Thank you for the clarification!