Skip to content

How to calibrate e-steps, rotation distance and flow (Marlin and Klipper)

Updated 9 November 2026

Under-extrusion, gaps in top layers, bulging corners and walls that measure wrong almost always trace back to one of three settings. Do them in this order, because each one assumes the previous is right.

1. Extruder steps (Marlin) or rotation distance (Klipper)

This tells the firmware how far the extruder motor must turn to push 1 mm of filament. Factory values are approximate.

  1. Heat the hotend to the filament’s temperature and unload any pressure (retract a little, cut the filament square).
  2. Measure 120 mm from where the filament enters the extruder and mark it with a marker.
  3. Command exactly 100 mm of extrusion at a slow speed: G91, G1 E100 F100, G90 (Klipper: G1 E100 F100 after M83).
  4. Measure from the extruder entry to your mark. If 20 mm remains, it extruded 100 mm; if 23 mm remains, it extruded 97 mm.
  5. Calculate:
    • Marlin: new e-steps = old × 100 ÷ actually extruded. Save with M92 E<value> then M500.
    • Klipper: new rotation_distance = old × actually extruded ÷ 100. Edit [extruder] in printer.cfg and restart.

The calibration calculator does the division and prints the exact command. Repeat once to confirm you land within 1 mm.

2. Flow (extrusion multiplier)

With steps correct, flow corrects for the filament’s real diameter and how it behaves under pressure. It is per filament, not per printer.

  1. Slice a 20–30 mm hollow cube with 1 wall, 0% infill, 0 top layers and your usual line width (say 0.45 mm).
  2. Print it and measure all four walls with calipers mid-height. Average them.
  3. New flow = current flow × target width ÷ measured width. Measured 0.48 mm against 0.45 target at 100% flow gives 93.75%.
  4. Put it in the slicer’s filament profile (OrcaSlicer/Bambu Studio: Flow ratio; PrusaSlicer: Extrusion multiplier; Cura: Flow).

OrcaSlicer’s two-pass flow calibration automates this with a set of small squares; the result is the same number.

3. Maximum volumetric flow

Steps and flow are right, but the hotend still cannot melt plastic infinitely fast. Above its limit the extruder skips or the walls go rough.

What each one fixes

Symptom Likely setting
Everything slightly under- or over-extruded on every filament E-steps / rotation distance
One brand of filament prints gappy, another bulges Flow
Fine at 0.12 mm layers, gaps and clicking at 0.28 mm or at high speed Max volumetric flow
Dimensions right, but surfaces show regular banding Z axis: see magic layer heights