CNC Steps per mm Calculator

CNC Steps per mm Calculator — calculate the exact steps-per-millimetre value your CNC controller needs for accurate motion. Supports ballscrew, leadscrew, belt-drive systems, and gear reductions.

An incorrect steps/mm value causes every dimension on your parts to be wrong. Over- or under-stepping also causes lost steps, resonance issues, and poor surface finish. Getting this number right is the first step to a working CNC machine.

Essential for anyone building or configuring a CNC machine with GRBL, LinuxCNC, Mach3, or any step/direction controller.

Quick Formula

Steps/mm = (Motor Steps × Microsteps × Gear Ratio) / Travel per Rev
Travel per Rev = screw pitch (mm) for leadscrews, or belt pitch × pulley teeth for belt drives

Drive Type

Motor

Screw Parameters

For multi-start screws, enter the lead (pitch × starts)

Gear Ratio

1.0 = direct drive. 3.0 = 3:1 reduction (motor spins 3x per output turn)

Results

Steps per mm
Resolution (mm/step)
mm
Total Steps/Rev
Max Speed @50 kHz
mm/min
Max Speed @100 kHz
mm/min
Max Speed @200 kHz
mm/min

How to Calculate Steps per mm

  1. Determine motor steps per revolution: Most NEMA 17/23 steppers are 200 steps/rev (1.8°). High-resolution motors are 400 steps/rev (0.9°).
  2. Set microstepping on your driver: Common values are 1/8 (1600 steps/rev) or 1/16 (3200 steps/rev). Higher microstepping gives smoother motion but reduces max speed.
  3. Measure travel per revolution: For a leadscrew, this is the lead (pitch × number of starts). For belt drives, it is belt pitch × pulley teeth.
  4. Apply gear ratio: If you have a reduction between motor and drive, multiply total steps by the gear ratio.
  5. Divide: Steps/mm = (Motor Steps × Microsteps × Gear Ratio) / Travel per Rev.

Worked Example

200-step motor, 1/8 microstepping, 5 mm lead ballscrew, direct drive:

Steps/mm = (200 × 8 × 1) / 5 = 320 steps/mm

Resolution = 1/320 = 0.003125 mm per step (3.1 μm)

Max speed at 100 kHz = (100,000 / 320) × 60 = 18,750 mm/min

Common Mistakes

  • Confusing pitch with lead on multi-start screws — a 4-start, 2 mm pitch screw has 8 mm lead.
  • Setting microstepping too high — beyond 1/16, you gain smoothness but lose torque and max speed.
  • Forgetting the gear ratio when using a belt reduction between motor and screw.

Frequently Asked Questions

What steps per mm should I use for GRBL?

It depends on your hardware. For a typical setup with a 200-step motor, 1/8 microstepping, and a 5mm pitch leadscrew, use 320 steps/mm. Enter your exact values into the calculator above for a precise number.

Does higher microstepping mean better accuracy?

Not necessarily. Microstepping above 1/16 adds smoothness and reduces resonance, but does not significantly improve positional accuracy. True accuracy comes from the mechanical components — screw quality, backlash, and rigidity.

What is the maximum pulse rate for GRBL?

Standard GRBL on an Arduino Uno supports about 30 kHz. GRBL-HAL and dedicated controllers like the FlexiHAL can reach 100-200 kHz. Higher pulse rates allow faster rapids with high steps/mm values.

How do I calculate steps per mm for a belt drive?

Steps/mm = (Motor Steps x Microsteps x Gear Ratio) / (Belt Pitch x Pulley Teeth). For GT2 belt with 20-tooth pulley: travel = 2 mm x 20 = 40 mm per rev.

What is a good resolution for CNC?

0.01 mm (10 microns) per step is adequate for most CNC routers. For precision milling, aim for 0.005 mm or better. Going below 0.001 mm is rarely beneficial and limits your maximum speed.