I'm trying to design a system that should rotate at up to 4000 rpm when needed but also be capable of precise (hopefully sub degree) positioning at under 100 rpm or less. I have an absolute position encoder for closed loop control. The load on the motor is very small (a thin piece of plastic).

What I've tried so far:

  • A hobby BLDC motor with an ESC. This works perfectly for high speeds but I haven't been able to get the ESC to go slower than ~1000rpm.
  • A stepper motor works perfectly at low speeds and micro-stepping + the encoder give great resolution. However I haven't been able to get a standard NEMA 17 stepper to go faster than 200rpm at 12V even when accelerating slowly.

These are an order of magnitude off from what I want in terms of speed range.

Some possibilities I've thought of:

  • Gearing down the BLDC. The downside is that the maximum speed will also drop proportionately and we are back to needing a motor with a high speed range.
  • Gearing up the stepper motor. This would reduce the effective resolution unacceptably while increasing speed.
  • Controlling the BLDC manually without the ESC. I'm not sure if I can get an average hobby motor to run slow and smooth even if I found an appropriate controller.

What is the best way to solve this problem where I can have precise control at low speeds but also the possibility of high speeds when needed? Is there some other type of motor or way to control these motors that can give me what I want?

  • 2
    \$\begingroup\$ Make your own ESC / hack the ESC that you got. \$\endgroup\$ Commented Aug 9, 2017 at 22:46
  • \$\begingroup\$ Combine a stepper and a BLDC on the same shaft. The rest is software. But verify that the stepper doesn't generate destructively high voltages when driven at 4000rpm (if it's a switched-reluctance type, it shouldn't). \$\endgroup\$
    – user16324
    Commented Aug 9, 2017 at 23:59
  • 1
    \$\begingroup\$ I would say a brushed hobby dc motor and esc will give you better chance than bldc for single motor operation with your encoder, and can use a variety of other ways such as common dc driver circuits for arduinos etc. A stepper combined may work if not causing issues on free rotation but because of the way the bldc motor works you will experience things like cogging at low speed end. Alternatively, what about gearing down a bldc instead of gearing up a stepper? \$\endgroup\$ Commented Aug 10, 2017 at 0:08
  • \$\begingroup\$ Either a brushed or brushless motor can be made to provide the performance that you want. However a hobby motor and a hobby ESC may not be sufficient. If the load is fairly constant, that should help. This is a challenge that may require a great deal of research. \$\endgroup\$
    – user80875
    Commented Aug 10, 2017 at 1:31
  • \$\begingroup\$ ebay.com/itm/… \$\endgroup\$ Commented Aug 10, 2017 at 2:08

3 Answers 3


Most hobby ESC operate its motor sensorless. So the RPM is unstable to detect at cetain level. It means correct speed control isn' easy at low speed because the sensoless control would work some level of speed.

Stepper motor is good at position application. If you want use stepper motor as speed control, you should apply vector control instead of open loop. Then you will get more than 600 RPM.

  • \$\begingroup\$ Thanks for pointing out that sensorless control wont work for low speeds. I guess rolling my own servo by adding the right sensors and control system should work better. \$\endgroup\$
    – nfkb
    Commented Aug 10, 2017 at 22:35

Use a variable reluctance stepper for fine positioning and an induction motor for high speeds, couple both shafts together.

Both types of motor produce no torque when unpowered, and generate no voltage when rotated so the stepper won't try to output kilovolts when spun at high speeds and the the induction motor won't interfere with fine positioning.


You need a rotary encoder on a stepper motor where the encoder gives you the same number of pulses as steps of the motor. You can then use the encoder to know when to commutate the stepper motor. With the appropriate driver you ought to be able to get well over the 4000RPM you desire when needed.

Some mechanical adjustment of the encoder disk to shaft angle will be required to obtain the optimum acceleration torque.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.