Disclaimer: This is an independent resource site.
Not affiliated with the Voron project or its development team.
Flow rate (also called extrusion multiplier) is one of the most impactful calibration parameters for any Voron printer. Getting it right means clean dimensional accuracy, strong layer adhesion, and surfaces free of over-extrusion artifacts. This guide covers the theory, the process, and the common pitfalls specific to Voron printers.
---
## What is Flow Rate?
Flow rate controls how much filament the extruder pushes through the nozzle. The slicer calculates extrusion based on:
- Layer height
- Line width
- Filament diameter
- Nozzle diameter
The **flow rate multiplier** (usually 0.9–1.1) fine-tunes this calculation. A value of 1.0 means "use exactly the calculated amount." Values above 1.0 push more filament; values below push less.
**Why not always 1.0?**
Real-world extrusion is never perfect. Factors include:
- Filament diameter tolerance (1.75mm nominal, 1.70–1.80mm actual)
- Hotend resistance (different nozzles, different flow characteristics)
- Pressure advance interaction
- Extruder gear wear or tension
---
## Voron-Specific Factors
### Direct Drive Advantage
All Voron printers use direct-drive extruders (Clockwork, Galileo, Sherpa, Orbiter, etc.). This means:
- Faster retraction response
- More precise extrusion control
- Less filament compression
- Flow rate is more consistent at different speeds
### Hotend Considerations
| Hotend | Flow Characteristics |
|--------|---------------------|
| Dragon (standard/UF) | Consistent, wide range |
| Rapido (HF/UHF) | High flow, may need up to 1.05 multiplier at high speeds |
| Revo Voron | Good mid-range, consistent |
| Mosquito / Magnum | Very consistent, rare flow issues |
| Stealthburner + CW2 | Good flow, depends on gears |
### Extruder Gearing
Voron extruders use gear ratios that affect flow consistency:
| Extruder | Gear Ratio | Notes |
|----------|-----------|-------|
| Clockwork 1 | 1:1 plus BMG gears | Standard |
| Clockwork 2 (CW2) | Integrated BMG | Very consistent |
| Galileo G2 | 2.5:1 planetary | Excellent torque |
| Galileo G2SA | 2.5:1 planetary + 1:1 SA | Super high flow |
| Sherpa Mini | 1:1 plus BMG gears | Compact, consistent |
| Orbiter 1.5/2.0 | 3:1 helical | Very consistent |
---
## Tools You'll Need
- Digital calipers (0.01mm resolution recommended)
- OrcaSlicer, PrusaSlicer, or SuperSlicer
- A flat, clean build surface
- The same filament you plan to print with
- Patience and a notebook (or digital notes)
---
## Step-by-Step Calibration
### Step 1: Verify Rotational Distance
Before tuning flow rate, ensure your extruder rotational distance is correct. This is the foundation:
1. Disconnect Bowden tube or remove filament path
2. Mark filament 120mm above extruder entry
3. Heat nozzle to printing temperature
4. Send `G91` then `G1 E100 F60` (extrude 100mm at 1mm/s)
5. Measure actual extruded distance
**Rotational distance formula:**
new_rotation_distance = current_rotation_distance x (actual_extruded / requested_extrude)
Example: If rotation distance is 7.710, you asked for 100mm, and measured 98mm:
new = 7.710 x (98 / 100) = 7.556
Update in `printer.cfg` and restart.
### Step 2: Calibration Print — Single Wall Test
This is the gold standard for flow rate calibration.
**Model:** A hollow cube (no top, no infill) with 1 or 2 walls, 20x20x20mm.
**OrcaSlicer settings:**
- Layer height: 0.20mm (for 0.4mm nozzle)
- Line width: 0.44mm (extrusion width = 110% of nozzle)
- Wall count: 1
- Top layers: 0
- Infill: 0%
- Bottom layers: 3 (just for first layer adhesion)
**Print and measure:**
1. Print the cube
2. Wait for it to cool
3. Measure wall thickness at 4 points on each side (12+ measurements total)
4. Average the measurements
**Formula:**
new_flow = current_flow x (target_width / measured_width)
Example: Target width 0.44mm, measured average 0.47mm:
new_flow = 1.0 x (0.44 / 0.47) = 0.936
### Step 3: Flow Rate Tower
Many slicers include a flow rate calibration tower that varies flow at each segment.
**In OrcaSlicer:**
1. Create a calibration print: **Calibration > Flow Rate**
2. Set range: 0.85 to 1.15 in 0.02 or 0.025 increments
3. Print and inspect each segment
**What to look for:**
| Symptom | Flow Rate Issue |
|---------|----------------|
| Rounded, bulging corners | Too high |
| Rough top surface | Too high |
| Layer lines visible between segments | Too low |
| Gaps between wall lines | Too low |
| Smooth, flat top with crisp corners | Just right |
### Step 4: OrcaSlicer Built-in Calibration
OrcaSlicer has an excellent built-in flow calibration:
1. Click **Calibration > Flow Rate** (or **Calibration > Pass 1**)
2. OrcaSlicer generates a test print with varying flow rates
3. After printing, use the built-in measurement tool
4. Enter your measured wall thickness
5. OrcaSlicer suggests the new flow rate
This is the easiest and most reliable method for Voron printers.
---
## Pressure Advance Interaction
Flow rate and pressure advance interact. The calibration order matters:
### Correct Order
1. **Rotational distance** — Foundation
2. **Pressure advance** — Tune first (PA changes effective flow)
3. **Flow rate** — Fine-tune after PA is set
4. **Retraction** — Tune last
### Why PA First
Pressure advance slightly changes actual extrusion volume:
- **High PA values (0.06+):** May reduce effective flow on small features
- **Low PA values (0.01–0.03):** Minimal flow impact
- **Without PA:** Flow rate must compensate for ooze/blobs that PA would normally handle
**If you calibrate flow rate first, then add PA, you may need to re-calibrate flow.**
### Practical Approach
# Step 1: Set a reasonable PA (even if uncalibrated)
SET_PRESSURE_ADVANCE ADVANCE=0.045
# Step 2: Calibrate flow rate with this PA active
# Step 3: Fine-tune PA (it might change flow slightly)
# Step 4: Re-check flow rate if PA changed significantly
# (e.g., if PA went from 0.045 to 0.030, expect ~1% flow change)
---
## Per-Filament Flow Rates
Different filaments need different flow rates. Build profiles:
### With Save Variables (Klipper)
[gcode_macro SAVE_FLOW_RATE]
description: Save current flow rate for a filament type
gcode:
{% set filament = params.FILAMENT|default("default") %}
{% set flow = params.FLOW|default(1.0) %}
SAVE_VARIABLE VARIABLE=flow_{filament} VALUE={flow}
M117 Flow rate {flow} saved for {filament}
[gcode_macro APPLY_FLOW_RATE]
description: Apply saved flow rate
gcode:
{% set filament = params.FILAMENT|default("default") %}
{% set flow = printer.save_variables.variables["flow_" ~ filament] | default(1.0) %}
M221 S{flow * 100}
M117 Flow set to {"%.3f"|format(flow)} for {filament}
**In PRINT_START:**
[gcode_macro PRINT_START]
gcode:
# ... setup ...
{% set ftype = params.FILAMENT_TYPE|default("PLA") %}
{% set flow = printer.save_variables.variables["flow_" ~ ftype] | default(1.0) %}
M221 S{flow * 100}
M117 Using flow {flow} for {ftype}
### Slicer Profiles
Maintain separate slicer profiles per filament:
PLA: flow 0.95, PA 0.045, temp 220
ABS: flow 1.00, PA 0.035, temp 250
PETG: flow 0.92, PA 0.030, temp 240
TPU: flow 0.98, PA 0.020, temp 230
---
## Typical Flow Rate Ranges for Voron Extruders
| Filament | CW2 / Clockwork | Galileo | Sherpa | Orbiter |
|----------|:--------------:|:-------:|:-----:|:-------:|
| PLA | 0.92–0.98 | 0.90–0.96 | 0.93–0.98 | 0.92–0.97 |
| ABS | 0.95–1.02 | 0.93–1.00 | 0.96–1.02 | 0.95–1.00 |
| PETG | 0.88–0.95 | 0.87–0.93 | 0.89–0.95 | 0.88–0.94 |
| ASA | 0.95–1.02 | 0.93–1.00 | 0.96–1.02 | 0.95–1.00 |
| Nylon | 0.95–1.02 | 0.93–1.00 | 0.96–1.02 | 0.95–1.00 |
| PC | 0.97–1.05 | 0.95–1.02 | 0.98–1.05 | 0.97–1.03 |
| TPU | 0.95–1.02 | N/A | 0.95–1.02 | 0.95–1.00 |
**Note:** These are starting ranges. Every filament roll is different. Always calibrate for each new spool.
---
## Advanced: Full Extrusion System Calibration
### Step 1: E-Steps (Rotational Distance)
Already covered above. This is non-negotiable for accuracy.
### Step 2: Filament Diameter Measurement
Measure filament diameter at 10+ points along 2 meters:
Measurements: 1.74, 1.75, 1.76, 1.74, 1.75, 1.75, 1.76, 1.74, 1.75, 1.75
Average: 1.749mm
Update slicer's filament diameter from 1.75 to 1.749 for this spool. (Small difference, but every bit helps.)
**Pro tip:** Store the actual diameter in `save_variables`:
SAVE_VARIABLE VARIABLE=fd_eSun_PLA_PRO_value=1.749
### Step 3: Nozzle Size Verification
Measure your nozzle orifice with a pin gauge or drill bit:
- 0.4mm nozzles often measure 0.38–0.42mm
- Update slicer if significantly off (±0.02mm matters)
### Step 4: Extrusion Width Settings
For Voron printers with 0.4mm nozzles, common extrusion widths:
| Feature | Width | Notes |
|---------|-------|-------|
| First layer | 0.44mm (110%) | Better adhesion |
| Walls | 0.42mm (105%) | Standard for .4mm |
| Sparse infill | 0.44mm (110%) | Faster infill |
| Solid infill | 0.40mm (100%) | Denser top layers |
| Internal bridges | 0.40mm (100%) | Better bridging |
### Step 5: Full Sequence Print
After individual calibrations, print a stress test:
- A Benchy or Voron cube
- Clean surfaces, good overhangs, sharp corners
- Measure with calipers — dimensional accuracy within ±0.1mm is excellent
---
## Troubleshooting Flow Issues
### Over-Extrusion Signs
**Symptoms:**
- Rounded corners (elephant's foot on corners)
- Rough top surface (pillowing or ridges)
- Visible blobs at layer seams
- Dimensional measurements larger than expected
- Gaps between infill and walls
**Fixes:**
1. Reduce flow rate by 2–5%
2. Check filament diameter (might be undersized)
3. Verify rotational distance
4. Check pressure advance (too high can cause over-extrusion at corners)
### Under-Extrusion Signs
**Symptoms:**
- Gaps between wall lines
- Weak or brittle parts
- Visible layer separation
- Thin walls (measure less than expected)
- First layer not bonding
**Fixes:**
1. Increase flow rate by 2–5%
2. Check for partial nozzle clog
3. Verify extruder tension
4. Check filament diameter (might be oversized)
5. Increase nozzle temperature (affects flow viscosity)
6. Check for heat creep in hotend
### Inconsistent Extrusion
**Symptoms:**
- Alternating thick/thin layers
- Periodic underextrusion
- Surface roughness varies
**Fixes:**
1. Check extruder gear condition (worn gears slip)
2. Verify extruder tension (too tight grinds filament)
3. Check filament quality (out-of-round, inconsistent diameter)
4. Increase extruder current (skipping steps?)
5. Check for debris in extruder path
6. Verify PTFE tube is fully seated in hotend
### First Layer Flow Issues
**Symptoms:**
- First layer too thin (transparent)
- First layer too thick (ridges)
- Poor adhesion despite correct Z offset
**Fixes:**
For a transparent first layer (under-extruded):
First layer flow: 1.05–1.10 (105–110% of normal flow)
First layer width: 0.48mm (120% of nozzle)
For a ridged first layer (over-extruded):
First layer flow: 0.90–0.95
First layer width: 0.42mm
---
## Slicer-Specific Settings
### OrcaSlicer
OrcaSlicer has the best Voron flow calibration tools:
1. **Calibration > Flow Rate** — Generates the test print
2. **Calibration > Pass 1** — Quick single-wall test
3. **Filament Settings > Overrides > Extrusion multiplier** — Per-filament control
4. **Advanced > Flow ratio** — Alternative to extrusion multiplier
**Recommended settings:**
Filament Settings > Overrides:
Extrusion multiplier: [calibrated value]
Quality > Precision:
Wall generator: Arachne (better variable-width walls)
### PrusaSlicer / SuperSlicer
1. **Filament Settings > Extrusion multiplier** — Set calibrated value
2. **Print Settings > Extrusion width** — Keep as 0.44mm for 0.4mm nozzle
3. **Layer and perimeters > Quality (speed)** — Higher quality gives more consistent flow
### Cura
1. **Material > Flow** — Set percentage (e.g., 95%)
2. **Experimental > Enable "Use Arachne"** — For better wall handling
3. **Special modes > Print thin walls** — For fine features
---
## Integrating Flow Rate into PRINT_START
Combine calibration with your print start macro for full filament tracking:
[gcode_macro PRINT_START]
description: Start a print with per-filament flow settings
gcode:
# ... homing, heating, mesh ...
{% set ftype = params.FILAMENT_TYPE|default("PLA") %}
{% set fbrand = params.FILAMENT_VENDOR|default("Generic") %}
{% set flow_key = "flow_" ~ fbrand ~ "_" ~ ftype %}
{% set flow = printer.save_variables.variables[flow_key] | default(None) %}
{% if flow is not None %}
M221 S{flow * 100}
M117 Flow: {".0f"|format(flow * 100)}%
{% else %}
# Try generic type key
{% set generic_key = "flow_" ~ ftype %}
{% set generic_flow = printer.save_variables.variables[generic_key] | default(1.0) %}
M221 S{generic_flow * 100}
M117 Flow: {".0f"|format(generic_flow * 100)}% (generic)
{% endif %}
---
## Maintaining Calibration Over Time
### When to Re-Calibrate
- **New filament spool** — Even same brand, different batch
- **Nozzle change** — Different size or brand
- **Extruder change** — Different gear ratio
- **Hotend change** — Different melt zone characteristics
- **After 100+ print hours** — Extruder gears wear
### Keeping a Calibration Log
Track your results:
| Date | Filament | Brand | Nozzle | Flow | PA | Temp | Notes |
|------|----------|-------|--------|------|----|------|-------|
| 2025-04-15 | PLA | eSun | 0.4 | 0.95 | 0.045 | 220 | Great results |
| 2025-04-20 | ABS | Polymaker | 0.4 | 0.98 | 0.035 | 250 | Needs drying |
| 2025-05-01 | PETG | Overture | 0.4 | 0.92 | 0.030 | 240 | Stringing reduced |
Store this digitally with `save_variables` or as a comment in your `printer.cfg`.
---
## Common Myths
### Myth: Flow Rate Should Always Be 1.0
**False.** Nearly every printer and filament combination benefits from slight adjustment. 0.92–0.98 is normal for most Voron setups with quality filaments.
### Myth: Higher Flow = Stronger Parts
**False.** Over-extrusion causes dimensional inaccuracy, poor inter-layer bonding, and can actually weaken parts by introducing voids and stress concentrations.
### Myth: Calibrate Flow Once and Forget
**False.** Filament batches, nozzle wear, and extruder condition all change over time. Periodic re-calibration keeps quality consistent.
### Myth: OrcaSlicer's Auto-Cal Replaces Manual Tuning