Voron Extruder Calibration — Rotational Distance, Flow Rate, and E-Steps
Calibration Extruder Klipper
Extruder calibration is the single most impactful numerical calibration on any Voron printer. An error of just 5% in your extrusion rate creates visible artifacts: gaps between perimeters, dimensional inaccuracy on press-fit parts, or a rough top surface that requires post-processing. On Voron printers that run at speeds above 200mm/s, extrusion accuracy matters even more — errors compound at higher flow rates. Last updated: May 2025.
This guide covers everything you need to calibrate your Voron's extruder in Klipper: the difference between rotational distance and Marlin-style e-steps, calculating rotational distance for specific Voron extruders (CW1, CW2, Galileo 2, Orbiter v2), the 100mm extrusion test, flow rate tuning using the single-perimeter wall method, distinguishing between rotational distance and flow adjustments, and troubleshooting under- and over-extrusion. We include specific numbers for the most popular Voron extruders so you have a reliable starting point.
Rotational Distance vs Marlin E-Steps
If you're coming from Marlin, you're used to setting E_STEPS_PER_MM — a single number
that tells the firmware how many stepper motor steps equal one millimeter of filament. Klipper uses
a different concept: rotational distance, which is the distance the filament moves
per full rotation of the stepper motor. The relationship is:
Marlin e-steps: steps_per_mm = (motor_steps × microsteps) / (rotation_distance)
Klipper rotation_distance: rotation_distance = (motor_steps × microsteps) / steps_per_mm
The advantage of Klipper's approach: rotational distance is a physical property of your extruder hardware (drive gear diameter, gear ratio), not a tuned value. If you know your extruder's gear ratio and drive gear circumference, you can calculate the theoretical rotational distance and never touch it again. In Marlin, e-steps are almost always tuned empirically because the formula separates steps, microsteps, and gear geometry — making it harder to reason about.
Formula for rotational distance from first principles:
rotation_distance = <full_steps_per_rotation> × <microsteps> / <steps_per_mm>
Where full_steps_per_rotation is typically 200 (common NEMA17 steppers),
microsteps is your driver microstep setting (usually 16 for TMC2209/2240), and
steps_per_mm is what you'd enter in Marlin. Alternatively, from hardware:
rotation_distance = <drive_gear_circumference> × <gear_ratio>
drive_gear_circumference = π × <effective_drive_gear_diameter>
The effective drive gear diameter accounts for the fact that the filament is pressed into the gear teeth — it's not the outer diameter of the gear, but slightly less. This is why the empirical 100mm test always gives a more accurate result than the theoretical calculation.
Rotational Distance for Common Voron Extruders
These are the recommended starting rotational distance values for the most popular Voron extruders. These values assume standard 200-step motors and 16× microstepping in Klipper:
- Clockwork 1 (CW1): 7.50 — uses standard BMG gear set with 3:1 gear ratio and approximately 8mm effective drive gear diameter. This is the original Voron extruder. The value 7.50 is a common empirical average; expect to tune ±0.2.
- Clockwork 2 (CW2): 22.678 — the CW2 uses a different gear arrangement with a 50:10 gear ratio and a larger hobbed gear. The theoretical value is π × 8.0 × (50/10) = 12.566 × 5 = 22.678. This is one of the most consistent values across CW2 builds. Use 22.678 as your starting point.
- Galileo 2 (G2): 33.5 — the Galileo 2 uses a unique planetary gear system with a total ratio of approximately 6.75:1. The effective drive gear diameter is about 7.95mm. This gives theoretical: π × 7.95 × 6.75 = 24.987 × 6.75 = 33.5. Note that the Galileo 2 standard gear set vs the "high gear" option have different ratios — for the standard G2, use 33.5. For the high-gear version, use approximately 42.0.
- Orbiter v2: 7.45 — the Orbiter v2 uses an integrated 3.5:1 planetary gearbox with an 11mm effective drive gear diameter. Theoretical: π × 11 / 3.5 = 34.557 / 3.5 = 9.87. Wait — that doesn't match the common value. The lower empirical value (7.45 vs 9.87 theoretical) is because the Orbiter v2's drive gear has a smaller effective diameter due to the gear teeth geometry and filament compression. Always calibrate empirically for the Orbiter. Start at 7.45.
Note on Galileo 1 vs Galileo 2: The original Galileo has a different planetary ratio than the Galileo 2. If you have a first-generation Galileo, use a starting value of approximately 32.0. The Galileo 2 changed the gear reduction and drive gear profile, accounting for the 1.5mm difference.
Step-by-Step 100mm Extrusion Test
This is the definitive method for empirically measuring your extruder's rotational distance. It accounts for all real-world factors: gear engagement depth, filament diameter variation, gear wear, and temperature effects.
Prerequisites
- Hotend heated to your standard printing temperature (245°C for ABS/ASA)
- Filament loaded through the extruder as it would be during printing
- Calipers that measure to 0.01mm resolution (digital calipers preferred)
- A marker (fine-tip Sharpie) and a ruler fixed near the extruder entry point
The Procedure
- Mark the filament: With the filament loaded and the hotend at temperature, use your marker to make a mark on the filament exactly 120mm above the extruder's entry point. Use the top of the extruder body or the PTFE tube inlet as your reference.
- Command an extrusion: In Klipper's console (Mainsail/Fluidd), enter the following commands in sequence:
G91 ; relative positioning G1 E100 F60 ; extrude 100mm at 60mm/min (1mm/s) G90 ; back to absolute positioning
The slow speed (60mm/min = 1mm/s) prevents the extruder from skipping steps due to back pressure in the hotend. If your extruder clicks or skips at this speed, your hotend may be partially clogged or your temperature is too low.
- Measure the remaining distance: After extrusion, measure from the extruder entry point to your mark. If your measurement is exactly 20mm (120 original minus 100 extruded), your rotational distance is correct. If it's, say, 24mm (only 96mm extruded), you need to adjust.
- Calculate the new rotational distance:
actual_extruded = 120 - measured_remaining new_rotation_distance = current_rotation_distance × (100 / actual_extruded) Example: measured_remaining = 24mm actual_extruded = 120 - 24 = 96mm current_rotation_distance = 22.678 (CW2) new_rotation_distance = 22.678 × (100 / 96) = 22.678 × 1.0417 = 23.62
- Update and verify: Replace the
rotation_distancein your[extruder]section ofprinter.cfg, runSAVE_CONFIGorFIRMWARE_RESTART, and repeat steps 1-4. After adjustment, the measured remaining distance should be 20mm ± 0.5mm. Perform the test three times and average the result for best accuracy.
Pro tip: Perform this test at both low speed (1mm/s) and at your typical print speed (5-10mm/s extrusion speed, which corresponds to roughly 80-120mm/s print speed on a Voron). If the rotational distance differs significantly between speeds, you have a flow limitation — either your hotend can't keep up, or your extruder is slipping at high speeds.
Flow Rate Tuning — The Single-Perimeter Wall Method
Once rotational distance is correct, the next step is tuning flow rate (also called extrusion multiplier in your slicer). These are different adjustments:
- Rotational distance — a firmware setting that defines how much filament the extruder moves per motor rotation. It's a linear calibration: 100mm commanded should equal 100mm moved. Tune this first and never touch it again.
- Flow rate / extrusion multiplier — a slicer setting that compensates for die swell, filament diameter variation, and layer geometry. It's the ratio of expected wall thickness to actual wall thickness. Tune this per filament brand and color.
The Single-Perimeter Wall Method
- Slice a hollow cube (0% infill, 0 top layers, 1 wall, 0 bottom layers). Use a 20×20×20mm cube.
- Print at your standard speed and temperature. The result is a single-walled square tube.
- Measure the wall thickness at four points on each side (16 total measurements) using calipers. Average the results.
- Compare to your nozzle diameter. With a 0.4mm nozzle and extrusion width = 0.4mm in the slicer, the wall should measure exactly 0.4mm.
flow_correction = expected_width / measured_width new_flow = current_flow × flow_correction Example: Nozzle: 0.4mm Extrusion width: 0.4mm Measured wall: 0.44mm Flow correction = 0.4 / 0.44 = 0.909 Current flow = 100% (1.0) New flow = 1.0 × 0.909 = 0.909 → 91% in slicer
- Update your slicer's extrusion multiplier for that filament profile and re-test. The wall should now measure 0.40 ± 0.02mm.
Important: If your measured wall is significantly thicker than the extrusion width (more than 0.08mm difference), re-check your rotational distance first. Flow rate adjustments should be within 85-115%. If you need to go outside this range, something else is wrong — partial clog, incorrect filament diameter in the slicer, or a worn drive gear.
Flow Rate vs Pressure Advance — Don't Confuse Them
A common mistake is using flow rate to compensate for poor pressure advance tuning. Here's how to tell them apart:
- Over-extrusion everywhere: All walls are thick, top surfaces are rough, dimensions are consistently large. Fix: reduce flow rate.
- Over-extrusion only at corners: Corners bulge but straight walls measure correctly. Fix: tune pressure advance.
- Under-extrusion at seams: Gaps at the start/end of perimeters, but walls measure correctly elsewhere. Fix: reduce pressure advance or increase smooth_time.
- Inconsistent extrusion across the print: Some layers look fine, others are under-extruded. Fix: check for heat creep, extruder skipping, or filament diameter variation.
Hotend-Specific Flow Rate Differences
Different hotends have different thermal characteristics that affect the amount of die swell and thus the optimal flow rate. Here are starting flow rates for common Voron hotend/extruder combinations:
- Revo Voron (0.4mm nozzle) + CW2: 0.95-0.98 — the Revo's short melt zone reduces die swell. Start at 0.95.
- Dragon UHF (0.4mm nozzle) + CW2: 0.98-1.02 — the longer melt zone increases die swell. Start at 1.0.
- Rapido HF (0.4mm nozzle) + Galileo 2: 0.95-1.00 — high-flow hotends tend to need slightly lower flow due to better melt uniformity. Start at 0.97.
- Mosquito (0.4mm nozzle) + Orbiter v2: 0.96-1.00 — the Mosquito's consistent melt zone gives predictable results. Start at 0.98.
- Standard V6 (0.4mm nozzle) + CW1: 0.98-1.05 — older style hotend with more variability. Start at 1.0.
These values change with nozzle size. A 0.6mm nozzle typically needs 2-5% more flow than a 0.4mm nozzle because the wall-to-pressure ratio changes. A 1.0mm nozzle can need 5-15% more flow due to the larger melt zone and increased die swell.
Filament-Specific Flow Rates
Different filament materials flow differently through the same hotend. After calibrating for one brand of ABS, switch filament brands and re-test — you may find 5-10% variation:
- PLA: 0.90-1.00 — low die swell, tends to be slightly over-extruded at 1.0. Many Voron users run PLA at 0.92-0.95.
- ABS/ASA: 0.95-1.02 — the most common material on Vorons. 1.0 is usually close but test per brand. eSun ABS+ often needs 0.97; Polymaker ASA needs 1.0.
- PETG: 0.94-0.98 — PETG has more die swell than ABS due to its lower viscosity. Start at 0.95.
- PC (Polycarbonate): 0.96-1.02 — high temperature, moderate die swell. Start at 0.98.
- PA/Nylon: 0.92-0.98 — nylon absorbs moisture and expands, which can change flow. Keep filament dry and start at 0.95.
- TPU/TPE: 0.85-0.95 — flexible filaments compress in the extruder, leading to apparent over-extrusion. Start low at 0.88.
Troubleshooting Under- and Over-Extrusion
Symptoms of Under-Extrusion
- Gaps between perimeter lines when looking at the top surface
- Weak layer adhesion — parts break along layer lines
- Thin or missing walls on the first layer
- Extruder clicking or skipping during constant-speed moves
- Dimensions are smaller than expected (e.g., 19.7mm cube instead of 20mm)
Fixes (check in order):
- Verify rotational distance via 100mm test — this is the #1 cause of systematic under-extrusion
- Increase hotend temperature by 5-10°C — too-cold filament creates higher backpressure
- Check for partial nozzle clog — do a cold pull or replace the nozzle
- Reduce print speed or increase hotend temperature — you may be exceeding the hotend's max flow rate
- Check extruder tension — CW2 tension arm should be snug but not tight. If the gear slips on retractions, increase tension
- Verify filament diameter in your slicer — 1.75mm filament set as 1.70mm in slicer causes 5% under-extrusion
Symptoms of Over-Extrusion
- Rough top surface with raised ridges between perimeter lines
- Dimensions are larger than expected (e.g., 20.3mm cube instead of 20mm)
- Elephant's foot on the first layer (corners bulge outward)
- Blobs on external surfaces during travel moves
- Nozzle dragging through previously deposited filament on top layers
Fixes (check in order):
- Reduce flow rate in the slicer by 2-5% and re-test
- Verify rotational distance — if it's too high, you're extruding more filament than commanded
- Check for incorrect filament diameter in slicer — 1.75mm filament set as 1.80mm causes 5% over-extrusion
- Reduce hotend temperature — too-hot filament has lower viscosity and flows more freely, causing die swell
- Increase pressure advance — some apparent over-extrusion is actually corner bulging from low PA
Calibration Sequence Summary
Here is the recommended order for extruder calibration on a Voron. Each step depends on the previous one:
- Set initial rotational distance from the tables above based on your extruder type
- 100mm extrusion test — measure and correct rotational distance empirically
- Verify at print speed — repeat 100mm test at 5-10mm/s to check for flow limitation
- Single-perimeter wall test — measure wall thickness and set flow rate in slicer
- Pressure advance tuning — see our pressure advance guide for the full procedure. PA is set independently of flow rate
- First layer calibration — set Z offset and verify first layer adhesion
- Calibration cube — print a 20mm cube and verify dimensions ±0.1mm in X, Y, Z
Once set, rotational distance should remain stable for the life of your extruder. Record the final value
in your printer.cfg with a comment noting the extruder type and date:
[extruder]
rotation_distance: 22.678 ; CW2 - calibrated 2025-05-01
gear_ratio: 50:10
microsteps: 16
full_steps_per_rotation: 200
nozzle_diameter: 0.400
Store your per-filament flow rates in your slicer profiles, not in printer.cfg. This way, changing filament automatically loads the correct flow rate without editing config files.