How to Calibrate Extruder E-Steps: The Definitive 100mm Marlin Guide
Stop chasing mystery under-extrusion and dimensional inaccuracies. Calibrate your extruder motor steps per millimeter with mathematical precision using standard G-code commands.
1. What E-Steps Actually Means (And Why Defaults Lie)
Extruder Steps per Millimeter—universally abbreviated as E-steps—is the fundamental mechanical constant stored in your 3D printer's firmware (such as Marlin, RepRapFirmware, or Klipper) that dictates how many discrete motor micro-steps are required to push exactly one millimeter of raw filament through the extruder drive gear.
Most entry-level Cartesian printers (such as the Creality Ender 3 series) ship from the factory pre-configured with a nominal value of roughly 93 steps/mm. This number is calculated purely on paper assuming a generic brass drive gear with a theoretical effective pitch diameter of ~10.8mm driven by a 1.8° stepper motor (200 full steps per revolution) running at 1/16 microstepping. In practice, physical reality intervenes: drive gear teeth bite into filament at varying depths, gear tooth machining tolerances vary by fractions of a millimeter, and spring tension alters the effective driving circumference. If your E-steps are uncalibrated, your printer is fundamentally guessing how much plastic enters the hotend, rendering all subsequent slicer tuning futile.
Never calibrate E-steps to fix visual over-extrusion or under-extrusion on a finished printed model. E-steps is a purely mechanical measurement of filament transit through the extruder gear, completely independent of nozzle diameter, hotend temperature, or filament type.
2. The Step-by-Step 100mm Calibration Procedure
Calibrating E-steps requires nothing more than a pair of digital vernier calipers, a fine-tip permanent marker or metallic pen, and an interactive G-code terminal (via OctoPrint, Pronterface, or our built-in Web Serial controller).
Follow this rigorous procedure to eliminate measurement error:
1. Prepare the Filament Path: Straighten a section of rigid filament (PLA works best because it resists buckling under drive gear pressure) and feed it into the extruder until it begins entering the PTFE Bowden tube or hotend throat. 2. Mark 120mm from Extruder Entry: Place the jaws of your digital calipers firmly against the extruder intake flange (or runout sensor exit) and make a crisp, distinct line exactly 120.0 mm along the filament away from the extruder. 3. Heat the Hotend (Bypass Cold Extrusion): Marlin firmware includes a safety interlock (`prevent_cold_extrude`, typically set at 170°C). Heat your hotend to your standard filament printing temperature (e.g., 205°C for PLA) to melt plastic freely, or disconnect the Bowden tube from the extruder output to measure free-air feed with zero backpressure. 4. Execute Extrusion via G-Code: Set relative positioning and command 100mm of slow extrusion: `M83` (set extruder to relative mode) `G1 E100 F100` (extrude 100mm at 100 mm/min, or ~1.67 mm/sec) 5. Measure Remaining Filament: Once the motor comes to a complete halt, measure the distance from the extruder intake face to your mark. If exactly 100mm was pulled, the remaining distance will be exactly 20.0 mm. If the remaining distance is 27.0 mm, your extruder only fed 93.0 mm (120 - 27).
The E-Steps Ratio Formula
- ✓Actual Extruded (mm) = 120 - Remaining Distance to Mark
- ✓Formula: New E-Steps = Current E-Steps × (100 / Actual Extruded mm)
- ✓Worked Example: If Current E-Steps = 93.0 and Actual Extruded = 94.2mm, New E-Steps = 93.0 × (100 / 94.2) = 98.73 steps/mm.
3. Direct Firmware Commands: Query, Set, and Save to EEPROM
Once you have calculated your corrected steps per millimeter, committing the value directly to the 3D printer's motherboard EEPROM takes three straightforward serial commands in your terminal:
1. Query Current Settings (`M503`): Send `M503` in your terminal to report active firmware parameters. Look for the line starting with `echo: M92 X... Y... Z... E...`. The number following `E` is your active E-steps value (e.g., `E93.00`).
2. Set New Steps Per Millimeter (`M92`): Input your freshly calculated value using `M92 E[value]`. For example: `M92 E98.73`. The controller updates its volatile memory immediately.
3. Permanently Save to EEPROM (`M500`): Crucial step: if you reboot or power-cycle the printer without saving, the firmware will discard your adjustment. Send `M500`. The printer will respond with `echo:Settings Stored (EEPROM)`. Verify by sending `M501` (reload from EEPROM) followed by `M503` to confirm your new E-steps persist across reboots.
Many budget 32-bit Creality boards (e.g., Ender 3 v2 with 4.2.2/4.2.7 boards) do not have genuine onboard EEPROM chips; they emulate EEPROM by writing an 'EEPROM.DAT' file to your microSD card. Always leave an SD card inserted when issuing M500, or your settings may vanish upon restarting.
4. Bowden vs Direct Drive vs Geared Dual-Drive Extruders
Different extruder architectures demand vastly divergent E-step ranges due to physical gear reduction ratios and drive wheel diameters:
- Standard Single-Gear Bowden (Ender 3, CR-10): Uses a single drive gear pressed onto an un-geared NEMA 17 motor shaft pushing against an idler bearing. Typical range: 93 to 105 steps/mm. Highly susceptible to filament slipping when nozzle backpressure increases. - Geared Dual-Drive Extruders (Bondtech BMG, Titan, Voron Clockwork 2, Orbiter): Features a mechanical reduction gear ratio (typically 3:1 to 3.5:1 on BMG, 5:1 on Sherpa Mini, and 7.5:1 on Orbiter v2) with opposing hobbed gears that grip both sides of the filament. Because of the gear reduction, the stepper motor must rotate multiple times per millimeter extruded, yielding typical E-steps around 415 to 425 steps/mm (BMG) or 690 steps/mm (Orbiter v2). - Direct Drive Pancake Steppers: Modern lightweight direct-drive toolheads use high-torque pancake stepper motors paired with fine gear teeth. They eliminate Bowden hysteresis and flexible filament buckling, but require precise current (`run_current`) and E-step tuning to prevent motor overheating.
Typical Baseline E-Steps by Extruder Type (1/16 Microstepping)
- ✓Creality Stock Single-Gear (1.8° motor): ~93.0 steps/mm
- ✓Creality Dual-Gear Upgrade: ~139.0 to 145.0 steps/mm
- ✓E3D Titan (3:1 Reduction): ~418.5 steps/mm
- ✓Bondtech BMG / Clone (3:1 Dual-Drive): ~415.0 steps/mm
- ✓Voron Clockwork 2 (50:10 gear ratio): ~450.0 steps/mm
- ✓LDO Orbiter v2.0 (7.5:1 gear ratio): ~690.0 steps/mm
- ✓Micro-Swiss Dual Gear Direct Drive: ~130.0 steps/mm
5. E-Steps vs Slicer Flow Rate: The Critical Distinction
A common pitfall among 3D printer operators is conflating E-steps with Slicer Flow Rate (known as Extrusion Multiplier in PrusaSlicer/OrcaSlicer/SuperSlicer).
Here is how professional print technicians maintain separation of concerns:
- E-Steps is a Hardware Physical Constant: It represents the exact mechanical circumference and tooth mesh of the extruder drive gear. Once calibrated accurately for your extruder assembly, E-steps should NEVER change unless you physically replace the stepper motor, alter microstepping jumpers, swap drive gears, or alter gear reduction ratios. - Flow Rate is a Polymer Rheology Adjustment: Different materials (and even different colors of the same polymer) exhibit unique physical properties. Flexible TPU compresses under drive gear teeth, reducing effective diameter; brittle PLA does not compress; and foaming filaments (LW-PLA) expand inside the melt zone. Slicer Flow Rate accounts for these polymer-specific variations on a per-filament-profile basis without touching the hardware calibration.
Calibrate your E-steps ONCE with the Bowden tube detached or with standard rigid PLA. Afterward, dial in individual spools using a 2-wall calibration cube or OrcaSlicer flow rate pass. Mixing the two calibration layers causes endless diagnostic headaches.