# How to calculate stepper motor efficiency

It is often said that stepper motors are inefficient but how inefficient are they compared to a brushed-motor. I could just build something and measure it but it would be nice to know beforehand whether it's a fool's errand.

Say I have a stepper motor. I want to attach it to a pulley and lift a 0.5kg weight up 1.2m. There will be a gearbox - I'm allowed to choose the ratio. I'm allowed to choose the pulley diameter. The speed of the lift can be whatever you like so long as it takes less than one hour. Let's ignore the efficiency of the gearbox for the moment - that can be estimated.

The lift is 0.5 * 1.2 * 9.81 = 5.9 joules. How much electrical energy must be given to the motor?

Here are the spec's of the stepper motor

• Rated voltage: 5 V DC
• Rotor stride angle: 5.625°
• Shaft stride angle: 0.088°
• Number of phases: 4
• Current: 40mA
• In-traction Torque >34.3mN.m(120Hz)
• DC resistance 50?±7%(25?)
• Friction torque: 0.12 N m
• Phase inductance: 0.003 H
• Pull in torque: 0.06 N m
• Frequency: 100 Hz
• Idle In-traction Frequency > 600Hz
• Idle Out-traction Frequency > 1000Hz
• Friction torque 600-1200 gf.cm
• Pull in torque 300 gf.cm
• Coil: Unipolar 5 lead coil
• Model 28BYJ-48

This motor has a 1:64 gearbox. I could buy a motor with a different gearbox. We'll assume I use a ULN2003 driver board and can drive it at whatever frequency I choose. Ignore the efficiency of the ULN2003, it's easy enough to calculate.

Let's do the sums for a brushed motor. A JS-30, 7rpm, 5V motor run off 3 AA cells raises the load in 2.4min and takes around 45mA. Joules equals volts times amps times time so:

• 4.5 * 144 * 0.045 = 29 joules
• 5.9/29 gives 20% efficiency

Given the numbers in the stepper motor datasheet, How many joules would it take?

• Use brushless... Sorry, but stepper and efficiency don't go together.
– TQQQ
Mar 20 at 1:43
• (@TQQQ I would have thought so, but at least one manufacturer claims 2/3 for hybrid (between synchronous and reluctance) stepper motors. Compare to an oversized brushed motor…) Mar 20 at 6:30
• Steppers can be used as synchronous motors, but it's a pretty exotic application. The only case when stepper has advantage is when you need torque and low speeds in your application. Is that the case?
– TQQQ
Mar 20 at 10:48
• @TQQQ "stepper and efficiency don't go together". Yes but how much inefficiency. I could go into long and tedious detail of what I'm trying to achieve. Steppers are sooo easy compared to BLDC. I was hoping someone would say "from the datasheet, that stepper is never going to be more that X% efficient". I feel there ought to be some equation involving inductance, pull-in torque, etc. Mar 20 at 11:40
• The problem is that steppers in the simple case are controlled in an open loop. That means, among other things, that you never know which part of current is used to move the rotor and which only heats the coils. And that depends on the system, the load, the speed and what not. In fact, when you work in open loop, you start inefficient simply because you take an oversized motor to ensure you don't slip. This is what you pay for simplicity. My advice - measure. You can't calculate, but you can measure, and if might end up not so bad.
– TQQQ
Mar 20 at 12:23

This is not the answer I was wanting but it's an answer.

I put a 30mm dia winding drum on a 28BYJ-48 stepper, wrapped string round the drum and hung a 300g weight on the string.

• Operating Voltage 5VDC
• Number of phases 4
• Gear Reduction Ratio 63.7:1
• Step Angle 5.625°/64
• Frequency 100Hz
• In-traction Torque >34.3mN.m(120Hz)
• Self-positioning Torque >34.3mN.m
• Friction torque 600-1200 gf.cm
• Pull in torque 300 gf.cm

I drove it from a ULN2003 IC. Just one coil at a time (no double coils, no micro-stepping).

The spec of the motor says 300gf.cm torque but I was applying 450gf.cm. At 10ms per step it didn't miss any steps. Any faster and it did miss steps.

• Volts 5V
• Amps 160mA

If the steps were longer that 160mA current remained the same and it could still lift the 300g weight. So lengthening the steps gives no mechanical advantage, it just takes more electrical energy.

If the steps were shorter, the current went down - presumably because the inductance of the coils meant they didn't have enough time to reach full field strength. It could no longer lift the 300g weight. At 4ms per step, it still turned but had very little torque. At 2ms per step, it no longer turned.

At 10ms per step, one rev takes 20.38 seconds. One rev lifts the weight (30 * pi) mm.

So doing the sums:

• Work done = mgh = 0.3 * 9.81 * 0.03 * pi = 0.277 joules
• Energy supplied = VAt = 5 * 0.16 * 20.4 = 16.3 joules
• efficiency = 1.7%

Compare that with a JS-30, 7rpm, 5V motor - it's a similar size brushed motor

• Work done = 5.9 joules.
• Energy supplied = 29 joules
• efficiency = 20%

So in this particular example, the brushed motor is more than ten times as efficient as the stepper motor.

It would be nice to know whether that ratio is imilar for other steppers in other situations.

• You may get a different and maybe also better result if you use a decent stepper controller like L6470 or similar. The STM demonstration boards are extremely cheap (I love them, used often) compared with the sparkfun module. Mar 24 at 19:49
• Do you have any figures for efficiency? Mar 25 at 11:40
• In general consider steppers as not efficient - most of the times they are used because of their unique feature of precise step-wise quantified motion. For most application seeking to let something rotate somehow without the need to rech target positions by sub-degree precision - brushed and brushless motors can be the better choice. That is also true for high RPM applications, because steppers haver their limits in terms of max-RPM. Jun 4 at 10:03