Calibration & Performance

Klipper Rotation Distance Calculator

Calculate a corrected Klipper rotation_distance from a measured extrusion test.

Extrusion test

mm

Your printer.cfg extruder rotation_distance.

mm

The amount you commanded Klipper to extrude.

mm

What you actually measured moving.

New rotation distance

31.825 mm

Current rotation distance
33.5 mm
Adjustment
-5.00%

How it's calculated

Klipper configures extruders and axes with rotation_distance — how many millimeters of filament (or axis travel) one full motor revolution produces — rather than a traditional steps/mm value. Klipper's own documentation gives this calibration formula:

Formula

Correction factor

Actual extrusion ÷ Requested extrusion

Adjustment percentage

((New rotation distance − Current rotation distance) ÷ Current rotation distance) × 100

New rotation distance

Current rotation distance × Correction factor

Notice the ratio is flipped compared to E-steps: since rotation_distance is millimeters per revolution (the inverse of steps per millimeter), under-extrusion — which calls for more motor movement — decreases rotation_distance rather than increasing it, the opposite direction from an E-steps correction for the same measurement. Always confirm your firmware and the field you're editing before applying a calibration change.

Assumptions

  • Your inputCurrent rotation distance, requested extrusion, and actual extrusion — you enter these directly, from your own printer.cfg and measurement.
  • Derived valueThe new rotation distance and correction factor are derived exactly from those inputs using Klipper's documented formula — no approximation in the math itself.

Worked example

Current rotation distance is 33.5mm. You command Klipper to extrude 100mm and measure that only 95mm of filament actually moved.

New rotation distance = 33.5 × 95 ÷ 100 = 31.825 mm.

Adjustment = ((31.825 − 33.5) ÷ 33.5) × 100 = -5.00%.

Frequently asked questions

What is rotation_distance in Klipper?

rotation_distance is the distance, in millimeters, that one full revolution of the stepper motor moves — for an extruder, how many mm of filament one motor rotation pushes through. It's Klipper's replacement for the traditional "steps per mm" value used by firmware like Marlin, and it's used for both extruders and motion axes in a Klipper config.

How do I calculate a new rotation distance?

Run the same extrusion test used for E-steps calibration: mark the filament, command a known extrusion length (e.g. 100mm), and measure how much actually moved. Enter your current rotation_distance along with the requested and actual extrusion into this calculator — it applies Klipper's documented correction formula.

Why does rotation distance decrease when E-steps would increase?

Because the two values are inversely related. E-steps measures steps needed per millimeter — more steps per mm means more motor movement per mm of filament. rotation_distance measures millimeters moved per revolution — fewer millimeters per revolution also means more motor movement per mm of filament. So under-extrusion (which calls for more motor movement) increases E-steps but decreases rotation_distance; they're two different units describing the same physical correction.

Is rotation_distance the same as E-steps?

They serve the same calibration purpose but are not numerically interchangeable — converting between them requires knowing your motor's full steps per revolution and microstepping setting. Don't plug an E-steps value directly into rotation_distance, or vice versa; use the calculator that matches your firmware.

Where do I change rotation_distance in Klipper?

It's set in your printer.cfg file, under the [extruder] section for the extruder (or the relevant stepper section for an axis). After editing the value, save the config and issue a RESTART in Klipper for it to take effect — refer to Klipper's own documentation for your specific setup before making config changes.

Other tools you may find useful.