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.
0.0000
new rotation_distance
| Paste into config | rotation_distance: 0 |
| Correction | 0% |
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:
- Klipper —
new = 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. - Marlin —
new = 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.