Skip to content

Lead Screw Rotation Distance Calculator

The Lead Screw Rotation Distance Calculator computes the Z axis rotation_distance for lead screw and belted Z setups.

Free, runs in your browser, no registration.

Unlike the extruder rotation distance, which you find by measuring extrusion, the Z axis value is derived from hardware geometry. There’s an exact right answer and you should use it rather than calibrating by trial.

For a lead screw:

rotation_distance = screw_pitch × number_of_starts

The T8 designation covers several different screws, which is the source of most confusion:

ScrewPitchStartsrotation_distance
T8-2 (single start)2 mm12
T8-4 (2 start)2 mm24
T8-8 (4 start)2 mm48
T8-123 mm412

Pitch is the distance between adjacent thread crests. Lead is how far the nut travels per full rotation. On a single-start screw they’re the same; on a 4-start T8 the lead is 8 mm from a 2 mm pitch.

Klipper’s rotation_distance is the lead, not the pitch.

Look at the end of the screw. Count the number of distinct thread grooves entering the end face — that’s the number of starts. A 4-start T8 shows four separate spiral entries.

Alternatively: mark the nut, rotate the screw exactly one turn, measure the travel. That distance is your rotation_distance.

For belt-driven Z (Voron 2.4, many CoreXY):

rotation_distance = belt_pitch × pulley_teeth

GT2 belt with a 20-tooth pulley: 2 × 20 = 40.

Same formula as any belted axis.

If there’s a reduction between motor and screw, divide:

rotation_distance = lead / reduction_ratio

A T8-8 with a 3:1 reduction gives 8 / 3 = 2.667. Set gear_ratio in Klipper instead where you can — it’s clearer than folding the ratio into rotation distance:

[stepper_z]
rotation_distance: 8
gear_ratio: 3:1

Even though the value is calculated, verify it once:

  1. Home Z.
  2. G1 Z50 F300
  3. Measure the actual nozzle-to-bed distance change with calipers or a depth gauge.
  4. It should be 50 mm. If it’s 25 mm, you have double the starts you thought. If it’s 100 mm, half.

Errors here are almost always integer multiples, because they come from miscounting starts — which makes them easy to spot and easy to fix.

  • Confusing pitch with lead. The single biggest one. A T8-8 has 2 mm pitch and 8 mm lead. Klipper wants 8.
  • Assuming all T8 screws are the same. They aren’t. Count the starts.
  • Calibrating Z by trial and error. Unlike the extruder, this has an exact answer from geometry. Trial-and-error Z calibration usually means you’ve compensated a wrong rotation_distance with a wrong Z offset, and now first layers are inconsistent across the bed.
  • Folding gear ratio into rotation_distance. Use gear_ratio — it’s self-documenting and survives your future self reading the config.

Z configurations for my Voron 2.4 (belted Z), Mercury One.1, and lead-screw machines are documented in the Minimal 3DP config packs. Raw configs remain free in the klipper repository.