Stepper Steps/mm & Vref Calculator
Microstepping buys smoothness, not accuracy — past 1/32 the driver counts steps the axis never takes. Plus steps/mm and driver Vref.
What each microstepping setting actually gives you
Which layer heights land on a full step
Microstepping buys smoothness, not accuracy
The torque available to move one microstep from rest is the holding torque times sin(90°/N). So resolution rises linearly with N while that torque falls as a sine: a full step commands 100% of holding torque, 1/16 commands 9.8%, and 1/256 commands 0.61% — a hundred and sixty-three times weaker. Past 1/16 each doubling of resolution costs you half the torque holding the axis in that position.
So past a point the commanded microstep doesn't move the motor at all. On a 0.4 N·m NEMA 17 against 0.02 N·m of axis friction, one microstep at 1/32 is 0.0196 N·m — below the friction, so nothing happens. The driver counts the step and the axis doesn't go there. At 1/256 it takes nine commanded microsteps before it breaks loose and jumps. That's the concrete version of "microstepping doesn't add accuracy", and it's why 1/16 is the usual practical ceiling for positioning rather than a tradition.
And whether a layer height is a "magic number" depends entirely on the lead. On the common T8 four-start the full step is 0.04 mm, so 0.12, 0.16 and 0.20 land on full steps while 0.10 and 0.15 do not. On a single-start T8 the full step is 0.01 mm and every common height lands. The magic-numbers table people quote is a statement about one particular screw, repeated without it.
Though the error is small, and saying so is the honest part. The worst case is half a full step — 0.02 mm on an 8 mm lead, against a 0.2 mm layer. Real, visible under raking light, and not the dominant term in anyone's Z quality. A bent screw, a binding coupler, or a Z carrying the gantry through a single nut all matter more.
- Vref is specific to the driver and the sense resistor. An A4988 at 1 A wants 0.80 V where a DRV8825 wants 0.50 — a factor of 1.6 — and halving the sense resistor halves the right answer again. Clone boards with identical silicon ship different resistors and the silkscreen rarely says. Read the marking.
- Set current from the motor's rating, not from what runs cool. 70–80% is the usual compromise: enough margin against skipped steps, low enough to stay under about 60 °C. A stepper that's merely warm is fine; one you can't hold isn't.
- Measure Vref against the driver's own ground, not the board's. A few tenths of a volt of drop across a loaded ground plane is the same order as the number you're setting.
- Adjust with the motors disconnected and an insulated screwdriver. Shorting the potentiometer wiper to an adjacent pad kills the driver instantly, and it's an easy slip with a metal blade.
How to use
- Work out steps/mm from the drive rather than copying a firmware default.
- Check the finest microstepping that still moves your axis.
- Read the sense resistor marking before setting Vref.
- Set Vref with the motors disconnected and an insulated screwdriver.
Frequently asked questions
Does microstepping improve positional accuracy?
No — it improves smoothness. The torque available to move one microstep from rest is the holding torque times the sine of 90 over N, so resolution rises linearly while that torque falls as a sine. A full step commands all the holding torque, 1/16 commands 9.8 per cent, and 1/256 commands 0.61 — a hundred and sixty-three times weaker. The commanded position gets finer while the ability to reach it collapses.
What is the highest useful microstepping?
Usually 1/16 for positioning, and it depends on the friction in your axis rather than on the driver. On a 0.4 N·m motor against 0.02 N·m of axis friction, one microstep at 1/32 produces 0.0196 N·m — below the friction, so the axis does not move at all. The driver counts the step and the machine does not go there. At 1/256 it takes nine commanded microsteps before it breaks loose and jumps.
Why does my printer skip steps at high microstepping?
It may not be skipping so much as never moving. Below the friction threshold each commanded microstep produces less torque than the axis needs to break loose, so several accumulate and then the axis jumps to catch up. That reads as roughness or lost position, and the fix is coarser microstepping rather than more current — though more current does raise the threshold too.
How do I calculate steps per mm?
For a leadscrew it is motor steps per revolution times microsteps, divided by the lead in millimetres. For a belt it is the same numerator divided by the pulley tooth count times the belt pitch. A 200-step motor at 1/16 on an 8 mm lead gives 400 steps per mm; the same motor on a 20-tooth GT2 pulley gives 80. Multiply by any gear reduction.
What are magic numbers for layer height?
Layer heights that land exactly on a full motor step, so the Z position is held by full holding torque rather than by a weakly held microstep. Which heights qualify depends entirely on the leadscrew: on the common T8 four-start the full step is 0.04 mm, so 0.12, 0.16 and 0.20 land while 0.10 and 0.15 do not. On a single-start T8 the full step is 0.01 mm and every common height lands.
Does it really matter if the layer height is not a magic number?
Less than the folklore suggests. The worst case is landing halfway between two full steps, which on an 8 mm lead is 0.02 mm — real, visible under raking light, and a tenth of a typical layer. A bent leadscrew, a binding coupler or a Z axis carrying the gantry through a single nut all cause more visible banding than a non-magic layer height does.
How do I set the Vref on a stepper driver?
From the driver formula and the sense resistor actually fitted, not from a number someone posted. An A4988 wants current times eight times the sense resistance; a DRV8825 wants half the current at the usual 0.1 ohm. The same motor at 1 amp therefore wants 0.80 V on one and 0.50 V on the other — a factor of 1.6, which is exactly how motors get cooked during a driver swap.
Why does my Vref calculation give the wrong current?
Almost always the sense resistor. Clone boards carrying identical silicon ship 0.05, 0.1 or 0.2 ohm parts, and halving the resistor halves the correct Vref for the same current. The silkscreen rarely says which is fitted, so read the marking on the resistor itself. This is the commonest way a correct formula produces a wrong answer.
What current should I run a stepper at?
Around 70 to 80 per cent of the rated current per phase. That leaves enough torque margin to avoid skipped steps while keeping the motor under about 60 degrees. Steppers are meant to run warm — one that is merely hot to the touch is fine, one you cannot hold is too high. Set from the rating rather than adjusting downward until it stops being warm.
Where should I measure Vref?
Between the potentiometer wiper and the driver own ground pin, not the board ground. A few tenths of a volt of drop across a loaded ground plane is normal and it is the same order as the number you are setting, so measuring in the wrong place is a large error. Do it with the motors disconnected and an insulated screwdriver, since shorting the wiper kills the driver instantly.
Is a 0.9 degree motor better than a 1.8 degree one?
It doubles the full-step resolution, which is real in a way that microstepping is not — the full step is where the torque is. The cost is roughly half the torque at speed for the same frame size, because there are twice as many electrical cycles per revolution. For a Z axis that moves slowly the trade is usually worth it; for a fast X or Y it often is not.
Does gearing help more than microstepping?
For accuracy, yes, and by a large margin. A three-to-one reduction divides the full-step distance by three and multiplies the torque at the axis by three, so the finer position is genuinely held. Microstepping divides the commanded step while dividing the holding torque by more than that. Gearing costs speed and backlash; microstepping costs the ability to reach the position it names.
🔒 This tool runs entirely in your browser. Nothing you enter is uploaded, logged, or stored.