Fine positioning with high torque

Hi All, I’m looking for some feedback on suitability of ODrive components for a design I want to make.

The challenge is that I need 3Nm of torque at the handle of a force feedback knob to overcome friction and variable user input, and I need to position the knob with 0.005 revolution (1.8deg) precision.

I’ve done a first iteration with a Moteus BLDC motor and 4:1 pulley but it didn’t go well. The controller couldn’t overcome friction (high torque) and control very low velocity well at the same time (e.g. moving from 0.0 to 1.8 degrees). The flex in the pulley didn’t help either.

The ODrive motors have enough torque to directly drive without a pulley, have way lower kV (lower velocity) and the controllers appear to have a low speed mode (though I don’t understand it fully) so I’m considering making the investment.

Thanks in advance!

ODrive can do this particularly with anticogging enabled for that low speed precision.

Agreed with Paul on the feasibility. You can definitely try the S1+8325s start kit. The only concern I’d possibly have is with the S1’s onboard encoder’s noise and resolution limiting the fine grained force feedback you can get, but adding an external high-resolution incremental encoder would be quite easy. You could also use the S1 + 6374 + AMT21 (16384 CPR RS485 encoder), though that’ll take a bit of 3d printing to set up.

Hi All,

Thanks for the input!

I read about the anti-cogging and it looks straight forward to do. I’m curious to try doing that calibration and then running the motor with just FF to see just how smooth (cogless) the system is when turned by hand with no position control going on.

The D5065 motor with dual shafts for easy encoder mounting sure looks nice to use. It has lower torque but it might be ok to use its peak torque for haptic feedback since it will spend a lot of time just sitting and cooling off.

I’m going to order some goodies and see what happens!


I got the D5065 and AMT21 up and running with the S1 after printing the NEMA housing for the motor. What a sweet system ODrive is! Out of the box using the GUI I was up and running in minutes and the default parameters for the motor provided very good velocity control as well as incremental positioning performance.

Setting up the anti-cogging was easy after reading all of the docs on absolute reference. It makes the big motor feel like a much smaller motor when in Torque Mode with target torque set to 0 and it makes it possible to handle the fine position resolution.

After a bit of tuning the position control parameters I was able to get 0.001 rev resolution on my position with sub-second settling time even with a load that requires the full torque of the motor.

Thanks all!

Super super glad to hear that’s all working out! Very impressive, would love to see some pictures if you’re willing to share!

Hopefully I can get the setup cleaned up and packaged nicely for a photo-worthy moment!