Demo build: items marked [TO FILL] and “Field test pending” are intentional gaps for the operator to complete with real information. See our editorial policy.

Hardware & Motion

Stepper Angles, GT2 Belts, Lead Screws, and Z Layer Heights

Key takeaways

  • Rotation distance equals belt pitch multiplied by pulley tooth count for belt axes, or thread pitch multiplied by the number of thread starts for lead screw axes.
  • A standard 1.8° stepper (200 full steps/rev) driving a TR8x8 lead screw moves 0.04 mm per full step, whereas a TR8x4 moves 0.02 mm and a TR8x2 moves 0.01 mm per full step.
  • Choosing layer heights in integer multiples of the full-step Z increment avoids holding at fractional microsteps on non-interpolated drivers, though modern TMC drivers with 256-microstep interpolation largely eliminate microstep ripple.

Every linear millimeter traveled by a 3D printer’s toolhead or build plate is determined by fixed mechanical ratios: stepper motor step angle, belt tooth pitch, pulley tooth count, and lead screw thread lead. Unlike extruder steps—which require empirical tuning against filament compression (see Extruder E-Steps and Rotation Distance)—X, Y, and Z motion parameters should always be calculated directly from hardware geometry rather than adjusted from a printed calibration cube. Understanding these kinematic equations explains how Klipper’s rotation_distance, Marlin’s DEFAULT_AXIS_STEPS_PER_UNIT, and full-step Z layer height increments (“magic numbers”) work.

Stepper Motor Step Angles: 1.8° vs. 0.9°

Hybrid bipolar stepper motors used in desktop FDM printers (most commonly NEMA 17 frame size, 42 mm x 42 mm faceplate) convert discrete electrical current pulses into fixed angular increments. The number of full mechanical steps per 360° revolution (N_fs) is defined by the rotor and stator pole geometry:

Full steps per revolution:  N_fs = 360° / theta_step

Two step angles dominate 3D printer motion systems:

  • 1.8° stepper motor: 360° / 1.8° = 200 full steps per revolution. This is the industry standard for X, Y, Z, and extruder axes across bedslingers and CoreXY machines.
  • 0.9° stepper motor: 360° / 0.9° = 400 full steps per revolution. Often installed on CoreXY A/B (X/Y) belt drives to double native angular resolution and reduce vertical fine artifacts (VFAs) caused by rotor pole cogging.

Stepper drivers subdivide each full step into M microsteps (typically M = 16, 32, or 64) by varying the sine and cosine phase currents through the two motor windings. The total number of microstep pulses per motor shaft revolution (N_pulses) is:

Microsteps per revolution:  N_pulses = N_fs * M

For a 1.8° stepper with 16x microstepping, one complete revolution requires 200 * 16 = 3,200 step pulses; for a 0.9° stepper at 16x microstepping, one revolution requires 400 * 16 = 6,400 step pulses.

GT2 Belt Pitch and Pulley Kinematics (X and Y Axes)

Belt-driven axes use synchronous toothed timing belts—almost universally GT2 (2GT) profile with a tooth pitch p_belt = 2.00 mm (0.0787 in)—meshing with a toothed drive pulley of tooth count Z_teeth. Because the belt teeth lock positively into the pulley grooves without slipping, one full revolution of the motor pulley advances the belt by a linear distance known in Klipper’s Rotation Distance documentation as rotation_distance:

Belt rotation_distance (mm/rev) = p_belt * Z_teeth

In Marlin Firmware and RepRapFirmware, the equivalent parameter is expressed as microsteps per millimeter (steps_per_mm), derived in Triffid Hunter’s Calibration Guide:

Belt steps_per_mm = (N_fs * M) / (p_belt * Z_teeth) = (N_fs * M) / rotation_distance

Worked Examples for Common GT2 Pulley Configurations

  1. Standard 20-tooth GT2 pulley, 1.8° stepper (N_fs = 200), 16x microstepping:

    • rotation_distance = 2.00 mm * 20 = 40.00 mm (1.5748 in)
    • steps_per_mm = (200 * 16) / 40.00 = 3,200 / 40.00 = 80.00 steps/mm
    • Full-step XY resolution: 40.00 mm / 200 = 0.200 mm (0.0125 mm per 16x microstep)
  2. Compact 16-tooth GT2 pulley, 1.8° stepper (N_fs = 200), 16x microstepping:

    • rotation_distance = 2.00 mm * 16 = 32.00 mm (1.2598 in)
    • steps_per_mm = (200 * 16) / 32.00 = 100.00 steps/mm
    • Full-step XY resolution: 32.00 mm / 200 = 0.160 mm (0.0100 mm per 16x microstep)
  3. 20-tooth GT2 pulley, 0.9° stepper (N_fs = 400), 16x microstepping:

    • rotation_distance = 2.00 mm * 20 = 40.00 mm
    • steps_per_mm = (400 * 16) / 40.00 = 160.00 steps/mm
    • Full-step XY resolution: 40.00 mm / 400 = 0.100 mm (0.00625 mm per 16x microstep)
Belt Pitch (p_belt) Pulley Teeth (Z_teeth) Stepper Angle Microsteps (M) Klipper rotation_distance Marlin steps_per_mm Full-Step Increment
2.0 mm (GT2) 16T 1.8° (200) 16 32.0 mm 100.00 0.160 mm
2.0 mm (GT2) 20T 1.8° (200) 16 40.0 mm 80.00 0.200 mm
2.0 mm (GT2) 20T 0.9° (400) 16 40.0 mm 160.00 0.100 mm
2.0 mm (GT2) 20T 1.8° (200) 32 40.0 mm 160.00 0.200 mm

Never “calibrate” X and Y steps_per_mm or rotation_distance from a 20 mm printed cube. A printed cube includes polymer thermal shrinkage, die swell, and perimeter track rounding (covered in Designing 3D-Printed Parts That Fit and Flow Rate and Extrusion Multiplier Calibration). Altering rotation_distance from 40.00 mm to 39.80 mm to force a shrunken 20 mm cube to measure 20.00 mm introduces a 0.5% scale error across the build plate, causing a 200 mm part to print 1.00 mm oversized.

Lead Screw Kinematics: Pitch vs. Lead (TR8x8, TR8x4, TR8x2)

On lead-screw Z axes, two distinct thread parameters govern vertical travel:

  • Thread pitch (p_thread): Axial distance from the crest of one thread groove to the next adjacent groove (2.0 mm on metric TR8 trapezoidal screws).
  • Number of thread starts (N_starts): Number of independent helical threads wrapped around the shaft (counted at the flat end of the screw).
  • Lead (L): Axial distance the nut advances in one 360° revolution of the screw (rotation_distance on a direct-coupled Z axis):
Lead (rotation_distance) = L = p_thread * N_starts

Standard metric trapezoidal 8 mm lead screws (TR8) come in three common configurations:

  1. TR8x8 (4-start, 2 mm pitch): L = 2.0 mm * 4 = 8.00 mm/rev. Standard on the Creality Ender 3 series, Prusa MK3/MK4, and Voron Trident. Fast Z travel, but low mechanical reduction allows heavy gantries to back-drive when motors are de-energized.
  2. TR8x4 (2-start, 2 mm pitch): L = 2.0 mm * 2 = 4.00 mm/rev. Doubles mechanical advantage and full-step vertical resolution compared to TR8x8 while resisting passive gantry drop.
  3. TR8x2 (1-start, 2 mm pitch): L = 2.0 mm * 1 = 2.00 mm/rev. Quadruples full-step resolution compared to TR8x8 and prevents back-driving without power.

If the Z stepper drives the lead screw or belt through a gear reduction—such as an 80T : 20T (4:1) pulley ratio—Klipper keeps rotation_distance equal to the driven pulley or screw travel and adds gear_ratio: 80:20, whereas Marlin multiplies steps_per_mm by 80 / 20 = 4.

Full-Step Z Increments (“Magic Number” Layer Heights)

A stepper motor generates its highest holding torque and highest angular positional accuracy at full-step detents (where rotor teeth align directly with energized stator poles). The vertical travel per full step (Delta_z_full) is:

Full-step Z increment:  Delta_z_full = L / N_fs = rotation_distance / N_fs

For a standard 1.8° stepper (N_fs = 200) driving a direct-coupled TR8x8 lead screw (L = 8.00 mm):

Delta_z_full = 8.00 mm / 200 = 0.040 mm (40 um, or 0.00157 in)

When you slice a print at a layer height h that is an integer multiple of 0.040 mm—such as 0.08 mm, 0.12 mm, 0.16 mm, 0.20 mm, 0.24 mm, or 0.28 mm (within your nozzle’s limits; see Nozzle Diameter vs. Layer Height, Line Width, and Overhangs)—every layer change advances the Z motor by an exact integer number of full steps.

If instead you slice at h = 0.15 mm on a TR8x8 printer with 16x microstepping (400 steps/mm), consecutive layers command 60, 120, 180, and 240 microsteps (3 + 12/16, 7 + 8/16, 11 + 4/16, and 15 + 0/16 full steps). On non-linear drivers or high-friction Z nuts, cycling through four different fractional microstep phases causes layer thickness to oscillate around 0.150 mm every 4 layers (0.60 mm period).

Lead Screw / Drive Type Lead (L) Stepper (N_fs) Marlin steps_per_mm (16x) Full-Step Z (Delta_z_full) Full-Step Layer Heights (h)
TR8x8 (4-start) 8.00 mm 1.8° (200) 400.00 0.040 mm 0.08, 0.12, 0.16, 0.20, 0.24, 0.28, 0.32 mm
TR8x4 (2-start) 4.00 mm 1.8° (200) 800.00 0.020 mm Every 0.02 mm increment (0.10, 0.12, 0.14, 0.16, 0.20 mm)
TR8x2 (1-start) 2.00 mm 1.8° (200) 1,600.00 0.010 mm Every 0.01 mm increment (0.10, 0.11, 0.12, 0.15, 0.20 mm)
M8x1.25 Metric Rod 1.25 mm 1.8° (200) 2,560.00 0.00625 mm 0.05, 0.10, 0.15, 0.20, 0.25, 0.30 mm
Belted Z (40 mm, 80:16) 8.00 mm eff. 1.8° (200) 400.00 0.040 mm 0.08, 0.12, 0.16, 0.20, 0.24, 0.28, 0.32 mm

Why Modern TMC Drivers and Bed Mesh Make Magic Numbers Matter Less

While choosing 0.12 mm, 0.16 mm, 0.20 mm, 0.24 mm, or 0.28 mm layer heights remains good practice, three factors on modern printers greatly reduce the impact of full-step Z increments:

  1. 256-Microstep Trinamic Drivers: Legacy A4988 and DRV8825 drivers suffered from current-regulation deadbands near the sine-wave zero crossing. Modern Trinamic drivers (TMC2208, TMC2209, TMC2130, TMC5160), documented in the Klipper TMC Drivers guide, interpolate inputs to 256 microsteps (0.000156 mm per microstep on TR8x8) with smooth sinusoidal current control.
  2. Live Z-Offset Phase Shift: Adjusting live Z-offset by -0.015 mm for first-layer squish (see First-Layer Squish and Z-Offset Math) immediately shifts every layer off the physical full-step detent onto a fractional microstep phase—though using a multiple of 0.040 mm still keeps the motor on the same electrical phase angle at every layer.
  3. Active Bed Mesh Compensation: Automatic bed leveling (ABL) mesh fade continuously steps the Z motor by micrometers across XY moves, overriding static full-step Z positions.

Run the numbers

Fit, Clearance & Shrinkage Calculator (+ STL Gauge)

Compute CAD dimensions for press, sliding, loose and print-in-place joints after polymer shrinkage and nozzle geometry, and download a printable STL test gauge.

Extrusion Flow, Volumetric Speed & E-Steps Calculator

Calculate capsule road cross-section, volumetric flow rate (mm³/s), speed limits, slicer flow ratio and Klipper/Marlin extruder steps.

Sources and further reading

  1. Klipper Documentation – Rotation distance
  2. Klipper Documentation – TMC drivers
  3. Marlin Firmware – Configuring Marlin
  4. RepRap Wiki – Triffid Hunter's Calibration Guide

3D printing guidance on this page is general. Printers, hotends, slicers and filament batches vary, so verify dimensions and settings with test prints and calipers. Always observe thermal, electrical and ventilation safety around heated components and melted polymers. Spotted an error? Tell us and we will review it under our corrections policy.