3D PrinterWiki

E-steps calculator

Make sure your extruder pushes exactly the length of filament it is asked for.

steps/mm
mm
mm
mm
More options
mm

E-steps tell your printer's firmware how many motor steps it takes to push one millimetre of filament. If the number is off, every print is a little under- or over-extruded: gaps between lines, weak layers, or blobs and rough tops. The value set at the factory is often close, but a new extruder, a different gear or simply manufacturing tolerance can put it out by several percent. This E-steps calculator turns a simple 100 mm extrusion test into the corrected value, and gives you the exact commands to save it.

E-steps calculator result: 96 mm extruded instead of 100, new E-steps 96.88
An extruder that pushes 96 mm instead of 100 needs its E-steps raised by about 4%.

How to calibrate E-steps

  1. Read the current value. Send M503 from a terminal (Pronterface, OctoPrint, or the printer's console) and find the line M92 … E93.00. The number after E is your current E-steps. Many printers also show it in the menu under Motion or Steps/mm.
  2. Heat the hotend to your normal printing temperature, so filament can actually flow.
  3. Mark the filament 120 mm above the point where it enters the extruder, with a fine marker or a piece of tape.
  4. Extrude 100 mm slowly: send M83 (relative extrusion), then G1 E100 F100. It takes about a minute.
  5. Measure the distance from the extruder to the mark again and enter it as Distance left after extruding. If exactly 100 mm went in, 20 mm is left.
  6. Save the new value with the commands the calculator shows.
How to calibrate E-steps: mark the filament, extrude 100 mm, measure what is left

The formula

The calculation is a simple ratio. If the extruder was asked for 100 mm but pushed 96 mm, it needs 100 ÷ 96 = 1.0417 times as many steps per millimetre:

new E-steps = current E-steps × requested length ÷ actual length

With 93 steps/mm, a common factory value for many Creality printers, that gives 93 × 100 ÷ 96 = 96.88. The actual length is the mark distance minus what's left: 120 − 24 = 96 mm. The calculator also shows the error in percent, so you can see whether the printer was over- or under-extruding and by how much.

Saving the value in Marlin

On printers running Marlin firmware, send M92 E96.88 to set the new value and M500 to store it in the printer's EEPROM, so it survives a restart. Send M503 again to check. Some printers without EEPROM support forget the value after a restart; in that case you can add M92 E96.88 to your slicer's start G-code so it is set at the start of every print.

Marlin commands for E-steps calibration: M503, M83, G1 E100, M92, M500 and Klipper

Klipper: rotation_distance

Klipper doesn't use steps per millimetre for the extruder. It uses rotation_distance in the [extruder] section of printer.cfg: the distance of filament moved per full turn of the motor. Because it is the inverse of steps per mm, the correction works the other way round:

new rotation_distance = current rotation_distance × actual length ÷ requested length

Enter your current rotation_distance under More options and the calculator gives the new one. Edit printer.cfg, save, and restart the firmware.

When to calibrate, and when not to

Calibrate E-steps after changing the extruder, the drive gear or the motor, after a firmware update that reset your settings, or when every filament seems to under- or over-extrude by the same amount. Don't use E-steps to fix a problem that only one filament has: that is what the flow % (extrusion multiplier) is for. Many direct-drive printers with dual-gear extruders, including Bambu Lab and recent Prusa models, are calibrated at the factory and rarely need this; on those, use the flow calibration in the slicer instead. The flow rate calculator covers that second step.

When the test gives odd results

After saving the new value, repeat the test once. The second run should land within about one millimetre of 100 mm. If it does, the extruder is calibrated, and remaining differences between filaments are a job for the flow %.

Tips for a reliable E-steps calibration: temperature, slow extrusion, measuring, repeating

E-steps questions

How do I calculate new E-steps?

Multiply the current E-steps by the requested length and divide by the length actually extruded: 93 × 100 ÷ 96 = 96.88.

What are the default E-steps of an Ender-3?

The stock Creality extruder is set to 93 steps/mm. Upgraded extruders differ a lot: geared BMG-style extruders are around 415, so start from the maker's value and calibrate.

How do I save E-steps permanently?

In Marlin, send M92 E followed by the new value, then M500. Check with M503.

Should I calibrate E-steps with the hotend hot?

Yes. Heat it to printing temperature, otherwise the filament can't flow and the extruder skips.

How do I calibrate E-steps in Klipper?

Change rotation_distance in printer.cfg: new value = old value × actual length ÷ requested length.

Is E-steps the same as flow rate?

No. E-steps calibrate the machine; flow % fine-tunes each filament. Set E-steps first.

Why does my extruder click during the test?

The filament can't flow fast enough. Check the temperature, extrude slower, and check the nozzle for a partial blockage.

More 3D printing tools

Updated November 2026 · How these tools work