Your slicer says it extruded 100 mm of filament. The printer thinks it pushed 100 mm. But the mark on your filament says only 93 mm moved through the extruder. That 7% error means every single print is under-extruded by 7% — thin walls, weak layer adhesion, and dimensions that do not match the model. E-step calibration fixes this at the hardware level, before slicer flow rate adjustments even come into play.
E-Steps vs Flow Rate: Two Different Things
This is the most common calibration confusion in 3D printing. E-steps and flow rate are not the same thing, and fixing one does not fix the other.
E-steps (Extruder Steps per Millimeter): A hardware calibration. It tells the firmware how many stepper motor steps it takes to move exactly 1 mm of filament through the extruder. An incorrectly set E-step value means the printer consistently over- or under-extrudes by a fixed percentage, regardless of filament type, temperature, or print speed. E-steps should be calibrated once per extruder — they do not change between filament brands.
Flow Rate (Extrusion Multiplier): A per-filament slicer setting. It compensates for the fact that different filaments have different densities, melt viscosities, and die-swell behaviors after leaving the nozzle. PLA at 210°C flows differently than PETG at 245°C even with identical E-steps. Flow rate is tuned per filament, per brand, sometimes per color — white PLA typically needs a slightly different flow rate than black PLA from the same manufacturer because titanium dioxide pigment changes the melt flow.
The correct calibration sequence is: E-steps first (once per extruder), then flow rate (per filament).
E-Step Calibration: The 100mm Method
What You Need
- Digital calipers (metric, 0.01 mm resolution)
- A permanent marker or a piece of tape
- The ability to send G-code commands (OctoPrint, Pronterface, or printer LCD with terminal)
Step 1: Mark and Measure
- Heat the hotend to your normal printing temperature. The extruder should be up to temperature — cold filament is stiffer and feeds differently.
- Using calipers, measure 120 mm of filament from the extruder inlet (where the filament enters the extruder body). Mark the filament at 120 mm with a fine permanent marker.
- Send
M83to enable relative extrusion mode. This prevents the printer from trying to use absolute coordinates for the E-axis. - Send
G1 E100 F100— this commands the extruder to push 100 mm of filament at a feed rate of 100 mm/min.
Step 2: Measure the Result
- Measure the distance from the extruder inlet to the 120 mm mark. If the printer extruded exactly 100 mm, the mark should now be exactly 20 mm from the inlet.
- Subtract:
120 mm - measured_remaining = actual_extruded. For example, if 27 mm remains, the printer extruded 93 mm. - Calculate the new E-step value:
new_e_steps = current_e_steps × (100 / actual_extruded)
If your current E-steps are 93.0 and you measured 93 mm extruded:
new_e_steps = 93.0 × (100 / 93) = 93.0 × 1.0753 = 100.0
Step 3: Apply and Verify
In Klipper, edit printer.cfg:
[extruder]
step_distance: 0.010000 # or rotation_distance for newer configs
In Marlin, send M92 E100.0 followed by M500 to save to EEPROM.
Run the 100 mm test again. You should measure between 99.5 and 100.5 mm extruded. If not, recalculate and repeat — the measurement converges after 1-2 iterations.
Step 4: Do Not Calibrate Through the Nozzle
Some guides tell you to extrude through the hot nozzle for E-step calibration. Do not do this. Nozzle back-pressure varies with temperature and filament type. You end up calibrating E-steps for that specific filament at that specific temperature — which defeats the purpose of separating E-steps from flow rate. Disconnect the Bowden tube or remove the nozzle, and extrude into free air. The goal is to measure the extruder’s mechanical accuracy, not the nozzle’s flow characteristics.
Flow Rate Calibration: The Hollow Cube Method
With E-steps dialed in, flow rate fine-tunes the actual volume of plastic laid down through the nozzle. The most reliable method is a single-wall hollow cube.
Step 1: Print the Test Cube
- In your slicer, create a 25 mm × 25 mm × 25 mm cube.
- Set Wall Line Count to 1 (single perimeter).
- Set Top Layers and Bottom Layers to 0.
- Set Infill Density to 0%.
- Set Flow Rate / Extrusion Multiplier to 1.00 (100%).
- Print in your target filament at your normal print temperature.
Step 2: Measure Wall Thickness
- Using calipers, measure the wall thickness at 4-5 points around the perimeter. Take the average.
- Compare to the extrusion width set in your slicer. If you set extrusion width to 0.45 mm and measure 0.48 mm, the printer is over-extruding by 6.7%.
- Calculate the new flow rate:
new_flow_rate = current_flow_rate × (expected_width / measured_width)
new_flow_rate = 1.00 × (0.45 / 0.48) = 0.9375 → 93.75%
Step 3: Verify
Set the new flow rate in your filament profile, re-print the cube, and re-measure. Your measured wall thickness should now be within ±0.02 mm of the expected width.
Flow Rate by Filament Type
| Filament | Typical Flow Rate Range | Notes |
|---|---|---|
| PLA (standard) | 95-100% | Most PLAs extrude close to nominal |
| PLA+ / Tough PLA | 93-98% | Slightly denser, often needs reduction |
| PETG | 92-97% | Higher die swell, typically needs 3-5% reduction |
| TPU | 100-105% | Flexible filament compresses in extruder, may need increase |
| ABS / ASA | 96-100% | Similar to PLA, check per brand |
| Nylon | 94-98% | High flow, can string at 100% |
Do not assume these values. Measure. Different colors of the same brand can vary by 2-3%. Our PETG print settings guide covers flow rate and first-layer interaction in detail.
Interaction with Linear Advance / Pressure Advance
E-steps and flow rate affect how Linear Advance (Marlin) and Pressure Advance (Klipper) behave. These features compensate for pressure buildup in the nozzle by adjusting extrusion at the start and end of lines. They assume the base extrusion is accurate.
If your E-steps are 7% low, the printer under-extrudes consistently. Pressure advance tries to compensate at line starts but cannot fix the steady-state under-extrusion. The result: good corners but thin walls. Calibrate E-steps first, flow rate second, then pressure/linear advance third. As we covered in our Linear Advance guide, the calibration order is non-negotiable — each step depends on the previous one being correct.
Common Mistakes & What Most Makers Get Wrong
1. Calibrating E-steps with the nozzle installed
Extruding through the hotend at 200°C adds back-pressure that varies with temperature, nozzle wear, and filament type. Your “calibrated” E-steps are actually calibrated for that specific combination. Next month, with a new nozzle and different filament, they are wrong again. Remove the Bowden tube or unscrew the nozzle and calibrate into free air. E-steps are a mechanical constant.
2. Confusing E-steps with flow rate and adjusting the wrong one
A print with gaps between walls gets posted to a forum, and the advice is “calibrate E-steps.” The E-steps were correct — the problem was flow rate for that specific filament. The user cranks E-steps up by 10%, fixes the PETG print, and then every PLA print is over-extruded. Use E-steps for mechanical calibration, flow rate for filament tuning. Keep them separate.
3. Measuring the 100 mm test with a ruler instead of calipers
A ruler has 1 mm markings and parallax error. You are trying to measure to 0.5 mm accuracy — a 0.5 mm error in measurement translates to a 0.5% E-step error. Digital calipers give you 0.01 mm precision for $15. Use them.
4. Not re-checking E-steps after an extruder hardware change
Swapping from the stock plastic extruder to a dual-gear metal extruder changes the effective drive gear diameter. A BMG-style extruder uses a 3:1 gear reduction — the E-steps jump from ~93 to ~415. If you swap extruders without recalibrating, your printer will push either 1/3 or 3x the expected filament. Run the 100 mm test after any extruder hardware change: new gears, new motor, new tension arm, new hotend with integrated extruder.
5. Setting flow rate once and never checking it
Nozzle wear changes flow characteristics over time. A brass nozzle that has printed 5 kg of PLA has a larger orifice than when new. The same G-code that was dimensionally accurate 500 print hours ago now over-extrudes because the nozzle is 0.45 mm instead of 0.40 mm. Re-check flow rate every 3-4 kg of filament or whenever dimensional accuracy drifts. A $3 nozzle replacement plus a quick flow rate cube is cheaper than scrapping dimensionally-critical parts.
⚠️ Safety Notice: E-step and flow rate calibration involves operating the printer with the hotend at printing temperature. Keep hands clear of moving axes and heated components during extrusion tests. Always allow the hotend to cool before handling or disassembling. Follow the manufacturer safety guidelines for your specific printer model.
The Bondtech BMG extruder upgrade includes hardened steel drive gears with a precise 3:1 ratio that holds E-step calibration across thousands of hours — no more drift from worn drive gears changing your effective diameter.
