High Torque motor

Hi All

im trying to find out if the ODrive can power a torque motor?
this is a brushless 3 phase motor that has very low RPM but high Torque.

im working with a company to custom make the motors for a small 5 axis trunnion and I will machine the rest of the frame.

but I would love to use the Odrives but im not understanding some are saying they are low torque?

as far as I know the voltage and amps input into a particular KV BLDC is what determines the holding torque?

look forward to hearing from you all

thank you

1 Like

Provided you have a high resolution encoder (something like this, although this form factor may be a little annoying to mount to a large motor), and the motor does not need more than 90 Amps, I see no reason why it wouldn’t work. You may have to tweak the PID values to get steady control at low RPM, as the default ones seem a little mushy, but it should be doable. You will also probably want forced-air cooling on the MOSFETs if your motor pulls above 30A, and you’ll likely want to get a better thermal interface beyond 70A.

I would wait for a second opinion though, because I could be wrong.

Should work just fine. Everything @John_Little said. Check voltage & current limits, avoid overheating, and use a high-res encoder.

1 Like

Hi John

I was thinking more on the lines of a 20bit absolute encoder.

I should be able to machine either water and air cooled heat sinks or just blow air on.

talking to motor manufacturer now to get lowest kv possible. if I had 60rpm top speed with 48v I hope the torque is higher.

thank you


Torque in brushless motors is dependent on the current goin’ through it. I have the calculations here: Full torque calculation
If you have any questions about the calculations or if it’s still not clear, let me know.


In addition, the following blog post should be enlightening regarding torque production and motor Kv:

1 Like

I have a good amount of experience building and repairing cnc routers. I like your question, I need to accomplish the same thing.

Thing is, if you still have the servo drive, my servo drive can crank out 3.2kw peak from a +/-10v, 100 ma analog input. I am curious if the Odrive can push a low current signal, and I can let the bigger drives function.


so far motor manufacturer has given me a price for
27.6nm constant (48V 14A)
137.58nm peak (48V 60A) for 30 seconds only

above figures are air cooled, when water cooling this motor will produce 137.58nm constant.

size is
160mm OD
60mm ID
140mm length
above size with water cooling jacket.

i have purchased 2 x P2 grade YRT50 Bearings already

i really think im good to go but i have some guys looking into a 20bit encoder that will work with the ODrive currently. (only bottle neck)

i have a DMG MORI 5 axis and live turning center so should be able to put this all together fast but encoder is really holding the project back.

i have used yaskawa drives for 3 phase supply and Ingenia drives for AC
they are simple to connect but the price is crazy compared to the odrive.

if we sort this encoder issue i promise to show you what we have done
think Haas TRT100 but direct drive and accurate to arc seconds with no gears.

1 Like

A post was split to a new topic: High torque braking motor

I have somewhat of a similar situation. In this case I am using Odrive with the 8192 CPR encoder (from Odrive website) to drive the following motor:

First of, I am not able to get any movement in a closed loop setup with the encoder.
In ‘SENSOR-LESS’, mode the motor does start speeding up, but stops (throws an error) with a grinding noise. I have tried different current limit, gain and speed values. No luck. Here’s what I am commanding:

odrv0.axis0.requested_state = AXIS_STATE_SENSORLESS_CONTROL

odrv0.axis0.controller.config.vel_limit = 10000

odrv0.axis0.controller.config.vel_gain = 0.01
odrv0.axis0.controller.config.vel_integrator_gain = 0.05
odrv0.axis0.controller.config.control_mode = 2
odrv0.axis0.controller.vel_setpoint = 400
odrv0.axis0.motor.config.direction = 1
odrv0.axis0.sensorless_estimator.config.pm_flux_linkage = 5.51328895422 / (14*95)

Does it calibrate when you do AXIS_STATE_FULL_CALIBRATION_SEQUENCE?

1 Like

No it does not calibrate.

Hi Kamol,

Assuming you’re using a 48V power supply…
Please try the following configuration:


odrv0.axis0.motor.config.requested_current_range = 22
odrv0.axis0.motor.config.current_lim = 22
odrv0.axis0.motor.config.pole_pairs = 14
odrv0.axis0.controller.config.vel_limit = 400000

odrv0.axis0.motor.config.resistance_calib_max_voltage = 10
odrv0.axis0.motor.config.calibration_current = 10

odrv0.axis0.config.startup_encoder_offset_calibration = True
odrv0.axis0.config.startup_motor_calibration = True
odrv0.axis0.config.startup_closed_loop_control = True


odrv0.controller.pos_setpoint = 8192

Should rotate your motor 1 revolution :slight_smile:
If you have errors, you can use dump_errors(odrv0) to get a readout.

1 Like


Configuration you’ve provided works. Just had to play around with the PID parameters.

Thanks a lot. You will be hearing from us.

1 Like


ODrive servo driver seems to work fine with our choice of motor. As I’ve mentioned before we are building an actuator to add to the current line of products we offer. However, the driver board requires a small modification to fit our hollow shaft actuator design. Can we schedule a phone call?

My work email: kamol.narbaev@motus-labs.com

I’m glad things are working, I will email you.