Step frequency compared to using stepper motors


I have a question about using ODrive as a replacement for stepper motor.
I’ve designed a CNC lathe and planned that it would use stepper motors but I have now found ODrive and really consider using it instead of steppers. I’ve calculated that using common microstepping of 3200 steps per revolution I would need 40 kHz step rate but the ODrive getting started guide says that maximum step rate is about 16 kHz.

In stepper motors microstepping is primarily used to make the movement smoother and to reduce vibration. This makes me think that it is not required when using BLDC motors. I would get enough resolution with only 400 steps per revolution.

Can I just set the counts_per_step variable to value that suits my needs and use full steps?

Hi Kestis

I believe the odrive getting started guide just states that @madcowswe has only tested step/dir up to 16 kHz. I have used it well into the hundreds of kHz without any problems so I think you should be fine.

With odrive your positional resolution is limited by the rotary encoder. The encoder that comes with odrive has 2400 counts per rotation (600 pulse per rotation x 4) and so is equal to a 1.8deg stepper with x12 micro-stepping. Thats if there was such a thing as x12 micro-stepping. In the odrive firmware you can then set how many encoder counts you want to increment per step pulse.

If you think you will need the anti-cogging feature for your application then you may want to look into getting a rotary encoder that has an index pulse such as the ATM10x encoders talked about here. This feature is not fully supported yet but will be very soon. If you have a high gear reduction like a ball screw then you don’t strictly need ant-cogging but it would probably give the best surface finish.


You are correct in that ODrive can achieve smooth motion even if the step sizes are larger. However for smoothness you will want to have a high resolution encoder. I would also recommend the CUI AMT102 encoder that @Richard_Parsons is recommending, which (@Richard_Parsons this may be news to you) we also sell on the ODrive shop now. That encoder is 8192 counts/rev.

@madcowswe Oh nice, I didn’t know you stocked the AMT102. When I find that I need more motors in the future I will definitely go with those.