Voron Pressure Advance Guide — Perfect Corners and Seam Quality
Calibration Klipper Tuning
Pressure Advance (PA) is the single most impactful software tuning parameter on any Voron printer. When set correctly, it eliminates bulging corners, sharpens seams, and improves dimensional accuracy across all print speeds. When wrong, it produces either rounded, blobby corners (PA too low) or under-extruded seams and gaps (PA too high). Getting PA right separates a good Voron print from an exceptional one. Last updated: May 2025.
This guide covers everything you need to master Pressure Advance on your Voron: what PA does at a physical level, the calibration tower method using Klipper's TUNING_TOWER command, interpreting results, per-filament profiles, smooth_time tuning, the interaction between PA and input shaper, and troubleshooting common mistakes. Whether you run a direct drive Revo Voron on a V2.4 or a Bowden setup on a Switchwire, you'll find the exact procedure here.
What Pressure Advance Does
Pressure advance compensates for the physical behavior of molten filament under pressure. Here's what happens without PA:
- Acceleration phase: When the toolhead speeds up, the extruder must push extra filament to pressurize the melt zone before the hotend reaches full speed. Without PA, the first part of every move is underextruded — you get a gap at the start of each perimeter.
- Deceleration phase: When the toolhead slows down or stops (at corners), the pressurized filament continues to ooze out. Without PA, corners bulge outward because excess filament is deposited as the pressure dissipates.
- PA solves both: Klipper calculates the required extruder acceleration to maintain constant nozzle pressure. It adds extra extrusion during acceleration (to fill the melt zone) and retracts slightly during deceleration (to relieve pressure). The result: consistent extrusion regardless of toolhead speed changes.
PA vs Linear Advance: Klipper's Pressure Advance is the successor to Marlin's Linear Advance. PA is more accurate because it operates in the time domain (not the position domain) and compensates for the full acceleration profile, not just speed changes. Klipper PA is the gold standard for extrusion compensation.
Why PA Matters for Voron Printers
Voron printers operate at higher speeds and accelerations than typical printers, which makes PA especially critical:
- High accelerations amplify errors: At 10k-20k mm/s^2 acceleration, the pressure dynamics in the nozzle are extreme. Without PA, corners on a V2.4 at 10k acceleration will bulge by 0.2-0.4mm — enough to ruin press-fit tolerances on functional parts.
- Bowden vs direct drive: Bowden setups (older Vorons or converted printers) need much higher PA values (0.4-0.8) because the long PTFE tube acts as a spring — pressure changes take longer to propagate. Direct drive setups (Stealthburner, Revo Voron, Dragon UHF) need lower values (0.02-0.08) because the extruder is right at the hotend. The tuning procedure is identical, but the target values differ by an order of magnitude.
- Voron hotend specific: Different Voron hotends have different melt zone volumes. The Revo Voron (short melt zone, high thermal efficiency) needs slightly lower PA than a Dragon UHF or Mosquito. The Phaetus Dragon has a longer melt zone and may need 10-20% higher PA than a Revo.
- Speed range: Vorons print at 60-500mm/s depending on the model and material. A properly tuned PA value should work across the full speed range. If it only works at low speeds, your smooth_time or nozzle temperature is wrong.
The PA Calibration Tower Method
The standard method for tuning PA in Klipper uses a test print with the TUNING_TOWER command. Here's the procedure:
Step 1: Print a Calibration Model
You'll need a hollow cube or a PA calibration tower. The best model is a 20x20mm hollow cube with no infill, 2 walls, and 2 top/bottom layers. Or use a dedicated PA calibration tower from the Voron Designs repository. The key requirement: a straight vertical wall where you can see corner quality at each PA value.
Step 2: Configure the Tuning Tower
Add these commands to your start g-code in your slicer. The following example tunes PA from 0 to 0.1 over 30mm of Z height, which is appropriate for direct drive:
; PA calibration tower — direct drive range (0 to 0.1)
; Adjust PARAMETER=PRESSURE_ADVANCE and START=0, FACTOR=0.0033 for direct drive
; For Bowden: START=0, FACTOR=0.033 (range 0 to 1.0 over 30mm)
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=0.0033
If you're using the TUNING_TOWER in your slicer's start g-code, you can also use the KAMP (Klipper Adaptive Mesh and Purging) scripts which automate the PA tower process:
; KAMP-style PA tuning (requires PA_Tower.cfg)
PA_TOWER START=0 FACTOR=0.0033
Step 3: Print and Observe
Slice the model at 100mm/s, 0.2mm layer height, with the acceleration set to at least 5,000 mm/s^2 (higher is better — 10k is ideal). Print the model and watch the corners:
- Bottom of the tower (PA too low): The corners will bulge outward. The bulge is most visible on the outside corner where two walls meet. You'll see a distinct "fat" look at each corner — the material oozes out as the nozzle decelerates.
- Middle of the tower (PA in range): The corners become sharp and crisp. The walls are straight and meet at a clean 90-degree angle. You might still see a tiny seam line, but no bulging.
- Top of the tower (PA too high): The corners look "starved" or under-extruded. You may see gaps at the seam, thin corners, or even holes where the nozzle pulls away from the wall during deceleration. The surface quality degrades and the wall may look rough.
Step 4: Measure and Set Your PA Value
Once the print finishes, find the Z height where the corners look best (sharp, no bulge, no starvation). The PA value at that height is:
PA_value = START + (best_Z_height * FACTOR)
Example: START=0, best at 15mm with FACTOR=0.0033
PA_value = 0 + (15 * 0.0033) = 0.0495
Set this in your printer.cfg:
[extruder]
pressure_advance: 0.050
For Bowden setups with START=0 and FACTOR=0.033, if the best point is at 18mm: PA_value = 0 + (18 * 0.033) = 0.594
Per-Filament PA Profiles in Klipper
Different filaments need different PA values. A single PA value in printer.cfg is a compromise. Klipper supports per-filament PA via the g-code macro system or through the SET_PRESSURE_ADVANCE command in your slicer start g-code:
; In your slicer start g-code — set PA per filament material
; PLA profile
SET_PRESSURE_ADVANCE ADVANCE=0.045
; PETG profile
SET_PRESSURE_ADVANCE ADVANCE=0.055
; ABS profile (most common for Voron parts)
SET_PRESSURE_ADVANCE ADVANCE=0.050
; TPU profile
SET_PRESSURE_ADVANCE ADVANCE=0.080
You can also define PA in your filament start g-code within your slicer profiles. In SuperSlicer or Orca Slicer, add the SET_PRESSURE_ADVANCE command to the "Filament start G-code" field. This way, PA is automatically set when you change filaments — no manual config file editing required.
Recommended starting PA values for Voron direct drive (Revo, Dragon, Mosquito):
- PLA: 0.030-0.050 — PLA is less viscous, needs less PA
- ABS/ASA: 0.045-0.070 — ABS needs more PA due to lower melt flow index
- PETG: 0.040-0.060 — similar to ABS but with more stringing tendency
- PET-CF: 0.060-0.090 — CF filaments are stiff and need more pressure compensation
- TPU/TPE: 0.070-0.120 — flexible filaments are compressible, need the most PA
- PC: 0.050-0.080 — polycarbonate has high viscosity, moderate PA
Smooth_Time Parameter — Fine-Tuning PA Response
The smooth_time parameter controls how Klipper smooths the PA signal. It's probably the most misunderstood PA parameter:
- Default value: 0.040 (40 milliseconds). This is a good starting point for most Voron setups.
- Too low (0.010-0.020): PA reacts instantly to speed changes. This can cause "ringing" in the extruder — the extruder motor makes a buzzing sound on sharp corners, and you may see artifacts in the print from the jerky extrusion signal.
- Too high (0.080+): PA responds sluggishly. You lose the benefit — corners will bulge because the pressure compensation arrives too late.
- How to tune: Print the same PA calibration tower but vary
smooth_timeinstead. SetSET_PRESSURE_ADVANCE ADVANCE=<your_value>in the start g-code, thenTUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=SMOOTH_TIME START=0.010 FACTOR=0.005. Look for the height where the extruder sounds smooth (not buzzing) and the corners remain sharp. For most Vorons with direct drive, 0.035-0.045 is the sweet spot.
PA vs Input Shaper — How They Interact
Pressure Advance and Input Shaper are the two pillars of Klipper tuning, and they interact in important ways:
- PA first, then IS: Always tune PA before input shaper. PA changes the extrusion pattern, which can change the vibration characteristics of the print. If you tune input shaper first and then change PA, you may need to re-tune input shaper.
- PA reduces ringing too: Don't expect PA to fix ringing (ghosting) — that's input shaper's job. But a poorly tuned PA value can cause ringing-like artifacts. If you see diagonal lines on a vertical surface that look like ringing, first check your PA — it might be too high, causing the extruder to oscillate.
- High PA + high acceleration: At very high accelerations (15k-20k), a high PA value can cause the extruder to skip steps. This happens because the extruder must accelerate so quickly that it can't keep up with the pressure demand. If you see extruder skipping on corners at high speed, reduce acceleration or reduce PA slightly.
- PA measurement vs calibration: Klipper's
MEASURE_PRESSURE_ADVANCEcommand (available in Klipper 0.12+) uses the load cell or accelerometer to auto-tune PA. This is the most accurate method and is recommended if you have a Klicky or Voron Tap probe with the appropriate setup. The measurement method finds the exact PA value in minutes rather than the 20-30 minutes of trial-and-error printing.
Common PA Mistakes and Troubleshooting
- PA too high → under-extrusion at seams: The most common mistake. High PA retracts too much on deceleration, starving the seam. Solution: reduce PA by 0.010-0.020 and re-test. If the seam is still under-extruded at PA=0, your smooth_time is too low — increase it to 0.050.
- PA too low → bulging corners: The second most common issue. Increase PA in 0.005 increments (direct drive) or 0.05 increments (Bowden) until the corners are sharp. If you need PA above 0.12 for direct drive, check your hotend — the nozzle or heat break might be partially clogged.
- PA works at low speed but not high speed: This usually means your smooth_time is too high. At high speeds, the PA signal needs to react faster. Lower smooth_time from 0.040 to 0.025 and re-tune PA.
- PA works at high speed but not low speed: This means PA is too high or smooth_time is too low. The extruder is over-correcting on low-speed moves. Try increasing smooth_time to 0.055.
- Different PA needed for outer vs inner perimeters: This is normal. Outer perimeters run at the set speed; inner perimeters often run faster. You can set different PA values for outer perimeters in Klipper 0.11+ using
SET_PRESSURE_ADVANCE EXTRUDER=extruder PRESSURE_ADVANCE_LOOKAHEAD_TIME=0.010. Most users find that the standard PA value works well for both when tuned correctly. - PA causes extruder clicking on retractions: Your PA value is too high for your retraction speed. Either reduce PA or reduce retraction speed to 30-40mm/s. A common Voron retraction setting (0.5-1.0mm at 35mm/s) is compatible with PA values up to 0.10.