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

Pololu Forum

Efficient very slow speeds for automation

I’m working on a battery powered feed system for welding and/or field machining. The system doesn’t have to feed smooth and consistently on the sub millimeter level, but be able to hold a somewhat accurate feed rate over a few minutes (+/- 5 to 10%). The system should be able to run into a hard stop, so I can’t use the high gear ratios commonly used in such applications, or the gear will produce too much torque and something will break.

The two options I see are using a servo system to run a motor at a fraction of an RPM, or just use a brushed DC motor in short spurts of a a few turns, while just counting the full turns of the motor.

I think both options would work well, but the question I am having difficulties answering is which of the two systems would be more efficient, and provide a longer battery life?


Both of the options you mentioned only seem like broad ideas at the moment, so it is difficult to say how well each setup would work or how efficient they will be since that will mostly depend on the specific motor or servo you use and your physical setup.

In either case, a motor or servo with a high gear ratio is definitely going to make smooth and efficient low-speed operation easier. Have you considered adding a clutch to your system to address your concerns about hard stops? Alternatively, have you considered adding something to warn your system that the motor is (or is soon going to) impact a hard stop, like a limit switch or a current sensor in-line with your motor?

- Patrick

Hi Patrick,
Many thanks. To be more specific I have one application where I need to move a welding carriage by about 2.5 mm every 60-300 seconds using an M6 screw. That would amount to .5 to 2.5 RPM output on a “499:1 Metal Gearmotor 25Dx73L mm LP 6V with 48 CPR Encoder” ideally (from an operator perspective) powered by two AA batteries. The assembly needs to be simple and power efficient, so I am thinking limit switches could be eliminated without adding a torque limiting clutch by having a system that has an inherent safe maximum torque. Using a brushed DC motor, pulsing the motor every few milliseconds, and counting the revolutions would be my first choice, as I could expect full torque at infinitely slow speeds as long the motion doesn’t need to be smooth. I would expect situations where the RPM would have to be below 0.01 RPM whereas the motor would turn maybe 10 times, then rest for seconds, or even minutes before repeating, with time intervals based on required feed rates and motor turns counted.

On the other hand a servo would seem like the correct way to drive such at such a slow speed, but at these low speeds, my concern would be that the power consumption would be much higher, as the servo would always be working.

– Michael

Running motors at slow speeds is difficult because at some point the cogging torque is going to set an effective minimum speed. Accessing slower speeds generally requires a closed-looped speed control system, and if you do it right then it should not make things meaningfully less efficient.

However, even with closed-loop control, it will likely be very difficult to run a brushed DC motor smoothly at speeds as low as 0.01 RPM (unless you find one with a really high gear ratio or add external gearing to produce that affect). You might be able to achieve better results at speeds that low using a stepper motor, but if efficiency is a big concern then you would definitely want to make your control system is capable of scaling down the current significantly when it is just holding position.

- Patrick

Hi Patrick,

Again, many thanks. I greatly appreciate you engaging in this discussion.

I’m not stuck on the brushed motor, and could imagine going to a brushless motor, with closed loop control.

The reason for thinking that even when using closed loop control done with the best choices, it wouldn’t be as efficient, is the fact that full torque would have to be continuously applied, although at a very low speed. Physically it doesn’t matter how slow you move when calculating energy. But with an electrical system I wouldn’t expect this to apply, as the full amperage would have to be provided to produce the full torque over a longer time, and the only way to make very slow rotations with a continuous load electrically efficient would be to use a motor that is specifically wound for very slow speeds. Sourcing such a motor might be very difficult. This is why I feel running a standard DC motor in short bursts of a few RPM would be much more efficient. No cogging, and the duty cycle is directly proportional to the battery drain.

Again, the reason for staying away from high gear ratios, is to avoid the need for limit switches. And maybe even have a system that can be easily backdriven. The applications I’m thinking of need an accurate overall speed, but moving in very small steps would be perfectly fine.

Probably best to get some parts to test, and measure both, and compare.

– Michael

I am not aware of any motor winding methods that somehow make it practical to run motors around the speeds you are suggesting without significant gear reduction, but if you do find something I would be interested to hear about it.

Just getting a system running near the speeds you want is going to be challenging enough without considering the efficiency concerns or how to avoid using limit switches, so my suggestion would be to focus solely on that issue first, then you can go back and address your other priorities as you go. If you get something working in your tests, you can post details about what you did to get that working and then I can maybe offer some ideas for how to improve the setup’s efficiency and protect the gears if that’s still a concern.

- Patrick

That makes a lot of sense to me, which leads me to this next thought.

Maybe I need to use the high power 12 V motor, and limit the current to 25% of the stall current. Possibly limiting this current by running at that much of a lower voltage.

Looking at it like this makes it clear that the compromise with this solution is probably that the motor has to be larger for the same available torque due to the safe current limiting.

The MCU could then run the motor at full speed (being the reduced voltage to ensure safe motor currents) and wait until it registers maybe 10 to 20 rotations of the shaft. After this the MCU would turn the motor off again and wait according to the set feed rate of the system. The program could also possibly use a maximum allowable error so it can calculate a minimum turn count to prevent high frequency on/off cycles.

The 99:1 gear paired with an M6 lead screw would mean 20 turns would result in a 0.2 mm error. This is well within a welding torch positioning tolerance, or an acceptable feed rate jolt on a lathe.

And yes, I wouldn’t expect to find any motors with such windings.

You have been most helpful, thank you. I feel confident that this will be a good starting point.

1 Like