Quick Answer
A stepper motor moves in fixed increments and holds position without knowing where it is. A servo measures its position with a sensor and corrects until it matches a command. One asserts a position open-loop; the other closes the loop.
Intuition
A motor that can be told where to stop
An ordinary DC motor answers one question: how fast. Give it a voltage and it settles at whatever speed balances the load. Ask it to stop at a particular angle and it has nothing to offer, because nothing in it knows what angle it is at.
Two quite different machines answer the other question, and they answer it in opposite ways.
A stepper is built so that its rotor has preferred positions. Energise the coils in one pattern and the rotor lines up with one of them; change the pattern and it lines up with the next. It cannot rotate smoothly at all — it goes in increments, and if you count the increments you know where it is.
Except that you do not know. You know how many increments you asked for. Nothing in a stepper measures anything, and if the load was too heavy for one of those increments the rotor stayed where it was and the counter did not. The position is an assertion, and the machine has no way of telling you it is wrong.
A servo takes the opposite approach. It is an ordinary motor with a sensor on the shaft and a circuit that compares where the shaft is against where it was told to be, and drives the motor until the difference is small. It knows where it is because it looked.
Neither is better. They fail differently, they cost differently, and they suit different jobs — and the choice between them is almost always decided by whether being silently wrong is acceptable.
Practitioner
Counting increments
Nothing here measures anything — the sequence asserts a position.
The stepper's whole behaviour comes from one integer.
Worked example — Everything from one number
A common motor has 200 full steps in a revolution, so each step is 1.80 °.
Drive it at 1.0 kHz and it turns 5.0 Hz, which is 300 rpm.
Put it on a lead screw of 5.0 mm pitch and each step is 25 µm of travel. That is the number a machine's specification is built on, and it needs no sensor, no calibration and no feedback.
Microstepping divides the step further. Instead of switching phases fully on and off, the driver sets a current ratio between them and the rotor comes to rest between two full-step positions. At 32 microsteps the commanded increment becomes 0.05625 °, and a revolution takes 6400 of them.
That sounds like a free improvement in precision. It is not, and the reason is the next layer.
Bipolar or unipolar is a wiring question. A bipolar motor has two windings and needs its current driven both ways through each, which is why the driver carries four half-bridges. A unipolar motor brings a centre tap out of each winding, so half a winding can be energised at a time with four simple switches and no reversal — cheaper to drive, and it uses half the copper at any instant, so it gives less torque from the same motor.
Two torque figures matter and they are not the same. Holding torque is what the motor resists with while its phases are energised, and it is the number on the label. Detent torque is what the magnets and the steel resist with when the phases are dead — small, but it is why an unpowered stepper still clicks between positions when you turn it by hand, and why a vertical axis does not always fall when the power goes off.
A stepper needs a driver, not a switch. The phases have to be energised in the right sequence, at a controlled current, with the current reversed on alternate cycles — which is four half-bridges and a current regulator. Modern stepper drivers put all of that in one package and take a step pulse and a direction pin, so the controlling code counts and nothing more.
Engineer
Resolution is not accuracy
Finer commands are not finer positions.
Worked example — The number that does not improve
A stepper's positional accuracy is quoted as a percentage of a full step — an illustrative 5.0 % here — and it comes from the precision of the rotor's teeth and the stator's poles.
That is 0.0900 °, and nothing about the driver changes it. Microstepping to 32 gives commands of 0.05625 °, so the accuracy band is 1.60 microsteps wide.
On that lead screw: 0.781 µm of commanded resolution against 1.25 µm of actual accuracy. The machine can be told to move a distance forty times smaller than it can reliably achieve.
Microstepping is still worth having, for two reasons that have nothing to do with accuracy. It makes the motion smoother, because the rotor is pulled between positions rather than snapped between them, which reduces the vibration and the noise a full-stepping motor makes. And it lets a mechanism creep, which matters when the thing being moved has its own resonance.
What it does not do is make the machine more accurate, and a specification quoting a microstep as a positioning tolerance is quoting the wrong number.
The dashed trace is what the controller believes.
The other open-loop failure is worse, because it is unbounded. Ask a stepper for more torque than it has and the rotor slips: it stays where it was while the driver moves on to the next pattern. The controller's count is now permanently wrong, the error is added to every subsequent position, and nothing anywhere reports it. The only cure is to drive the mechanism back to a physical limit switch and start counting again — which is what the noise a 3D printer makes at the start of a job is.
Professional
The other way, and what each one costs
One asserts a position and one measures it.
A servo puts a sensor on the shaft and closes the loop. With an illustrative 2048-count encoder that is 0.176 ° of knowledge per revolution, and — unlike the stepper's microstep — it is knowledge rather than a command, so the accuracy really is as good as the sensor.
That changes every failure mode. Overloaded, a servo's error grows, its controller pushes harder, and if it cannot recover it says so. It also draws current in proportion to the load rather than continuously.
The first two bars are identical, and that is the point.
Worked example — What a stepper costs while doing nothing
Holding position, a stepper's driver keeps the rated current in the phases so the rotor cannot be pushed off its step. At 1.5 A through 2.0 Ω that is 4.5 W per phase, and with 2 energised, 9.0 W.
Turning, it takes exactly the same, because the current is regulated and does not care what the shaft is doing.
Against the DC motor of the previous lesson drawing 12.8 W while delivering real work, a stepper standing still and doing nothing costs 0.70 of that. In battery equipment it is often the deciding number.
The hobby servo, which is a third thing
The word "servo" also names a small self-contained unit — a motor, a gearbox, a potentiometer and a control circuit in one case — commanded not by a bus or a voltage but by the width of a pulse.
The width is the message, and the width is one millisecond wide.
Worked example — Reading the pulse
A pulse repeats every 20 ms, and its width carries the command: 1.0 ms for one end of the travel and 2.0 ms for the other.
A mid-travel command is 7.5 % duty, and the duty is incidental — nineteen twentieths of the frame carry no information.
With 180 ° of travel across that one millisecond, every microsecond of pulse width is 0.180 °. A microsecond of jitter on the edge is that much jitter on the output arm, which is why servo signals want a timer peripheral rather than a software loop.
Those pulse widths are a de-facto convention rather than a standard, and units vary in their exact range and travel.
Choosing between them
Stepper when the load is predictable and the budget is not. Printers, plotters, small machine tools, camera slides — anything where the torque needed is known, the speed is modest and the mechanism can be homed against a switch. Cheap, simple, and precise until it is not.
Servo when losing position is unacceptable, when the load varies, or when speed matters. A servo does not lose steps, uses current in proportion to work, and keeps its torque up at speeds where a stepper's has already collapsed. It costs more, needs tuning, and can oscillate if tuned badly — which a stepper can never do.
Hobby servo when a limited range of motion and a single wire are enough. Radio-control models, robot joints, valves, anything wanting a repeatable angle over a fixed span with no engineering behind it.
Home before you trust any of them. Even a servo knows only its own encoder count, which is a relative measurement until something absolute has told it where zero is.
Resonance is a stepper's other surprise. A stepper driven at certain step rates excites the rotor's own oscillation between steps and can stall at a speed it passes through happily on either side. Microstepping, damping and simply avoiding the band are the usual answers.
Common mistakes
- Quoting a microstep as a positioning tolerance — 32 microsteps gives commands of 0.05625 ° against an accuracy of 0.0900 °, so the accuracy band is 1.60 microsteps wide and does not shrink when you divide further.
- Trusting a stepper's step count — lose four steps to an overload and the controller's position is permanently wrong by that much, with nothing reporting it and the error added to everything afterwards.
- Budgeting a stepper's power by its duty — it draws 9.0 W holding position and 9.0 W turning, because the phase current is regulated regardless of the shaft.
- Reading a hobby servo's command as a duty cycle — the message is the width. A mid-travel command happens to be 7.5 % duty, and the rest of the 20 ms frame says nothing.
- Generating servo pulses in software — 180 ° across one millisecond is 0.180 ° per microsecond, so a microsecond of jitter is visible on the output arm.
- Skipping the homing move — a stepper's count and a servo's encoder are both relative until something physical has established zero.
Frequently asked questions
Does microstepping make a stepper more accurate?
No. It makes the commands finer and the motion smoother. A 200-step motor at 32 microsteps accepts commands of 0.05625 °, but its accuracy is a property of its teeth — an illustrative 0.0900 °, which is 1.60 microsteps wide. On a 5.0 mm lead screw that is 0.781 µm of resolution against 1.25 µm of accuracy.
How does a stepper know where it is?
It does not. The driver asserts a coil pattern and the rotor is expected to be at the corresponding position. If it was overloaded and slipped, the count is wrong from then on and stays wrong, which is why open-loop machines home against a physical switch before every job.
Why does a stepper get hot doing nothing?
Because holding position means holding current. At 1.5 A through 2.0 Ω per phase with 2 phases energised, that is 9.0 W whether the shaft is moving or not — about 0.70 of what a DC motor draws while doing real work.
What is the difference between a stepper and a servo?
A stepper asserts a position open-loop; a servo measures its own and corrects. That single difference gives all the others: a servo knows where it is to its encoder's 0.176 °, draws current in proportion to load, and reports an error when it cannot keep up, where a stepper silently loses steps.
How does a hobby servo know what angle to go to?
From the width of a pulse, repeated every 20 ms. One millisecond of width commands one end of the travel and two milliseconds the other, with 180 ° mapped across that span — 0.180 ° for each microsecond of width.