Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

Need better low speed control for DC motor


I have some cheap plastic gear motors, the kind with the 3mm D shape shafts. They work, and I can control them with software but they have a problem in that there is a rather high minimum speed. With low voltage (or low duty cycle PWM) the motors stall, then I raise the power and they start moving but at a speed that is close to 1/3rd the maximum speed.

I need something more controllable, that will run over a wider range of speeds, from on order 100 RPM to near zero. Do I have to use a stepper motor or can I do this by spending the $$ to get a better quality DC motor?

I guess this is a general question about how slow I can expect a DC motor to run.

I’ve tried using an initial voltage spike to overcome static friction then quickly ramping down to the desired speed. This only helps a little.


Hello. I don’t know what frequency your controller is using but you may find that a higher frequency works better at lower speeds. Maybe between 1k and 10k. Also adding a 100uf or larger polarized capacitor across the power source may help. Norm



I would expect most gearmotors to have some minimum voltage threshold before they start rotating. It is typical to not see a linear relationship between speed and voltage all the way down to 0V. If you were using a motor that is rated for 3V, it sounds reasonable that you might only get it to go down to 1/3 of its rated speed (somewhere around 1V).

The slowest speed you should expect a motor to go is dependent on the motor. An example of a motor that can go really slow is our 1000:1 Micro Metal Gearmotor. As noted on its product page, we were able to get a rotation speed of about 1 RPM at 0.6V. However, this motor’s maximum speed at its rated voltage (6V) is only 34 RPM.

A stepper motor is probably a good solution if you need a motor that will go from 0 to 100 RPM in a controlled and reliable manner.