How to Calibrate E-Steps and Flow Rate for Dimensional Accuracy
Introduction
E-step calibration ensures your extruder pushes exactly the right amount of filament when told to move 100mm. Flow rate calibration (also called extrusion multiplier) fine-tunes the amount of plastic deposited on the print based on your specific filament and nozzle combination. Together, these two calibrations eliminate under-extrusion, over-extrusion, dimensional inaccuracy, and weak layer adhesion. If your 20mm calibration cube measures 20.4mm, your holes are too tight, or your top surfaces look rough, this guide will fix it. The process works for both Marlin and Klipper firmware.
What You Need
- Digital calipers (0.01mm resolution)
- Permanent marker
- Ruler or measuring tape
- Filament to calibrate (each type may differ slightly)
- Access to your printer's firmware configuration
Part 1: E-Step Calibration
What Are E-Steps?
E-steps (extruder steps per millimeter) define how many stepper motor steps are needed to push 1mm of filament through the extruder. The theoretical value depends on your extruder gear ratio and hob diameter, but real-world factors (gear bite depth, filament diameter variation, backlash) mean calibration is always needed.
Step 1: Prepare
- Heat your hotend to the normal printing temperature for your filament
- Remove the Bowden tube from the extruder (or feed directly if direct drive)
- This lets filament extrude freely without resistance from the hotend
- Straighten a section of filament and cut a clean, flat end
Step 2: Mark and Measure
- Feed filament until it emerges from the extruder
- Use your marker to draw a line exactly 120mm from the extruder inlet
- Make a second mark at 20mm from the inlet (reference point)
Step 3: Extrude 100mm
- From your printer's LCD or host software, extrude exactly 100mm of filament
- In Marlin: Control > Motion > Move Axis > Extruder > 100mm
- In OctoPrint/Mainsail: Send G1 E100 F100 (after heating and homing)
Step 4: Measure Remaining Filament
- Measure the distance from the extruder inlet to your 120mm mark
- If exactly 20mm remains: your e-steps are perfect
- If more than 20mm remains: you under-extruded (e-steps too low)
- If less than 20mm remains: you over-extruded (e-steps too high)
Step 5: Calculate New E-Steps
New E-Steps = Old E-Steps × (100 / Actual Extruded)Example:
- Old e-steps: 93.0
- Actual extruded: 96mm (24mm remains from 120mm mark)
- New e-steps: 93.0 × (100 / 96) = 96.875
Step 6: Update Firmware
Marlin
- LCD: Control > Motion > E-Steps/mm > set new value
- Or send M92 E96.875
- Save with M500
Klipper
- Edit printer.cfg: rotation_distance: 7.71 (in [extruder])
- Or use Klipper's calculator: rotation_distance = full_rotation_length / (gear_ratio × e-steps)
- Restart Klipper
Step 7: Verify
- Repeat the 120mm mark and 100mm extrude test
- You should now have exactly 20mm remaining
- Repeat until you are within 0.5mm of target
Part 2: Flow Rate (Extrusion Multiplier) Calibration
E-steps calibrate the extruder's mechanical accuracy. Flow rate calibrates how much plastic actually reaches the print — accounting for filament diameter variation, density, and compression in the hotend.
Step 1: Print a Single-Wall Cube
- Download a 20x20x20mm hollow cube (2 bottom layers, 0 top layers, 1 wall, 0 infill)
- Slice with your normal settings but set wall count to exactly 1
- Use the extrusion width equal to your nozzle width (typically 0.4mm)
- Print the cube
Step 2: Measure Wall Thickness
- Let the cube cool completely
- Use calipers to measure wall thickness at 4 points (one on each face)
- Do not squeeze the calipers — just touch the walls gently
- Average the 4 measurements
Step 3: Calculate New Flow Rate
New Flow Rate = Old Flow Rate × (Target Width / Measured Width)Example:
- Target wall width: 0.40mm (nozzle size)
- Measured average: 0.44mm
- Old flow rate: 100%
- New flow rate: 100 × (0.40 / 0.44) = 90.9%
Step 4: Update Slicer
- Cura: Material > Flow = 90.9%
- PrusaSlicer/OrcaSlicer: Filament Settings > Extrusion Multiplier = 0.91
- Bambu Studio: Filament > Flow Ratio = 0.91
Step 5: Re-Print and Verify
- Print another single-wall cube with the new flow rate
- Measure again — should be very close to 0.40mm
- Iterate once more if needed (usually one iteration is enough)
Part 3: Dimensional Accuracy Test
With e-steps and flow rate calibrated, verify overall dimensions:
- Print a 20x20x20mm solid cube (3 walls, 15% infill, 3 top layers)
- Measure X, Y, and Z with calipers
- Target: 20.00mm ±0.1mm on X and Y
- If dimensions are off, check:
- XY steps/mm (Marlin) or rotation_distance (Klipper) for X and Y axes
- First layer squish (too close = wider dimensions)
- Cooling (insufficient cooling causes corners to bulge)
Part 4: Calibrating for Different Filaments
Different filaments have different densities and diameters. Create a profile for each:
Filament Diameter Compensation
If your filament measures 1.72mm instead of 1.75mm:
Area ratio = (1.75²) / (1.72²) = 1.035Multiply your flow rate by 1.035 (or 3.5% more flow).
Recommended Flow Rates by Material
MaterialTypical Flow Rate PLA90-100% PETG92-98% ABS95-100% TPU100-110% CF-filled100-105%Troubleshooting
Inconsistent Wall Thickness
- Check extruder gear tension — loose gears slip
- Check for partial nozzle clog
- Verify filament path is unobstructed
- Dry your filament — wet filament expands and contracts unpredictably
Under-Extrusion After Calibration
- Nozzle partially clogged — do a cold pull or replace nozzle
- Filament diameter varying significantly — measure in 5 places and average
- PTFE liner degraded (in all-metal hotends this is not an issue)
Over-Extrusion on First Layer Only
- First layer is squished too much — raise Z-offset by 0.05mm
- First layer flow is often set separately in slicer — check that value
Pro Tips
- Calibrate e-steps once per extruder hardware setup. Only recalibrate if you change gears, motor, or extruder assembly.
- Calibrate flow rate for every new filament brand/type. Store values in slicer profiles.
- Measure filament diameter in 5 places and average. Enter the average in your slicer for better accuracy.
- Print slowly for calibration tests: 30-40mm/s ensures other variables do not interfere.
- Measure at room temperature: Hot prints expand — measurements will be inaccurate until cooled.
- Use sharp caliper jaws: Dull or damaged calipers give inconsistent readings.
Conclusion
E-step and flow rate calibration are the foundation of accurate, reliable 3D printing. E-steps ensure your extruder is mechanically accurate — pushing exactly the commanded length of filament. Flow rate ensures the right volume of plastic reaches your print — accounting for real-world filament variation. Together they produce dimensionally accurate parts with clean surfaces, proper fit, and strong layer bonds. Spend an hour calibrating these two values and every print for the next year will be better.
Related Guides
- Pressure Advance Calibration for Better Print Quality
- How to Calibrate Input Shaper and Pressure Advance in Klipper
- OrcaSlicer Complete Guide: Every Setting Explained for Maximum Print Quality
- Klipper Bed Mesh Calibration
- Anycubic Kobra 3 Complete Setup Guide: Unboxing, Calibration, and First Print
- Klipper Quad Gantry Level and Z-Tilt Adjust: Getting a CoreXY Gantry Actually Level
- How to Print TPU and Flexible Filaments on Any FDM Printer
- How to Install Klipper on Any 3D Printer: Complete Setup Guide