LayerTune
Calculators

E-steps and rotation distance calculator

Ask the printer for 100 mm of filament, measure what it really fed, and correct the difference.

Your measurement

steps/mm
mm
mm
Mark 120 mm above the extruder, feed 100, measure what is left

Result

New e-steps

Commands

How it is calculated

Marlin:  new e-steps = current e-steps × (requested ÷ actual)
Klipper: new rotation_distance = current rotation_distance × (actual ÷ requested)

The two move in opposite directions. E-steps are steps per millimetre, so an extruder that fed too little needs more of them. Rotation distance is millimetres per full turn, so the same extruder needs a smaller number.

Doing the test properly

  1. Heat the nozzle to your normal printing temperature, or remove the nozzle side entirely and feed into free air. A cold nozzle blocks the filament and ruins the reading.
  2. Mark the filament 120 mm above where it enters the extruder.
  3. Feed 100 mm slowly, at about 1 to 2 mm/s. Feeding fast makes the extruder skip and under-reads.
  4. Measure from the entry point to your mark. If 23.5 mm is left, it fed 96.5 mm.
  5. Apply the new value, save it, and repeat once to confirm.

Bambu Lab printers: you do not set e-steps on these. Extrusion is tuned per filament with the flow ratio (and flow dynamics) calibration in Bambu Studio or Orca Slicer. The same is true for any printer where the vendor locks the firmware value: use the slicer's flow ratio instead.

E-steps fix the machine. They do not fix a filament that is thicker or thinner than nominal. Do this once per extruder, then tune flow per filament in the slicer.

Related: volumetric flow calculator.