Quick answer

To calibrate Marlin E-steps, multiply your current steps/mm by the commanded extrusion divided by the actual extrusion. For example, 93 × 100 ÷ 95 ≈ 97.9 steps/mm. Mark the filament, command a slow 100 mm extrusion, measure what really moved, then save the new value with M92 and M500.

Use your own slicer/shop values. No live prices, uploads, accounts, databases, saved quotes, or external data are used.

Results update below from browser-local calculations.

Breakdown

New E-steps 0

How to Use This Calculator

  1. Heat the hotend to printing temperature, then enter your current E-steps/mm value from M503 or your firmware configuration.
  2. Command a slow 100 mm extrusion (for example M83 then G1 E100 F100), measure how much filament actually moved, and enter the commanded and measured values.
  3. Send the new E-steps value with M92 E<value>, then run M500 to save it to EEPROM before printing a calibration test.

Inputs and Assumptions

Current E-stepsEnter this value in steps/mm.
Commanded extrusionEnter this value in mm.
Actual extrusionEnter this value in mm.

Marlin E-steps calibration example

If your current E-steps are 93 steps/mm, you command 100 mm, and only 95 mm actually extrudes, the corrected value is about 97.9 steps/mm. Under-extrusion raises E-steps; over-extrusion lowers them.

How to Measure 100 mm of Extrusion

  • Heat the hotend to the normal printing temperature for the loaded filament so it extrudes freely.
  • Use relative extrusion (M83) and command a slow move such as G1 E100 F100 to avoid skipped steps.
  • Mark the filament at a fixed reference, for example 120 mm above the extruder inlet, before extruding.
  • After the move, measure the remaining distance and subtract to get the actual extruded length.

The E-steps Formula

New E-steps = current E-steps x commanded extrusion / actual extrusion. The relationship is direct: if the printer extrudes less than commanded, steps per millimeter must increase so the motor turns further for the same request.

This is the inverse of Klipper rotation_distance, where under-extrusion lowers the value. If you are migrating firmware, calibrate the value that matches your firmware instead of copying the other one.

Saving E-steps in Marlin

Apply the value at runtime with M92 E<new value>, then run a short test extrusion to confirm the correction. When you are satisfied, run M500 to store it in EEPROM so it survives a reboot.

If you reflash or reset EEPROM with M502, you will need to send M92 and M500 again or update the value in firmware.

M92 E97.9
M500

What to Calibrate After E-steps

E-steps set the correct amount of filament. Once that is accurate, calibrate flow rate (extrusion multiplier) from a single-wall print, then tune pressure advance or linear advance for sharp corners.

Calibrating flow before E-steps hides the real error, because flow compensation will try to mask an incorrect steps-per-millimeter value.

Formula

New E-steps = current E-steps × commanded extrusion / actual extrusion.

Limits of This Calculator

  • This estimates E-steps for Marlin-style firmware. Klipper users should calibrate rotation_distance instead.
  • Measurement error, filament slip, and a cold or partly clogged nozzle change the result, so repeat the test after large corrections.
  • E-steps fix the volume of filament pushed; they do not replace flow rate or pressure advance tuning.

FAQ

Is this for Marlin firmware?

Yes. Klipper users usually adjust rotation distance instead.

Should I calibrate flow after E-steps?

Often yes. E-steps and flow solve different calibration problems.

How do I measure my actual extrusion?

Heat the hotend, mark the filament at a fixed point above the extruder, command a slow 100 mm move with M83 then G1 E100 F100, and measure how far the filament actually moved. Enter the commanded and measured lengths to get the corrected E-steps.

My new E-steps value changed a lot. Is that normal?

A small correction is normal. A very large change usually means filament slip, a partly clogged nozzle, or a measurement error, so clear the issue and repeat the test before saving the value.

Do E-steps calibration fix stringing or blobs?

No. E-steps only set the correct amount of filament pushed. Stringing and blobs are tuned with retraction, temperature, and pressure or linear advance after extrusion is accurate.