Slow speed and High torque with small BLDC motor

I recently bought an ODrive to experiment on precision control for a BLDC. Im using a 1200 kv,14 pole motor attached to AS5047P encoder (4000 counts).

At normal speeds (>5000 cnts/sec) it works perfectly. But, I’m having a problem in getting high torque at low speeds for my motor. Also when i try to rotate my motor at really low speeds, it starts cogging and doesn’t rotate smoothly.
I have already tried increasing my PI values , but at such high values its unstable and vibrates a lot. I know the ODrive implements sinusoidal commutation, so it should be possible to achieve this (
Has anyone ever tried doing this and got results? Please let me know

To get smooth motion with a direct drive motor that has high cogging toque you might need to do some anticogging compensation. This will require an absolute rotor position sensor to determine where you are in the electrical cycle.


@Peter Thanks for the reply. Yeah, i also looked at anti-cogging algorithms, but they seem a bit complex to implement. I have therefore ordered some gimbal motors (high torque , low speed characteristics) . Will try them out and see if I can get some positive results

Yes, we have an anticogging algorithm that tries to improve this. It’s already built in to ODrive, no need to implement it yourself :slight_smile:

As far as I know, that very slow speed video is using voltage control (gimbal mode)

Oh ok :sweat_smile:

I got a GM4608H gimbal, and it works a lot better at slow speeds. :smiley:

Is it safe to drive the ODrive D5065 270kv motor smoothly in the MOTOR_TYPE_GIMBAL mode at speeds 1-37 RPM (below 5000 cnts/sec)? The MOTOR_TYPE_HIGH_CURRENT mode cannot run the motor smoothly below 37 RPM. I do not need high torque. (I think I remember seeing the D5065 270kv motor controlled by a VESC rotating at ca. 6 RPM. However, I do not know which control mode was used.)

I had similar issues with cogging as you’re having and ended up resolving them by adding a flywheel to the motor shaft. May or may not be a viable option for your application but here’s my thread if you want to read over it:

1 Like

I have tried the gimbal mode without destroying the D5065 270kv motor or the ODrive. Most of the time, the ODrive fails to calibrate with ERROR_DC_BUS_UNDER_VOLTAGE (power supply 22V, limited to 2A for safety reasons). The internal motor temperature does not rise above 40°C. Once it calibrated by luck but failed with ERROR_DC_BUS_UNDER_VOLTAGE when trying to rotate at 6 rpm. To sum up, the ODrive gimbal mode (hw v3.6, firmware 0.4.12) is likely unsuitable for the D5065 270kv motor.

@robopilot99 Thank you for the flywheel suggestion. I guess it could work. However, I prefer a mechanically simpler and lighter solution, as I would eventually like to rotate the same machine very fast as well. I think I am going to try a different motor/controller solution.

It works fine with it. It sounds like your power supply is insufficient. These slow speeds are also what anticogging is designed for - take a look at this thread Anti-cogging Feature

I would not recommend running gimbal motor mode on a high current motor like the D5065.