# Stepper motor losing steps: causes and fixes

> Diagnose a stepper that skips steps: current, voltage, acceleration, pulse timing, resonance, wiring and calibration, checked in the right order.

Canonical: https://roboticsengineering.in/stepper-motor-missing-steps-fix/ | Published: 2026-10-28 | Updated: 2026-10-28 | Author: Jignesh Panchal

**A stepper motor that skips steps does not warn you.** The machine keeps running and every later move is offset by the steps it lost.

This guide covers the real causes, a diagnosis order that finds the problem in an hour instead of a week, and the fixes that actually hold on Indian hobby and small industrial builds.

## First, confirm it is losing steps

Command the axis to move to a known position and back, repeatedly. Put a mark on the shaft or the carriage and measure the return error after 20 cycles. If the error accumulates in one direction, you are losing steps. If it oscillates without accumulating, the problem is backlash or flex, not lost steps.

- Accumulating error in one direction: lost steps.
- Error that repeats within a small band: backlash.
- Random position changes at rest: electrical noise or driver fault.
- Buzzing without motion: stalled or wired wrong.
- Motion only in one direction: enable or direction wiring.

## Cause 1: current set too low

The driver limits current with a reference voltage or a sense resistor. If the limit is set below what the motor needs, torque falls and the motor stalls under load or acceleration. Most drivers have a small potentiometer and a formula in the datasheet, or a UART setting on better drivers.

Set the running current to roughly 70–85% of the motor’s rated current. Full rated current heats the motor; much less loses torque. Measure the reference voltage with a multimeter and compare with the datasheet formula rather than turning the pot until it “feels right”.

## Cause 2: supply voltage too low

Stepper torque falls with speed because the winding cannot build current fast enough. A higher supply voltage helps the driver push current into the coil faster. Running a 12 V rated stepper on 12 V is usually marginal; most drivers and motors tolerate 24 V or more, which is why 24 V is common on CNC builds.

| Supply | Effect on a typical NEMA 17 |
| --- | --- |
| 12 V | Works at low speed, torque falls early |
| 24 V | Better high-speed torque, common sweet spot |
| 36–48 V | Better still, driver and motor rating must allow it |
| Too high | Driver over-voltage, heat, failure |

Check both the driver’s maximum voltage and the motor’s insulation rating. Raising the supply without checking the driver is a quick way to destroy it.

## Cause 3: acceleration too high

A stepper has no feedback, so if the load cannot follow the commanded acceleration, the rotor slips and the position is lost. Starting at full speed or reversing instantly is the usual cause in 3D printers, robot arms and camera sliders.

- Start slow and ramp to speed over tens of milliseconds.
- Lower the acceleration before lowering the top speed.
- Add deceleration before a direction change.
- Check that the motion library is using trapezoidal or S-curve profiles.
- Reduce moving mass if the ramp becomes unusably slow.

## Cause 4: step pulse timing

Drivers need a minimum pulse width, usually a few microseconds, and a minimum time between direction change and the next step. Bit-banging steps in a slow loop, or using software delays that vary with interrupts, can violate both.

Use a hardware timer or a library that generates pulses in the background. On Arduino, the AccelStepper library with a timer, or a dedicated step generator, is far more reliable than calling `step()` inside a loop with other work.

## Cause 5: resonance

Steppers have a mid-band resonance region where they vibrate and lose steps even with correct current and voltage. It usually appears at a specific speed range, often a few hundred steps per second, and disappears above or below it.

Fixes include microstepping, which changes the excitation pattern, a mechanical damper on the shaft, and avoiding the resonant speed band in the motion profile. Modern drivers with stealthChop or similar algorithms reduce the problem but do not eliminate it under heavy load.

## Cause 6: wiring and microstep mismatch

Bipolar steppers have two coils. Wiring one coil reversed can make the motor run weakly or vibrate in place. Series and parallel wiring of eight-wire motors changes torque and speed characteristics, and the current setting must match the chosen wiring.

- Identify coil pairs with a multimeter before wiring.
- Never assume wire colours match between brands.
- Set the driver microstep value to match the firmware steps per millimetre.
- Check that the enable pin polarity matches the driver.
- Keep step and direction wires away from motor power wires.

## Cause 7: mechanical binding

A coupler that is misaligned, a lead screw without lubrication, a linear rail with a tight carriage or a belt that is too tight all add load. The motor may have enough torque at low speed and lose steps only during acceleration, which looks exactly like a current problem.

Disconnect the motor from the mechanism and run it. If it never loses steps unloaded, the problem is mechanical. Then move the axis by hand with the motor disabled; it should move smoothly with light resistance.

## Calibrating steps per millimetre

Many “lost steps” reports are really a wrong calibration. The firmware commands a distance using an assumed steps per millimetre value, the machine moves the right number of steps, and the measured distance disagrees. That is a scaling error, not a lost step, and it does not accumulate in one direction only after load.

- Steps per revolution: usually 200 for a 1.8 degree motor.
- Microsteps: the driver setting, commonly 8, 16 or 32.
- Steps per motor revolution after microstepping: 200 x microsteps.
- Steps per millimetre: steps per revolution divided by travel per revolution.
- Travel per revolution: lead screw pitch, or pulley teeth x belt pitch.

Verify by commanding a long move, for example 200 mm, and measuring with a steel rule or caliper. Adjust the value by the ratio of commanded to measured distance. Do this before chasing torque problems, because a scaling error of a few percent looks exactly like occasional slip.

## A diagnosis order that saves time

- Reproduce the fault with a repeatable move and count the error.
- Run the motor unloaded at the same speed and acceleration.
- Measure the driver reference voltage against the datasheet.
- Sweep the speed slowly to find a resonance band.
- Lower acceleration and see whether the fault disappears.
- Check supply voltage at the driver terminals under load.
- Inspect the mechanism for binding and alignment.
- Only then change the driver or motor.

## When to stop using open-loop steppers

If the machine cannot tolerate an occasional lost step, add an encoder and closed-loop control, or use a servo. Closed-loop stepper drivers exist and are a good middle ground: they keep the stepper’s low-speed torque and detect stalls, at a higher cost than an open-loop driver.

Related: [stepper motor with Arduino](https://roboticsengineering.in/stepper-motor-arduino-guide/), [NEMA 17 vs NEMA 23](https://roboticsengineering.in/nema-17-vs-nema-23-stepper/), [motor selection](https://roboticsengineering.in/motor-selection-for-robots/), [servo jitter fixes](https://roboticsengineering.in/servo-jitter-problems-fix/), [3D printed robot parts](https://roboticsengineering.in/3d-printed-robot-parts-design/).

**Why is my stepper motor losing steps?**

Usually the driver current is set too low, the supply voltage is too low for the speed, or the acceleration is higher than the load can follow. Mechanical binding and resonance can produce the same symptom.

**How do I set the current on a stepper driver?**

Measure the reference voltage at the driver test point and use the formula in the datasheet. Set the running current to roughly 70–85% of the motor's rated current, then check motor temperature under load.

**Does higher supply voltage increase stepper torque?**

It improves torque at speed because current rises faster in the coils. Stay within the driver's maximum voltage and the motor's insulation rating, and check temperature.

**What is stepper mid-band resonance?**

A speed range where the motor vibrates and may lose steps despite correct current and voltage. Microstepping, a damper, or avoiding that speed range in the motion profile helps.

**Should I use a closed-loop stepper?**

Yes if the machine cannot tolerate occasional lost steps. A closed-loop stepper or a servo adds feedback and detects stalls, at higher cost than an open-loop driver.

On a two-wheel balancer the same missed steps show up as a fall, as explained in the [MPU6050 balancing robot build](https://roboticsengineering.in/mpu6050-balancing-robot-arduino/).

Before blaming mechanics, check whether the [driver current setting](https://roboticsengineering.in/tmc2209-vs-a4988-stepper-driver/) is the real cause of missed steps.

Most lost steps are a torque margin problem, and the [torque curve guide](https://roboticsengineering.in/stepper-motor-torque-curve-explained/) shows how to check the margin before changing drivers.

## Sources and further reading

- [Texas Instruments](https://www.ti.com/) — stepper driver application notes.
- [Trinamic](https://www.trinamic.com/) — stepper driver technology and tuning guides.
- [Arduino reference](https://www.arduino.cc/reference/en/) — timers and stepping examples.
- [NEMA](https://www.nema.org/) — motor frame and mounting standards.
