When your printer receives a command to push out 100 mm of filament but actually delivers 91 or 108 mm, no other print setting will fix that — because temperature, speed and infill are all calculated on the assumption that extrusion itself is accurate. That accuracy comes down to e-steps: the number of stepper motor steps needed to move one millimeter of filament. If you're planning to run a flow calibration, e-steps need to be dialed in first — otherwise you're calibrating around a bug, not tuning the printer.
The whole procedure takes about 15 minutes and needs nothing more than calipers and a marker. It works the same way on Bowden and Direct Drive extruders, on Cartesian printers, CoreXY machines, and multi-spool systems. Below you'll find the starting settings, the formula, two measurement methods, and a table for specific hardware configurations.
Starting settings for e-steps calibration — table
| Parameter | Value | Comment |
|---|---|---|
| Length of the marked segment | 120 mm | Measured from the filament's entry point into the extruder |
| Commanded extrusion (test) | 100 mm | Standard test value, makes the percentage math easy |
| Nozzle temperature during the test | matched to the material, e.g. 200–220 °C for PLA | Filament needs to flow freely, with no resistance in the hotend |
| Number of measurement repeats | 3 | Average the results — a single reading is often unreliable |
| Acceptable deviation after calibration | ±0.5–1 mm per 100 mm | Below this threshold, the difference comes from friction, not e-steps |
| Mark location | right at the extruder's filament inlet | A shorter measured segment limits the effect of gear slip |
| Measuring tool | calipers + marker | A ruler introduces too much reading error at this scale |
| Current e-steps value | read via M503 or the printer's menu | This is your starting point for the formula below |
| Writing the new value | M92 E<value> | Takes effect immediately, but only in working memory |
| Saving to EEPROM | M500 | Without this command the new value disappears on restart |
You'll find full temperature values for specific filaments in the print temperature table — calibrate e-steps at the exact temperature you normally print that material at, not at a lower one.
Why e-steps matter more than you'd think
E-steps aren't just one setting among many — they're the reference point every other setting is built on. The slicer calculates how much material should flow along a given path, and the firmware translates that into a specific number of motor rotations. If that number is off by even a few percent, every wall, every infill layer, and every bridge comes out thicker or thinner than the model was designed for.
Incorrect e-steps can mimic dozens of other problems: a bad first layer, weak layer adhesion, infill that's too loose or too dense. Before you start blaming temperature, speed, or cooling, check this one setting first — often the rest of your configuration was fine all along.
It's also one of the few calibrations you do once per machine, not once per project. E-steps depend on the extruder's mechanics — gear ratio, motor size, microstepping — not on whatever model you happen to be printing. That's why it's worth doing right after assembling a printer or swapping an extruder, and then only revisiting it on the specific occasions described further down.
What e-steps are and how extrusion works, step by step
The stepper motor, microstepping, and gear ratio
The stepper motor in an extruder turns in discrete steps — typically 200 per full rotation, multiplied by the microstepping set in the driver (usually 16 or 32). The gear on the motor shaft has a defined effective circumference, and if the mechanism includes an additional gearbox (as most Direct Drive extruders with planetary reduction do), the whole thing is multiplied again by that ratio. E-steps are simply the result of this entire chain: the number of motor steps needed to push exactly 1 mm of filament.
Why the factory value is only a starting point
Manufacturers write a theoretical value into the firmware, calculated from nominal part dimensions. In practice, every individual gear, bearing, or motor has manufacturing tolerance, and wear adds up over time. A factory value of 95.0 steps/mm on an Ender 3, or 93.0 steps/mm on a CR-10, is a reasonable starting point, but the real value on your specific unit can differ by a few percent — and that's enough to make prints systematically under- or over-extrude.
How to measure e-steps — the marker method
Bowden extruder
Disconnect the Bowden tube from the hotend side and feed filament through until it pokes out of the tube. Trim it flush with the tube opening using a sharp blade. From the printer's screen or a control program, issue a command to extrude 100 mm, wait for the motor to finish, then measure with calipers the distance from the new end of the filament to the tube opening. If the extruder delivered exactly what you asked for, the filament end will line up with the opening. Every millimeter of difference is a millimeter of error over the 100 mm test. Repeat the measurement three times and average the result.
Direct Drive extruder
Heat the hotend to the temperature you'd normally print that material at — cold filament adds resistance and skews the result. Mark the filament with a pen exactly 120 mm from a fixed reference point on the extruder housing (e.g. the top edge of the inlet). Issue a command to extrude 100 mm. If the calibration is correct, the distance between the mark and the reference point should now be exactly 20 mm. More than 20 mm means under-extrusion (the extruder delivered too little), less than 20 mm means over-extrusion. As with the Bowden method, repeat the test three times.
For the test itself, it's best to use a filament with a stable, consistent diameter — for example Porima PLA — so the measurement isn't skewed by out-of-round material or diameter variance, and actually reflects the e-steps error.
The formula for new e-steps and how to calculate it
Once you've collected your measurements, use the same formula regardless of extruder type:
new e-steps = old e-steps × (requested length / actual length delivered)
Example: your current firmware value is 93 steps/mm, you requested 100 mm, and the extruder actually delivered only 95 mm. Plugging into the formula: 93 × (100 / 95) = 97.9 steps/mm. You'd typically round the new value to one decimal place — more precision doesn't matter in practice, since it's within the mechanical tolerance of the system anyway.
If the result differs from the old value by more than roughly ten percent or so, first check whether the gear is slipping on the filament (too loose a spring tension) — that's a more common cause of large discrepancies than an actual error in the factory calibration.
How to write the new value to the printer (M92)
Send the new value with the command M92 E<value>, for example M92 E97.9, through the G-code console in your slicer, the printer's panel, or an OctoPrint terminal. The change takes effect immediately, but only until the next restart.
Saving it permanently (EEPROM / M500)
For the value to survive a power cycle, send M500 right after M92 — this saves the current settings to EEPROM. You can check what's currently stored at any time with M503. Finally, repeat the full marker test — you should now get a result that falls within the tolerance from the table at the start of this article.
When it's worth recalibrating
E-steps don't drift from one day to the next, but there are situations where it's worth running the test again: after replacing an extruder or its gear, after swapping the stepper motor, after a major firmware update that changes microstepping, and if you notice a systematic under- or over-extrusion showing up across several different models at once (not just one file). Switching filament or color alone usually does NOT require recalibrating e-steps — that's more a job for flow calibration in the slicer.
Settings for popular configurations
| Configuration | Recommended test | What to watch for |
|---|---|---|
| Bowden | 120 mm segment, cut flush with the tube opening | Friction in a long tube increases over time — repeat the test every few months |
| Direct Drive | 120 mm mark close to the gear, 100 mm extrusion | The factory value depends on the gear ratio and can be several times higher than Bowden |
| CoreXY, enclosed chamber | Test at the target chamber temperature, not on a cold printer | Higher ambient temperature changes material viscosity in the hotend throat |
| Multi-spool system (AMS / CFS) | Calibrate on the feed path you're actively using | Each buffer path can have slightly different slip — check at least two colors |
Most common mistakes
Calibrating on a cold hotend. Cold filament adds resistance in the throat and lowers the measured value — always heat up to the material's working temperature first.
Taking a single measurement instead of an average. One test is often thrown off by caliper reading error — always average at least three repeats.
Skipping M500 after M92. Without saving to EEPROM, the new value reverts to the old one after the first restart.
Confusing e-steps with flow in the slicer. Flow in the slicer is a percentage correction at the software level; e-steps is a physical calibration of the motor — fix one, don't substitute it for the other.
Using too short a test segment. A test over 20–30 mm amplifies relative measurement error — stick to the 100–120 mm from the table above.
Ignoring a worn gear. A smoothed-out or clogged gear slips regardless of what e-steps value you've entered — clean or replace it first.
Calibrating just once, forever. The mechanism wears over time, so it's worth checking e-steps during major printer service, rather than assuming one calibration will last for years.
Frequently asked questions
How often should I calibrate e-steps?
Once after assembling the printer or making a significant change to the extruder, and after that only if you notice a systematic under- or over-extrusion showing up across several different prints.
Do e-steps depend on the type of filament?
Not to any meaningful extent — e-steps is a mechanical calibration of the motor and gear. Differences between materials (hardness, slipperiness) are better corrected with the flow setting in your slicer, not by changing e-steps.
Can I just fix flow in the slicer instead of changing e-steps?
You can, but that's a workaround rather than a fix — flow only applies within that one slicer and profile, while the underlying mechanical error persists in any other software or when controlling the printer directly via G-code.
What's the difference between e-steps and flow rate?
E-steps is the number of motor steps per millimeter, set once in the printer's firmware. Flow is a percentage multiplier applied by the slicer for each print, which you can change depending on the material or even a specific model.
What if I still have under- or over-extrusion after calibrating?
Check the extruder's spring tension, the condition of the gear, and whether the filament has an unusual diameter — these factors affect actual extrusion regardless of a correctly entered e-steps value.
Summary
Calibrating e-steps is one of those tasks you do once per hardware setup, and the payoff shows up in every print that follows — more accurate walls, predictable infill, and less guesswork every time you change a setting. The formula is simple, the test takes a few minutes, and the only tools you need are calipers and a marker.
If you're just setting up a new printer or you've swapped an extruder, it's worth using a reliable material for testing from the start — our PLA collection works well for exactly this kind of calibration, thanks to its consistent diameter and predictable behavior in the hotend.