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?

FirmwareFeature NameSupport
KlipperPressure AdvanceFull support, easy to tune
Marlin 2.xLinear Advance (LA)Supported, but disabled on many stock builds
RepRapFirmwarePressure AdvanceFull support
BambuBuilt-inFactory calibrated, recalibrate via OrcaSlicer
Prusa MK4Input Shaper + PressureBuilt-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 TypeTypical PA
Direct drive0.02–0.08
Bowden0.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 TypeTypical K
Direct drive0.05–0.2
Bowden0.8–2.0

Signs You Need Pressure Advance Calibration

SymptomCause
Blobs at seamPA too low (pressure releasing at seam)
Gaps at cornersPA too high (over-compensating)
Thicker lines on outer wallsPA too low
Thin lines on outer wallsPA too high
Rough surface at high speedsPA 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