E-Steps & Flow Calibration Wizard

Calibrate the extruder in the right order. First make it push the length it is told to (e-steps), then set the slicer's flow so a single wall prints as wide as the slicer meant. Each step gives you the new value and the commands or setting to change. Published November 2, 2026.

1Extruder e-steps

  1. Heat the hotend to your usual printing temperature. Cold plastic will not flow and the gear slips.
  2. Mark the filament 120 mm above where it enters the extruder (a fine pen and a steel rule).
  3. Send the test commands on the right: they extrude 100 mm slowly.
  4. Measure from the extruder entry to the mark again and enter it below. 20 mm left means exactly 100 mm went in.
Marlin: send M503 and read the E value on the M92 line. Working out e-steps from gear sizes instead? Use the steps per mm calculator.

2Flow / extrusion multiplier

  1. Slice a 20 mm cube with 1 wall, 0 top layers, 0 % infill (or "spiral vase" mode) and a set line width, e.g. 0.45 mm.
  2. Print it in the filament you are calibrating. Let it cool.
  3. Measure the wall with calipers on each side, away from the corners and the seam, and enter the readings.
Separate readings with spaces or commas. Use the line width from the slicer, not the nozzle size.

Your New Settings

    After Flow: The Rest of the Calibration Order

    1. Temperature tower for each new filament, so flow is set at the temperature you print at.
    2. Flow (this page) per filament. Save it in the filament profile, not the printer profile.
    3. Linear / pressure advance for sharp corners and even lines.
    4. Retraction to stop stringing.
    5. Input shaping to print faster without ringing.
    6. Dimensions: shrinkage and scale, then hole compensation for parts that must fit.

    How E-Steps and Flow Calibration Work

    Two different settings decide how much plastic comes out of the nozzle. E-steps (or Klipper's rotation_distance) belong to the printer: they make the extruder motor push the length of filament it is asked for. Flow (Cura's "Flow", PrusaSlicer's "Extrusion multiplier", OrcaSlicer's "Flow ratio") belongs to the filament: it trims for differences in diameter, melt behaviour and how the plastic squashes.

    Do them in that order. If the e-steps are wrong, the flow test simply hides the error, and it comes back as soon as you change filament or slicer. Once the extruder is right, flow usually ends up within a few percent of 1.

    The Formulas

    1. E-steps from the mark test
    actual = mark − left
    Marlin: new steps/mm = old × requested ÷ actual
    Klipper: new rotation_distance = old × actual ÷ requested
    Steps/mm and rotation_distance are inverses, so one goes up when the other goes down. The steps per mm calculator converts between them and works out a starting value from gear sizes.
    2. Flow from a single wall
    new flow = old flow × line width ÷ measured wall
    A single-wall cube has walls exactly one line wide, so the measured wall is the line the printer really laid down. Average several readings.
    3. OrcaSlicer tests
    YOLO: new = old + modifier
    Pass 1 / Pass 2: new = old × (100 + modifier) ÷ 100
    These follow the OrcaSlicer calibration guide. For Pass 2, enter the flow ratio you saved after Pass 1 as the "flow used".
    4. Where the number goes
    Cura: Material → Flow (%). PrusaSlicer: Filament → Extrusion multiplier. OrcaSlicer / Bambu Studio: Filament → Flow ratio. Firmware: M221 S95 scales every print, which is why the slicer is the better place.

    Worked Example

    Marlin printer, current 93 steps/mm, then a PLA single-wall cube at 0.45 mm line width in PrusaSlicer
    • E-steps: marked at 120 mm, extruded 100 mm, 24 mm left, so 96 mm went in (4 % short).
    • New steps/mm = 93 × 100 ÷ 96 = 96.88. Send M92 E96.88 then M500. Repeat the test: it should now leave 20 mm.
    • (On Klipper with rotation_distance 34.406 the same test gives 34.406 × 96 ÷ 100 = 33.030.)
    • Flow: walls read 0.47, 0.48, 0.47 and 0.46 mm, an average of 0.47 mm against 0.45 mm wanted.
    • New extrusion multiplier = 1.00 × 0.45 ÷ 0.47 = 0.957 (95.7 % in Cura).

    Practical Tips

    • Extrude slowly for e-steps. 100 mm/min (F100) keeps the hotend from limiting the flow, so you measure the extruder, not the nozzle. On a Bowden printer you can also unclip the tube at the hotend and measure what comes out of the tube, which takes the hotend out of the test completely.
    • Check the extruder before you change numbers. A big error (more than about 10 %) usually means the drive gear is slipping, the idler tension is wrong, the gear is clogged with plastic dust, or the hotend is partly blocked.
    • Measure the wall carefully. Use calipers with 0.01 mm resolution and light pressure, away from the seam and the corners, at a few heights. Thin walls squash easily.
    • Flow is per filament. Different brands and colours of the same plastic can need slightly different flow. Save it in the filament profile.
    • Top surfaces tell the truth. After calibrating, print something with a large flat top. Gaps between lines mean flow is a touch low; ridges or a rough nozzle trail mean it is a touch high.
    • Holes and fits. Correct flow helps dimensional accuracy, but plastic still shrinks and holes still print small. For fitted parts use the hole compensation and heat-set insert hole size calculators.

    Frequently Asked Questions

    E-steps first. E-steps make the extruder push the right length of filament, which is a property of the printer. Flow then fine-tunes each filament. Setting flow on a printer with wrong e-steps just hides the error.

    Divide the line width set in the slicer by the average measured wall, and multiply by the flow you printed with. A 0.45 mm line that measures 0.47 mm gives 0.45 ÷ 0.47 = 0.957, so set the extrusion multiplier to 0.957 or Cura's flow to 95.7 %.

    Klipper has no e-steps setting. It uses rotation_distance in the [extruder] section of printer.cfg, which works the other way round: new rotation_distance = old × actual ÷ requested. Edit printer.cfg, save and send RESTART.

    Yes, they are the same idea with different names. Cura shows it as a percentage (Flow 95 %), PrusaSlicer and SuperSlicer as a ratio (Extrusion multiplier 0.95), and OrcaSlicer and Bambu Studio as Flow ratio (0.95). Marlin's M221 sets the same kind of scale in firmware for every print.

    Check the test first: it must have exactly one wall and no infill, and the line width must be the slicer's line width rather than the nozzle size. Then check the slicer's filament diameter matches your filament (1.75 vs 2.85 mm) and that e-steps are right. A wall within about 10 % of the line width is normal before calibration.

    Commands are for typical Marlin and Klipper setups. Check your printer's documentation before saving settings, and keep a note of the old values so you can go back.