Skip to content

Pressure Advance Calculator

The Pressure Advance Calculator converts your PA test tower into a working value. For machines running a wide speed range there’s also an Adaptive Pressure Advance Calculator and a PA-for-OrcaSlicer calculator.

Free, runs in your browser, no registration.

Molten plastic in the nozzle is compressible. When the extruder pushes, pressure builds before flow starts; when it stops, pressure bleeds off after. The result is timing error at every speed change:

  • Bulging corners — pressure hasn’t dropped yet as the head slows
  • Gaps after corners — pressure hasn’t rebuilt as the head accelerates away
  • Thin patches at the start of each perimeter
  • Blobs where the head slows for detail

Pressure advance predicts this and adjusts extrusion ahead of the move. Marlin calls the same idea Linear Advance.

It is a timing correction, not a volume correction. If your corners are bulging and your walls are too thick, PA is not your problem — flow is.

Wildly dependent on extruder and filament, but for orientation:

SetupTypical PA range
Bowden, PLA0.4 – 1.0
Direct drive, PLA0.02 – 0.08
Direct drive, PETG0.04 – 0.10
Direct drive, TPU0.05 – 0.20

Bowden values are an order of magnitude higher because there’s a metre of compressible filament in the tube. If your direct-drive machine wants 0.5, something else is wrong.

  1. Ensure rotation distance and flow are already calibrated. PA cannot fix a volume error.
  2. Run the standard tuning tower:
    SET_VELOCITY_LIMIT ACCEL=500 ACCEL_TO_DECEL=500 SQUARE_CORNER_VELOCITY=1
    TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005
  3. Print the test object and measure the height where corners look cleanest.
  4. PA = START + measured_height × FACTOR. The calculator does this for you.
  5. Set it permanently in printer.cfg under [extruder]:
    pressure_advance: 0.045
  6. RESTART.

Calibration → Pressure Advance. OrcaSlicer offers line, pattern, and tower methods. The pattern method is the easiest to read.

Note that OrcaSlicer writes PA into the filament profile via G-code, while Klipper holds it in printer.cfg. Pick one place to own the value. Setting it in both is how people end up with a printer that behaves differently depending on which slicer produced the file.

Standard PA uses one value for all speeds. In reality the ideal value shifts with flow rate — what’s right at 60 mm/s over-compensates at 250 mm/s.

Adaptive PA defines a curve instead of a constant. Worth doing if:

  • You print across a wide speed range in the same job
  • You run high acceleration (above ~10,000 mm/s²)
  • You’ve tuned standard PA and still see speed-dependent artifacts

Not worth doing otherwise — it’s meaningfully more work for no gain on a machine with a narrow speed band. Use the Adaptive Pressure Advance Calculator when you get there.

  • Tuning PA before flow and rotation distance. You’ll tune PA against a volume error and get a value that’s wrong everywhere.
  • Setting acceleration too high during the test. The tuning tower command above deliberately drops acceleration to 500 so the artifacts are readable. Test at high accel and everything blurs together.
  • Setting PA in both Klipper and the slicer. Pick one.
  • Using one value for every filament. PA is per-material. PETG and PLA are genuinely different.
  • Confusing PA artifacts with ringing. Ringing is an echo after a corner and is an input shaper problem. PA artifacts are at the corner. If you see repeating waves, tune input shaping first.
  1. Rotation distance
  2. Flow rate
  3. Max volumetric speed
  4. Pressure advance ← you are here
  5. Extrusion rate smoothing — if you run high acceleration

Per-filament pressure advance values for my Voron 2.4, K2 Plus, SV08 and Ender machines are documented in the Minimal 3DP config packs. Raw Klipper configs stay free and public in the klipper repository.