SlicerGuide
Macro shot of a 3D-printed pressure advance calibration pattern showing corner sharpness across stepped values
calibration

Pressure Advance Tuning: How It Works and How to Calibrate It

Pressure advance fixes corner bulges and seam blobs no flow tweak can. A practical guide to tuning it in OrcaSlicer, Klipper, and Marlin with expected values.

By SlicerGuide Editorial · · 8 min read

Pressure advance is the single most useful calibration nobody runs early enough. If your corners bulge, your seams look like little blobs, and the first millimetre after a travel move shows a fat over-extruded line, you don’t have a flow problem or a speed problem — you have a pressure problem inside the melt zone, and pressure advance is the firmware feature designed to solve it.

It’s also the one that takes the least time to tune. A single test print, ten minutes of inspection, and you’re done for that filament. Here’s what’s actually happening, and how to dial it in across the firmware and slicer combinations most people are running.

The physics, in one paragraph

A Bowden or direct-drive extruder pushes filament into a hot nozzle. Plastic is a non-Newtonian fluid at melt — it compresses slightly under pressure before it flows. When the printer accelerates, the extruder shoves filament in but the melt takes a fraction of a second to pressurize and start flowing at the new rate. When it decelerates, the opposite happens: pressure stays high for a moment after the extruder slows, and extra plastic keeps oozing out. The visible result is under-extrusion at the start of fast moves (gaps after travels, weak corners on the entry side) and over-extrusion at the end (bulged corners, blobs at seams, fat lines after deceleration).

Pressure advance models that lag. The firmware advances and retracts the extruder a tiny amount ahead of acceleration and deceleration events so the melt pressure tracks the commanded flow rate. Tune it once, per filament, and the whole acceleration/seam class of defects disappears.

What it’s called in your firmware

The feature exists under different names. The underlying idea is the same.

  • Klipper: Pressure Advance. Value is a time constant in seconds, typically 0.02 to 0.08 for direct drive and 0.4 to 1.2 for Bowden. The Klipper docs describe the algorithm and the tuning macro in detail (klipper3d.org/Pressure_Advance.html).
  • Marlin: Linear Advance (LA, the M900 K factor). Same goal, different unit — K is roughly mm of filament per (mm/s) of flow change. Marlin’s reference is at marlinfw.org/docs/features/lin_advance.html. Marlin needs the LIN_ADVANCE build option enabled; many vendor firmwares ship with it off.
  • RepRapFirmware: Pressure Advance, same M572 S time-constant style as Klipper.
  • Bambu / Prusa stock firmwares: handled internally per filament profile. Bambu Lab printers auto-calibrate pressure advance on filament load; PrusaSlicer exposes Linear Advance K-factor under filament settings for Prusa MK-series printers.

Values are not interchangeable across firmwares. A Klipper PA of 0.04 is not the same number as a Marlin K of 0.04, even on the same printer. Always recalibrate when you switch firmware.

When pressure advance is the answer

Pressure advance fixes a specific cluster of defects. Don’t reach for it for unrelated problems.

It helps when you see:

  • Bulging or rounded outside corners on a calibration cube — the line continues to extrude slightly past the corner.
  • Visible seam blobs that look like a small pimple at the Z-seam, even with seam settings tuned.
  • A thicker first 1–2 mm of line after travel moves, sometimes called “elephant droppings” along the perimeter start.
  • Gaps or thin spots immediately before a corner, caused by under-pressure on acceleration.

It does not help with:

  • Over- or under-extrusion across the whole print — that’s flow ratio. See the flow and temperature calibration guide.
  • Stringing between parts — that’s retraction.
  • Layer-shift, ringing, or ghosting — that’s mechanical (belts, frame, input shaping).
  • Top-surface roughness — usually flow, ironing, or top-layer settings. See ironing for top surfaces.

If you see the corner-and-seam symptoms, pressure advance is the high-confidence fix. If you don’t, tuning it further yields no visible improvement.

OrcaSlicer’s built-in pressure advance test is the most accessible option and works for any printer the slicer supports. The OrcaSlicer wiki documents the process and the expected output (github.com/SoftFever/OrcaSlicer/wiki/pressure-advance-calibration).

There are three test patterns to choose from:

1. PA Line test

A grid of short fat lines, each printed with a stepped pressure advance value across the print. You read the result with calipers or by eye: pick the row where the line is the most uniform thickness from one end to the other.

  • Use this when you want a fast, low-material test.
  • Works best for direct-drive printers where the right answer is in the 0.02–0.08 range.

2. PA Tower (corners)

Prints a tall cube with each height band at a different PA value. You inspect the corners under raking light: the right value is the lowest one where the corner is sharp and there’s no bulge.

  • Use this for the visual confirmation it gives.
  • More material than the line test, but the result is unambiguous.

3. PA Pattern (small-feature)

A pattern of small geometric features. Best for catching the specific value that fixes seam blobs on small models.

For a first-time calibration on a new filament, run the Line test to narrow the range, then a Tower at the narrowed range to confirm. Lock the result into the filament profile, not the printer profile — PA is filament-dependent.

Calibrating in Klipper directly

If you’re running Klipper, the firmware ships with a tuning macro. The Klipper docs give the canonical procedure (klipper3d.org/Pressure_Advance.html):

  1. Slice a tall hollow cube (60×60×50 mm, two perimeters, no top, no infill) at the speed you actually print at — pressure advance interacts with acceleration and speed, so calibrate at realistic numbers.
  2. Send TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=0.005 before printing. Klipper will step PA from 0 upward as the print rises.
  3. After printing, measure the height where corners are sharp without bulging. Multiply by the factor to get the PA value.
  4. Add to printer.cfg per extruder, or set per filament with SET_PRESSURE_ADVANCE in the slicer’s start-G-code.

Typical results: direct-drive hotends like the Stealthburner, Voron Mini Stealthburner, or Bambu X1 land between 0.02 and 0.06. Bowden setups (Ender 3 stock, CR-10, Voron 0 with bowden) typically land between 0.4 and 0.9, sometimes higher with long PTFE runs.

Calibrating Linear Advance in Marlin

Marlin’s process is documented at help.prusa3d.com/article/linear-advance_2252 for Prusa hardware, but the procedure generalises to any Marlin 2.x build with LIN_ADVANCE enabled:

  1. Print a Linear Advance test pattern (Marlin and Prusa both publish G-code generators). The pattern prints a series of lines at different K factors via M900 K<value>.
  2. Inspect the lines: the right K is the one where the line is uniform width from start to end, with no bulged ends or thin middles.
  3. Set in the slicer start G-code: M900 K0.04 (or whatever value, persistent until reset) or save with M500 after M900 K<value>.

K values for direct drive on a calibrated Marlin board typically land 0.02–0.08, same general range as Klipper PA but not numerically identical. Bowden K values are higher (0.3–0.8 is the realistic working range; values above that usually indicate a different problem upstream).

Pitfalls that produce wrong answers

A calibration that gives a confidently wrong number is worse than no calibration. Five common ones:

  • Calibrating at unrealistic speed or acceleration. PA depends on flow change per unit time. Calibrate at the speed and acceleration you’ll print at, not slower.
  • Calibrating with cold filament. Lower temperatures need higher PA (stiffer melt). Re-tune if you change the working temperature by more than ~10 °C.
  • Confusing under-extrusion for low PA. If lines are thin everywhere, your flow ratio is off. Fix flow first (see the flow calibration guide).
  • Saving PA to the printer profile instead of the filament profile. PA is largely a filament property — soft TPU, stiff PLA, and abrasive composites all want different values.
  • Ignoring input-shaping interactions on Klipper. PA and input shaping both interact with acceleration. Tune input shaping first, then PA; redo PA if you change shaper or max_accel.

How long the tuning lasts

A pressure advance value is good for the life of that filament brand and type, provided your nozzle, hotend temperature, and acceleration profile stay the same. A new spool of the same brand of PLA does not usually need re-calibration. A new brand does. Switching from a brass to a hardened steel nozzle in the same diameter rarely changes PA noticeably. Switching nozzle diameters (0.4 to 0.6 mm) does.

In practice: tune once per filament profile, write the value into the slicer’s filament settings, and forget it.

For the calibrations that come before this one in the order, see the flow and temperature calibration guide — flow has to be right before PA results are trustworthy. For the parameters PA interacts with most (acceleration, max volumetric speed, perimeter speed), see the core slicer settings guide. For the seam-related defects that survive correct PA, see seam placement explained and the broader troubleshooting print defects guide.

For per-printer PA starting values, FDM Desk covers printer-specific profiles. For the rheology background on why melt pressure lags flow, PrintLabGuide goes deeper into the polymer physics.

Sources

  1. klipper3d.org — Pressure Advance Html
  2. marlinfw.org — Lin Advance Html
  3. github.com — Pressure Advance Calibration
  4. help.prusa3d.com — Linear Advance 2252

Related

Comments