How to Calibrate Klipper Pressure Advance: Complete Tuning Guide
What Is Klipper Pressure Advance?
Every FDM 3D printer has the same hidden problem: filament doesn’t start and stop flowing instantly. When the extruder motor begins pushing filament, there’s a delay before plastic actually exits the nozzle. When the motor stops, residual pressure keeps pushing filament out for a fraction of a second. This mismatch between commanded and actual flow causes blobs at corners, thin lines at the start of perimeters, and inconsistent extrusion during speed changes.
Klipper’s Pressure Advance (PA) feature solves this by predicting when the extruder needs to push more or less filament based on upcoming speed changes. It slightly over-extrudes before acceleration and under-extrudes before deceleration, so the actual flow at the nozzle stays constant. The result is dramatically cleaner corners, sharper details, and more consistent wall thickness.
The concept is the same as Marlin’s Linear Advance, but Klipper’s implementation is more precise because Klipper processes kinematics on a more powerful host computer rather than on the printer’s limited microcontroller.
Before You Start: Prerequisites
To calibrate Pressure Advance, you need:
- Klipper firmware with Moonraker and a frontend (Mainsail or Fluidd).
- A properly calibrated printer — e-steps, flow rate, bed leveling, and temperatures should all be dialed in first. PA can’t fix fundamental extrusion issues.
- Your usual filament loaded and at printing temperature. PA values differ between filament types and even between brands.
- Input shaping configured (recommended but not required). PA works best when vibration compensation is already handled.

Method 1: The Pressure Advance Tower Test (Recommended)
This is the most reliable calibration method. You print a single test object while Klipper automatically varies the PA value from bottom to top.
Step 1: Set Up the Test
In your Klipper console, set your starting point:
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005
The FACTOR value determines how quickly PA ramps up. For direct drive extruders, use .005. For Bowden setups, use .020 since Bowden tubes need much higher PA values.
Step 2: Slice and Print the Test Object
Download the standard Pressure Advance test model — a simple square tower with sharp corners. Slice it with these settings:
- Layer height: 0.2 mm (standard)
- Infill: 0% (we only care about the walls)
- Perimeters: 2
- Speed: Your normal printing speed (60–100 mm/s)
- No fan for first 3 layers
Critical: Remove any “linear advance” or “pressure advance” settings from your slicer’s start G-code. Klipper’s TUNING_TOWER command handles everything — slicer PA settings will interfere.
Start the print from your frontend after entering the TUNING_TOWER command.
Step 3: Read the Results
Examine the printed tower from bottom to top:
- Bottom layers (PA too low): Blobs at corners, rounded edges, excess material where the printhead decelerates.
- Middle layers (PA just right): Sharp corners, consistent line width, smooth walls.
- Top layers (PA too high): Thin or missing material at corners, gaps where the printhead changes direction, possible under-extrusion on straight sections.
Find the height where corners look sharpest and walls look smoothest. Measure that height with calipers, then calculate your PA value:
PA = START + (measured_height × FACTOR)
For example, if the best quality appears at 40 mm height with START=0 and FACTOR=.005:
PA = 0 + (40 × .005) = 0.200

Method 2: Manual Line Test (Quick Alternative)
If you want faster results, Klipper’s built-in line test prints alternating slow and fast line segments while ramping PA:
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005
Then print a simple rectangle with two perimeters and no infill. Look at where the line width stays most consistent between the slow and fast sections. That’s your optimal PA value.
This method is less visual than the tower but prints in under 10 minutes.
Applying Your Pressure Advance Value
Once you’ve found the optimal value, add it to your printer.cfg:
[extruder]
pressure_advance: 0.045
pressure_advance_smooth_time: 0.04
Typical PA values by extruder type:
| Extruder Type | Typical PA Range |
|---|---|
| Direct Drive (short path) | 0.02–0.10 |
| Direct Drive (long path) | 0.05–0.15 |
| Bowden (short tube, <30cm) | 0.20–0.50 |
| Bowden (long tube, >50cm) | 0.50–1.20 |
If your calculated value falls way outside these ranges, something’s off with your test setup. Re-check your factor value and print speed.
The Smooth Time Parameter
The pressure_advance_smooth_time setting controls how aggressively PA adjusts flow. The default of 0.040 seconds works well for most setups. Lower values (0.020) make PA more responsive but can cause vibrations in the extruder motor. Higher values (0.060+) smooth out PA adjustments but reduce effectiveness on sharp corners.
Leave it at 0.040 unless you have a specific reason to change it. If your extruder motor buzzes or sounds rough after enabling PA, increase smooth time to 0.060.
Per-Filament Pressure Advance Values
Different filaments compress differently in the hotend, so PA needs recalibrating for each material:
- PLA: Usually the lowest PA value. Stiff filament, low compression.
- PETG: Slightly higher than PLA. Softer material compresses more.
- TPU: Much higher PA values. Flexible filament compresses significantly in the filament path.
- ABS/ASA: Similar to PLA but can vary with temperature.
Store your calibrated values and switch between them using your slicer’s filament start G-code:
SET_PRESSURE_ADVANCE ADVANCE=0.045 ; PLA
SET_PRESSURE_ADVANCE ADVANCE=0.065 ; PETG
SET_PRESSURE_ADVANCE ADVANCE=0.350 ; TPU
Troubleshooting Pressure Advance Issues
Extruder motor clicking or skipping after enabling PA: Your PA value is too high, causing the extruder to retract too aggressively at speed changes. Lower the value by 20–30% or increase smooth time.
Corners still have blobs: PA is too low, or your test print speed didn’t match your actual printing speed. Re-run the calibration at the speed you actually print at.
Gaps at the start of perimeters: This is usually a retraction issue, not a PA issue. Make sure your retraction length and speed are calibrated separately.
Inconsistent extrusion on long straight lines: PA shouldn’t affect straight sections at constant speed. If it does, your smooth time is too low and PA is over-compensating. Increase smooth_time to 0.060.
PA test tower looks the same top to bottom: Your factor is too low — the PA range covered in the print wasn’t wide enough. Double the factor value and reprint.
PA vs. Linear Advance: What’s the Difference?
Klipper’s Pressure Advance and Marlin’s Linear Advance solve the same problem with the same basic approach. The key differences:
- Processing power: Klipper runs on a Pi with far more computing power than Marlin’s 8-bit or 32-bit MCU. This allows higher PA values and smoother operation.
- Compatibility: Marlin’s LA has versioning issues (LA 1.0 vs 1.5 vs 2.0) and doesn’t work on all boards. Klipper’s PA works universally.
- Integration: Klipper’s PA works seamlessly with input shaping. Marlin’s LA can conflict with other firmware features.
- Tuning: Klipper’s TUNING_TOWER makes calibration trivial. Marlin requires generating custom G-code test patterns or using external tools.
If you’re already on Klipper, PA is strictly better. If you’re on Marlin and happy with it, Linear Advance provides similar benefits — but consider switching to Klipper for the easier calibration workflow.
Final Thoughts
Pressure Advance is one of those settings that separates acceptable prints from excellent ones. The calibration process takes about 20 minutes and one test print. The improvement — clean corners, consistent walls, no blobs — is visible on every single print you make afterward.
Calibrate it once per filament type, save the values in your slicer profiles, and forget about it. Your corners will thank you.