Quick answer

To find pressure advance from a tuning tower, multiply the height of the cleanest band by the factor per mm, then add the start value. For example, 0 + 35 × 0.005 = 0.175. This works for both Klipper pressure_advance and Marlin linear advance K.

Use your own slicer/shop values. No live prices, uploads, accounts, databases, saved quotes, or external data are used.

Results update below from browser-local calculations.

Suggested factor per mm 0

Breakdown

Pressure advance value 0
Suggested factor per mm 0
Pressure advance value 0

How to Use This Calculator

  1. Run a tuning tower that increases pressure advance with height. In Klipper use TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=0.005, or use your slicer's linear advance pattern for Marlin.
  2. Enter the same start value and factor per mm you used, then measure the Z height of the band with the sharpest corners and the least bulging.
  3. Apply the resulting value with SET_PRESSURE_ADVANCE / pressure_advance in printer.cfg for Klipper, or the linear advance K value for Marlin, then print a confirmation cube.

Inputs and Assumptions

Tower start valueThe pressure_advance or linear advance K value at the bottom of the tuning tower.
Factor per mmHow much the advance value increases per mm of height. Klipper TUNING_TOWER uses the FACTOR parameter.
Height of cleanest bandMeasure the Z height of the band with the sharpest corners and least bulging.
Tower end valueOptional helper for planning the next tower with the suggested factor output.
Tower heightOptional helper. Total printable height used to compute a suggested factor per mm.

Pressure advance tower example

If the tower started at 0, used a factor of 0.005 per mm, and the cleanest corners appeared at 35 mm of height, the pressure advance value is 0 + 35 × 0.005 = 0.175. For the next, tighter tower, an end value of 0.1 over a 50 mm tower suggests a factor of about 0.002 per mm.

What Pressure Advance Is and Why It Matters

Pressure advance in Klipper (called linear advance in Marlin) compensates for the pressure that builds up inside the nozzle while printing. The extruder cannot start and stop the flow of molten plastic instantly, so without compensation you get bulging corners, blobbing at seams, and gaps right after fast moves.

Pressure advance does not change how much filament is extruded overall, so it is a separate tuning layer from extruder steps (rotation_distance) and flow rate. Get those two correct first, then use this calculator to turn a tuning-tower test into a final pressure_advance value.

How to Run a Pressure Advance Tuning Tower in Klipper

Klipper's TUNING_TOWER command sweeps the pressure_advance value as the print gets taller, so a single test object shows every value at once. Slice a tall test model (the cube-with-notches PA test from the Klipper docs works well), then send the command below before the print starts.

  • Heat and home the printer, then start the sliced test print.
  • Issue the tuning tower command in the console, matching the START and FACTOR you will enter here.
  • Let it print, then find the height where corners are sharpest with no bulge before them and no gap after.
  • Measure that Z height with calipers (or read it off the printed scale) and enter it above.
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005

The Pressure Advance Formula

The value at any height equals the start value plus the height multiplied by the factor: pressure_advance = START + measured_height × FACTOR. With START=0 and FACTOR=0.005, a clean band at 35 mm gives 0 + 35 × 0.005 = 0.175.

The Suggested factor output works the other way: give it the start value, an end value, and the tower height, and it returns the FACTOR to use for a tighter second tower so the best band lands near the middle.

Apply the Value in printer.cfg

Klipper does not save this from a console command permanently, so edit your configuration by hand, then RESTART and reprint the test to confirm. PrintCostCalc only returns the number; it never connects to Klipper, Moonraker, or your printer.

[extruder]
pressure_advance: 0.175

Marlin Linear Advance (M900 K)

Marlin calls the same idea linear advance and stores it as a K factor set with M900 K<value>. If you run a height-based tower in Marlin you can use the formula above directly. If you print the classic labeled K-factor pattern instead, read the K value off the cleanest line rather than measuring a height.

Apply it at runtime with the command below, then save it to EEPROM with M500 once you are happy.

M900 K0.05
M500

Direct Drive vs Bowden Starting Values

  • Direct-drive extruders usually need a small value, often around 0.02 to 0.08 in Klipper.
  • Bowden setups need much more because of the long tube, often around 0.3 to 1.0 in Klipper.
  • Marlin linear advance K values are different numbers but follow the same idea: Bowden needs more than direct drive.
  • Tube length, extruder gearing, temperature, and filament all shift the result, so always confirm with a tower instead of copying a value.

Reading the Tower: Find the Cleanest Band

Look down the test for the height where corners are crisp and the line width is even, with no bulging just before corners and no gaps just after them. Measure that height and enter it as the cleanest band.

If the best result sits at the very top or very bottom of the tower, your range was off. Widen it, or use the Suggested factor output to set up a tighter second tower centered on the promising value.

Common Pressure Advance Mistakes

  • Tuning pressure advance before extruder steps and flow rate, so the test chases an error that belongs to another calibration layer.
  • Using a factor so large that the whole tower looks bad, or so small that no band stands out.
  • Judging the tower at the seam or in the first few layers, which are not representative.
  • Re-using one printer's value on another machine, hotend, or filament without re-testing.

What to Calibrate After Pressure Advance

Once corners are clean, tune retraction to remove stringing, then confirm your print speeds stay within the hotend's volumetric flow limit so fast moves are not starved of plastic.

Formula

Pressure advance = tower start value + measured height × factor per mm. Suggested factor = (tower end value − tower start value) / tower height.

Limits of This Calculator

  • Calibrate extruder steps and flow rate first; pressure advance only fixes pressure-related corner and seam quality.
  • The tower must change the value linearly with height. A stepped or banded tower will not map cleanly to this formula.
  • Good values depend on extruder type, hotend, temperature, and speed, so re-test after major hardware or profile changes.

FAQ

Does this work for both Klipper pressure_advance and Marlin linear advance?

Yes. Both increase linearly along a tuning tower. Enter the start value and factor you used, then read the value at your cleanest band. Klipper calls it pressure_advance and Marlin calls it linear advance K.

What start value and factor should I use?

A common Klipper direct-drive tower uses START=0 and FACTOR=0.005, while Bowden setups often use a larger factor such as 0.020. Use a range wide enough that the corners visibly change from rounded to bulging across the tower.

How do I read the height of the cleanest band?

Look along the test for the band with the sharpest corners and least bulging or gaps, then measure its Z height with calipers or read it from the marked tower.

Should I calibrate pressure advance before or after flow?

Calibrate extruder steps and flow rate first so the extrusion amount is correct, then tune pressure advance for corner and seam quality.

What is a good pressure advance value for Klipper?

It depends on the extruder. Direct-drive setups are often around 0.02 to 0.08 and Bowden setups around 0.3 to 1.0, but always confirm with a tuning tower instead of copying a value, because tube length, gearing, temperature, and filament all change it.

Why are my corners still bulging after setting pressure advance?

Bulging that survives usually means extruder steps or flow rate are still off, the pressure advance value is too low, or acceleration and speed are very high. Recalibrate rotation_distance and flow first, then re-run the tower.

Is pressure advance the same as input shaper?

No. Input shaper reduces ringing and ghosting caused by machine vibration, while pressure advance fixes extrusion pressure at corners and seams. They are separate Klipper features and are tuned independently.