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
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.
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.
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.
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.
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.
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).
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.
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.
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
Digital calipers, or a steel ruler you can read to the millimetre.
A felt pen that marks filament.
A way to send commands — your printer's own Extrude menu, or a terminal such as the one in OctoPrint, Pronterface, Mainsail or Fluidd.
Redoing this invalidates
Calibration is a chain. Change this and the results below were measured against the old value: