Calibrate e-steps / rotation distance

This is the foundation of every extrusion number that follows. If the extruder does not move the length it thinks it does, your flow calibration is tuning around a known error — and you will get a plausible-looking result that is wrong.

Phase 1 — Extrusion accuracyabout 20 min

How to do it

  1. Load filament and heat the nozzle to the printing temperature for that material. Cold extrusion is refused by the firmware, and forcing it strips the filament.
  2. Find your current value first, and write it down. On Marlin, send M503 and look for the line beginning "M92" — the number after E is your steps per millimetre. On Klipper, open printer.cfg and find rotation_distance under [extruder]. Many printers also show it under a Motion or Advanced menu.
  3. Measure 120 mm up from where the filament enters the extruder and mark it with a felt pen. Measure from the actual inlet, not from the top of the machine.
  4. Extrude exactly 100 mm, slowly. From a terminal that is M83 then G1 E100 F100 — F100 means 100 mm per minute, so it takes a minute and that is deliberate. From the printer menu, use its Extrude or Move Extruder option and ask for 100 mm at the slowest speed offered.
  5. Measure from the inlet to your mark again. It should read exactly 20 mm. If it reads more, the extruder moved too little; less, and it moved too much.
  6. Work out the correction. On Marlin: new_esteps = old_esteps × (100 ÷ actual_extruded). On Klipper the maths is INVERTED because rotation distance means the opposite thing: new_rotation_distance = old_rotation_distance × (actual_extruded ÷ 100).
  7. Where actual_extruded is 120 minus what you just measured. If your mark now sits 27 mm from the inlet, only 93 mm went in.
  8. Apply it. Marlin: send M92 E<new value>, then M500 to save, or the firmware forgets it at the next power cycle. Klipper: edit rotation_distance in printer.cfg and restart.
  9. Repeat the whole measurement once to confirm. It should now land within a millimetre of 100.

How to read the result

Commanding 100 mm of extrusion moves exactly 100 mm of filament, measured.

What you need

Redoing this invalidates

Calibration is a chain. Change this and the results below were measured against the old value:

Open First Layer →
The app walks this in order, generates the test model for your nozzle and filament, and records what you measure so nothing has to be repeated. Free, no account, works offline.