MakerCalc

Rotation distance & e-steps calculator

Extrude a measured length of filament, enter what actually came out, and get the corrected value for your firmware. Calibrating flow afterwards? Check your limits with the max print speed calculator and keep the shrinkage compensation for dimensional accuracy.

Stock Klipper: keep the test ≤ 50 mm unless max_extrude_only_distance is raised — some guides say to extrude 100 mm, which stock Klipper rejects.

Fills in actual = marked − remaining, so you don't do the subtraction by hand.

0.0000

new rotation_distance

Paste into configrotation_distance: 0
Correction0%

Stock defaults and per-printer procedures: Ender 3 · Ender 3 V2 · Ender 3 S1 · Ender 5 · CR-10 · Sovol SV06 · Ender 3 V3 KE · Neptune 4 · Sovol SV08 · Voron 2.4

Procedure

Mark the filament 120 mm above the extruder inlet, heat the hotend to print temperature, and extrude 100 mm (Klipper console:G91 then G1 E100 F60). Measure the mark's distance to the inlet — actual = 120 − remainder. On Klipper, make suremax_extrude_only_distance is at least 101 or the move is rejected. Paste the new value, restart (Klipper) or save with M500 (Marlin), and repeat once to confirm.

Why the formulas are inverted

The two firmwares use reciprocal units, so the correction flips direction:

  • Klippernew = old × actual ÷ requested. rotation_distance is millimeters per revolution; if the printer under-extrudes, each revolution must move less distance, so the value goes down.
  • Marlinnew = old × requested ÷ actual. E-steps are steps per millimeter; under-extrusion means the axis needsmore steps per millimeter, so the value goes up.

This matches the official Klipper Rotation_Distance documentation, which derives rotation_distance from a measure-and-trim extrusion test exactly this way.

Frequently asked questions

Is rotation distance the same as e-steps?
They calibrate the same thing in reciprocal units. Klipper’s rotation_distance is millimeters of filament per full stepper revolution; Marlin’s e-steps are steps per millimeter. Both are tuned with the same measure-and-trim extrusion test.

Why did my rotation_distance go down when the printer under-extrudes?
rotation_distance is distance per revolution — if less filament comes out than requested, each revolution must move a shorter distance to compensate. Marlin’s e-steps move the other way: under-extrusion means more steps per millimeter.

Why does Klipper refuse to extrude 100 mm?
The default max_extrude_only_distance is 50 mm, so G1 E100 is rejected as too long. Set it to at least 101 in the extruder config section before running the test.

How often should I recalibrate extrusion?
After changing the extruder gears, motor or hotend, or whenever prints show consistent over- or under-extrusion. Run the test once more after saving the new value to confirm it.