Pressure Advance / Linear Advance Calibration Guide
Pressure advance (Klipper) and linear advance (Marlin) eliminate blobs at corners and inconsistent line width. This guide shows you how to calibrate it on any printer.
When your printer pushes filament into the hotend, pressure builds up in the melt zone. When the nozzle decelerates (like approaching a corner), that pressure is released and extra filament oozes out — causing blobs, zits at seams, and thicker lines on corners.
Pressure advance (Klipper) and linear advance (Marlin/RepRapFirmware) compensate for this by:
- Pre-pressurizing the nozzle slightly before acceleration
- Releasing pressure slightly before deceleration
The result: consistent line width, clean corners, and no blobs at seams.
Does Your Printer Support It?
| Firmware | Feature Name | Support |
|---|---|---|
| Klipper | Pressure Advance | Full support, easy to tune |
| Marlin 2.x | Linear Advance (LA) | Supported, but disabled on many stock builds |
| RepRapFirmware | Pressure Advance | Full support |
| Bambu | Built-in | Factory calibrated, recalibrate via OrcaSlicer |
| Prusa MK4 | Input Shaper + Pressure | Built-in, tunable via PrusaSlicer |
Check if LA is enabled on your Marlin printer: Send M900 via a serial console (Pronterface, OctoPrint). If you get no error, it's supported.
Klipper: Calibrating Pressure Advance
Step 1: Print the test pattern
In Klipper, use the built-in tuning tower:
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005
Print a square tower. Lower PA = bottom of tower; higher PA = top.
Step 2: Find the best layer
Look for the layer where:
- Corners are sharp without gaps
- Line width is consistent throughout
- No bulging at corners or along straight sections
Step 3: Calculate the value
PA value = start + (layer height of best layer × factor)
Step 4: Save to config
Add to printer.cfg:
[extruder]
pressure_advance: 0.05 # your measured value
Typical Values
| Printer Type | Typical PA |
|---|---|
| Direct drive | 0.02–0.08 |
| Bowden | 0.4–1.2 |
Marlin: Calibrating Linear Advance
Step 1: Enable LA in firmware (if not already)
In Configuration_adv.h:
#define LIN_ADVANCE
#define LIN_ADVANCE_K 0 // start at 0
Step 2: Print the calibration pattern
Use the Marlin LA calibration tool at marlinfw.org/tools/lin_advance. It generates a gcode pattern that prints at increasing K values.
Step 3: Find optimal K
Look for the K value where corners are sharpest without gaps or blobs.
Step 4: Set permanently
In your slicer start gcode:
M900 K0.2 ; Linear Advance K factor
Typical K Values (Marlin)
| Printer Type | Typical K |
|---|---|
| Direct drive | 0.05–0.2 |
| Bowden | 0.8–2.0 |
Signs You Need Pressure Advance Calibration
| Symptom | Cause |
|---|---|
| Blobs at seam | PA too low (pressure releasing at seam) |
| Gaps at corners | PA too high (over-compensating) |
| Thicker lines on outer walls | PA too low |
| Thin lines on outer walls | PA too high |
| Rough surface at high speeds | PA beneficial |
Interaction With Other Settings
- Reduce acceleration while tuning — start at 1000mm/s² to isolate the PA effect
- Tune flow rate first — inaccurate flow rate confuses PA calibration
- Tune PA before input shaping — do PA on the actual print speeds you'll use