Pressure Advance / Linear Advance: What It Does and How to Tune
If you have ever looked at a 3D print and noticed blobs at corners, bulging at the start of lines, or thin spots where the printer changes direction, the culprit is almost certainly filament pressure lag. Pressure advance (called linear advance in Marlin) is the firmware feature that fixes this, and tuning it properly is one of the highest-impact calibrations you can do.
This guide explains what pressure advance does, why it matters, and walks you through the tuning process on both Klipper and Marlin.
The Problem: Filament Pressure Lag
Your extruder pushes filament through a long melt zone and out a small nozzle. This creates pressure in the system, and that pressure takes time to build up and release. This lag causes two problems:
At the start of a line (acceleration): The extruder starts pushing filament, but it takes time for pressure to build up enough to push plastic out the nozzle at the correct rate. Result: under-extrusion at the beginning of lines.
At the end of a line (deceleration): The extruder stops pushing, but the built-up pressure continues to force filament out the nozzle. Result: over-extrusion at the end of lines, creating blobs at corners and direction changes.
Without pressure advance, the printer assumes filament output is instantaneous — push the motor, get filament. In reality, there is a spongy, compressible column of filament in the melt zone that absorbs and releases energy with a delay.
How Pressure Advance Fixes It
Pressure advance compensates for the delay by adjusting the extruder motor timing:
- Before a move starts: The extruder begins pushing slightly early to pre-build pressure, so filament is flowing at the correct rate when the nozzle starts moving.
- Before a move ends: The extruder backs off slightly early to release pressure, so the flow stops precisely when the nozzle stops.
The result: consistent extrusion width throughout the entire line, including at corners and direction changes. Corners are sharp instead of blobby, and line starts are full instead of thin.
The amount of compensation is controlled by a single value — the pressure advance coefficient (called K factor in Marlin). Higher values mean more compensation. The correct value depends on your specific setup: filament type, nozzle size, temperature, and bowden tube length.
Klipper: Tuning Pressure Advance
Klipper's implementation is called "pressure_advance" and is generally considered more effective than Marlin's linear advance, especially at higher speeds.
Step 1: Print the Tuning Tower
Klipper provides a built-in tuning method. You can use the pressure advance tuning tower or print a dedicated test model.
The tuning tower prints a tall, thin model where the pressure advance value changes with height. You examine the print to find the height where corners are cleanest and line width is most consistent, then calculate the corresponding PA value.
Run this command before starting the print:
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005
Step 2: Print and Examine
Print a simple rectangular tower at moderate speed. As the print progresses, the PA value increases from 0 at the bottom.
Look for:
- Bottom of the print (low PA): Blobs at corners, bulging where direction changes
- Middle (correct PA): Clean corners, consistent line width
- Top (high PA): Gaps at corners, thin lines at the start of moves (over-compensation)
Step 3: Calculate and Apply
Measure the height where corners look best. Calculate PA:
pressure_advance = start + (measured_height * factor)
Apply it in your printer.cfg:
[extruder]
pressure_advance: 0.045
Typical values:
- Direct drive: 0.02 - 0.08
- Bowden tube: 0.3 - 0.9
Step 4: Fine-Tune
Print a calibration cube or a model with sharp corners. If corners still have slight blobs, increase PA. If corners have slight gaps, decrease PA. Adjust in increments of 0.005 for direct drive or 0.05 for Bowden.
Marlin: Tuning Linear Advance
Marlin's implementation is called "linear advance" (LIN_ADVANCE) and uses a K factor instead of the pressure_advance parameter name.
Enabling Linear Advance
Linear advance must be enabled in Marlin's firmware configuration. If your printer does not have it enabled by default, you need to compile Marlin with LIN_ADVANCE enabled in Configuration_adv.h. Many modern printers ship with it enabled.
Check if it is active by sending:
M900
If you get a response showing the K value, it is enabled.
Tuning the K Factor
The easiest method is the Marlin K-factor calibration pattern generator. This web tool generates G-code that prints lines at different K values. You examine the output and pick the K value that produces the straightest lines.
Alternatively, print a tuning tower similar to the Klipper method:
M900 K0 ; start value
; The slicer or a post-processing script gradually increases K
Applying the K Factor
Once you find the best K value, apply it:
M900 K0.05 ; for direct drive
M900 K0.6 ; typical for Bowden
M500 ; save to EEPROM
You can also set it per-filament in your slicer's start G-code.
Pressure Advance Values by Setup
These are starting points. Your optimal value will vary:
| Setup | PA (Klipper) | K (Marlin) | |-------|-------------|------------| | Direct drive, PLA | 0.02 - 0.06 | 0.02 - 0.06 | | Direct drive, PETG | 0.04 - 0.08 | 0.04 - 0.08 | | Direct drive, ABS | 0.03 - 0.07 | 0.03 - 0.07 | | Bowden (short tube), PLA | 0.2 - 0.5 | 0.2 - 0.5 | | Bowden (long tube), PLA | 0.5 - 1.0 | 0.5 - 1.0 | | Bowden, PETG | 0.3 - 0.7 | 0.3 - 0.7 |
The Bowden tube length has the biggest impact. Longer tubes mean more compression and higher PA values.
What Pressure Advance Affects
Understanding what PA changes helps you recognize when it needs adjustment:
Corners: The most visible effect. Proper PA produces sharp, clean corners without blobs or gaps. This is where most people notice the improvement.
Line width consistency: PA keeps the extrusion width constant even as the print head accelerates and decelerates. Without it, lines are thinner at the start and wider at the end.
Top surfaces: Consistent extrusion from PA improves top surface quality by preventing the pattern of under/over extrusion that creates a bumpy surface.
Speed capability: With PA tuned, you can print faster because the extrusion keeps up with speed changes. Without PA, faster printing amplifies the pressure lag artifacts.
Combining with Input Shaping
Pressure advance and input shaping are complementary:
- Input shaping eliminates ghosting (mechanical vibration artifacts)
- Pressure advance eliminates blobbing and under-extrusion (filament pressure artifacts)
Both should be tuned for optimal results. Tune input shaping first, then pressure advance. See our input shaping guide for that side of the equation.
Troubleshooting
Extruder skipping after enabling PA:
- PA value is too high. Reduce it.
- PA causes the extruder to make rapid back-and-forth movements. If your extruder motor cannot keep up, it skips steps.
- Reduce maximum extrusion speed or acceleration.
No visible improvement:
- The PA value may be too low. Try increasing it.
- Check that PA is actually enabled (send M900 on Marlin or check Klipper's config).
- The test may be printing too slowly for PA to matter. PA effects are most visible at higher speeds with more aggressive acceleration.
Different results with different filaments:
- This is normal. Each filament has different compressibility. Set PA per-filament in your slicer profiles.
PA works on test prints but not on real models:
- Make sure your slicer is not overriding the PA value in start G-code.
- Some slicers have their own pressure compensation features that can conflict with firmware PA.
Recommended Calibration Tools
- Pressure Advance tuning tower on Printables — Find test models on 3DSearch
- Marlin K-factor calibration tool — Online G-code generator
- Klipper documentation — Official tuning guide
- A good set of digital calipers for measuring line width
The Bottom Line
Pressure advance is one of those calibrations that, once set correctly, improves every single print you make. It takes about 30 minutes to tune and the improvement is permanent (until you change your hotend, extruder, or Bowden tube setup).
If you have not tuned pressure advance on your printer, do it today. Print a calibration cube before and after, and you will immediately see the difference in corner quality. Combined with input shaping, it unlocks the full speed potential of modern 3D printers.
For calibration models and test prints, use 3DSearch to find the best options across Printables, Thingiverse, and MakerWorld.
Time to tune those corners.
Search for related models on 3DSearch
Find 3D printable models across Printables, Thingiverse, and Cults3D in one search. Get AI-powered slicer settings for your printer.
Search 3DSearch →