Tuning pressure advance in Klipper, Marlin Linear Advance and OrcaSlicer
Short answer
Pressure advance pushes extra filament in while the toolhead accelerates and pulls the same amount back as it slows, offsetting pressure lag in the nozzle [3]. Klipper tunes it with TUNING_TOWER, where pressure_advance = START + measured height × FACTOR [1]. Marlin's equivalent is the Linear Advance factor set with M900 K [4]. OrcaSlicer's tower adds one step per millimeter, so PA = start + step × height [8]. Bambu Studio calls the same K value flow dynamics [11].
What the value represents
Molten plastic does not respond instantly. When the toolhead speeds up, pressure in the nozzle lags behind and lines start thin; when it slows, leftover pressure keeps pushing and corners bulge. Klipper’s pressure_advance is the amount of raw filament pushed into the extruder during acceleration, with an equal amount retracted during deceleration. It is expressed in millimeters per millimeter-per-second, and the default of 0 disables it [3]. Marlin defines its Linear Advance K in the same unit since version 1.5, and notes that version 1.0 values of 30 to 130 for PLA became roughly 0.1 to 2.0 [5].
Pressure advance does not change the toolhead path, print time, or the total filament used; it only redistributes extruder movement around speed changes [1]. The right value depends on the extruder, nozzle and filament, so Klipper recommends calibrating it per printer and per spool, after tuning extruder rotation_distance and nozzle temperature [1]. See e-steps and rotation distance and the temperature tower guide for those steps.
Klipper: the tuning tower
Klipper’s procedure uses corner blobbing as the signal [1]:
- Slice
docs/prints/square_tower.stlat a high speed such as 100 mm/s, zero infill, and a layer height around 75% of the nozzle diameter. Disable any dynamic acceleration control and scarf joint seams. - Send
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500so the nozzle slows through corners and pressure effects stand out. - For direct drive, send
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005. For a long Bowden, useFACTOR=.020. - Print, then measure with calipers the height with the best corners. If in doubt, prefer the lower height. Ignore the corner where the layer change happens.
- Compute
pressure_advance = START + height × FACTOR. Klipper’s example: 0 + 12.90 × 0.020 = 0.258. A direct-drive tower with the best corners at 8.5 mm gives 0 + 8.5 × 0.005 = 0.0425. - Put the value in the
[extruder]section and issueRESTART, which also restores normal acceleration and cornering speed.
The general tuning tower formula is value = start + factor × z_height; when SKIP is set, z_height becomes max(z − skip, 0) [2]. The PA tower calculator does this arithmetic. SET_PRESSURE_ADVANCE ADVANCE=<value> changes the value at run time, which is how per-filament values are usually applied from slicer start G-code [2].
Klipper puts typical values between 0.050 and 1.000, with the high end mostly on Bowden machines. If nothing improves up to 1.000, it suggests disabling pressure advance. Values above about 0.200 can make the extruder skip at normal acceleration [1].
Marlin: Linear Advance and M900 K
Linear Advance must be compiled into the firmware; OrcaSlicer’s guide warns that not every Marlin printer ships with it enabled [8]. M900 K<value> sets the factor, M900 K0 disables it, and M900 alone reports it. With EXTRA_LIN_ADVANCE_K, a second slot is set with L and selected with S0 or S1 [4].
Marlin’s calibration pattern prints lines of 20 mm slow, 40 mm fast and 20 mm slow, raising K by a fixed step on each line. The best K is the line whose slow-fast transitions are barely visible. For Bowden extruders the documentation suggests testing from about 0.1 to about 2.0 [5]. It also recommends:
- Setting
M900 Kxxat the end of the slicer start G-code, withLIN_ADVANCE_Kleft at 0 in firmware so the G-code value rules. - Disabling slicer features that also manage pressure, such as coasting, extra restart length, and wipe while retracting.
- Calibrating extruder steps/mm first and re-checking retraction afterwards, since retraction may drop as low as 0.
If the required extruder speed change exceeds the extruder jerk limit, Linear Advance 1.5 lowers the acceleration of that move instead of skipping steps [5].
Prusa printers follow two schemes. MK3-family firmware uses Linear Advance 1.5 with K stored in each filament’s custom G-code; Prusa lists 0.05 for PLA and 0.08 for PETG on a 0.4 mm brass nozzle [6]. MK4, XL and MINI firmware from 5.0.0 uses Pressure Advance set with M572 S<value>, and converts old M900 K commands 1:1 [7].
OrcaSlicer: tower, pattern and line
OrcaSlicer offers three tests, each in a direct drive and a Bowden version [8]:
| Method | What you read | Depends on first layer |
|---|---|---|
| Tower | Height with the best corners and seams | No |
| Pattern | The chevron with full, sharp corners | Partly |
| Line | The most even line | Yes; enable bed mesh |
On the tower, PA rises from the start value by one step per millimeter and the tower is trimmed so its top equals the end value. The wiki’s example picks 8 mm with a 0.002 step: 0 + 0.002 × 8 = 0.016 [8]. The pattern test is adapted from Andrew Ellis’ generator and only uses the default and first-layer line widths and the first-layer and outer-wall speeds. Belt printers get the tower only. Save the result to the filament profile, and on Bambu Lab printers do not tick the printer’s flow calibration option when sending the test [8].
Adaptive pressure advance
OrcaSlicer’s adaptive mode exists because the best PA drops as volumetric flow, layer height and acceleration rise, so a single value is a compromise between slow outer walls and fast infill [9]. The wiki’s starting grid for most CoreXY printers is accelerations of 1k, 2k and 4k mm/s² against speeds of 50, 100, 150 and 200 mm/s, which is 12 pattern tests at a PA step of 0.001. Do not calibrate above the maximum acceleration Klipper’s input shaper tool recommends, because shaper smoothing then mimics PA errors; see input shaping.
Each result goes into the model as a line of PA, flow and acceleration, for example 0.028,7.68,4000. Keep a sensible single value in the normal Pressure advance field as a fallback for tool changes and wipe towers, and start bridges at about half the usual PA [9]. The feature was tested on Klipper and is described as untested on Marlin and Bambu Lab machines. If you print at one speed, one layer height and one acceleration, the wiki says it is unnecessary.
Bambu Studio: flow dynamics
Bambu Lab’s flow dynamics K is the same idea under another name [11]. X1 printers calibrate it automatically by printing lines and scanning them with the lidar; A1-series and H2D printers purge at the wiper and read extrusion force with an eddy-current sensor; P1 printers support manual calibration only. In manual mode, choose the Pattern method with a 0.002 step and pick the cleanest, sharpest corner without under-extrusion. Bambu’s example settles on 0.018.
Bambu Lab reports about 10% run-to-run jitter, and lists damp filament, transparent filament on X1 lidar, unsticky plates, worn nozzles, TPU, third-party hotends and 0.2 mm hotends as reasons a result may be unreliable. It recommends recalibrating for a new filament brand, a worn or replaced nozzle, or a changed max volumetric speed or print temperature. Ticking Flow Dynamics Calibration when sending a print uses the freshly measured K instead of the manual value [11].
Reading results and what comes next
Too little pressure advance leaves blobs at corners; too much rounds corners and starves extrusion just before them [1]. If corners vary, choose a value that suits the three non-seam corners. Once PA is set, OrcaSlicer’s order moves on to flow ratio and then retraction [10]. Klipper notes that a small slicer retraction, around 0.75 mm, may still help with ooze from filament stickiness [1]; persistent strings are covered in the stringing guide.
Questions
Does pressure advance change with the filament?
Yes. Klipper's guide says the value depends on the extruder, nozzle and filament, that different brands or pigments can need significantly different values, and that it should be calibrated per printer and per spool [1].
Why is Bambu's automatic K value higher than my manual result?
Bambu Lab says the eddy-current algorithm on A1-series and H2D printers can return a noticeably higher K than manual calibration by design, to avoid material piling up at corners [11].
Sources
- Pressure advance. Klipper documentation. Firmware documentation. Tuning tower procedure, FACTOR values, formula, typical range, notes. Accessed October 12, 2026.
- G-Codes. Klipper documentation. Firmware documentation. TUNING_TOWER formulas including SKIP; SET_PRESSURE_ADVANCE. Accessed October 12, 2026.
- Configuration reference. Klipper documentation. Firmware documentation. pressure_advance and pressure_advance_smooth_time definitions and defaults. Accessed October 12, 2026.
- M900 - Linear Advance Factor. Marlin Firmware documentation. Firmware documentation. M900 K/L/S/T parameters; K0 disables. Accessed October 12, 2026.
- Linear Advance. Marlin Firmware documentation. Firmware documentation. K units in v1.5, test pattern, Bowden range, start G-code use, slicer settings to disable. Accessed October 12, 2026.
- Linear Advance. Prusa Knowledge Base. Manufacturer documentation. MK3-family K values per material; K set in filament custom G-code. Accessed October 12, 2026.
- Pressure Advance. Prusa Knowledge Base. Manufacturer documentation. M572 on MK4/XL/MINI firmware 5.0.0+; M900 K converted 1:1. Accessed October 12, 2026.
- Pressure Advance. OrcaSlicer Wiki. Slicer documentation. Tower, pattern and line methods; tower formula and example. Accessed October 12, 2026.
- Adaptive Pressure Advance. OrcaSlicer Wiki. Slicer documentation. Why PA falls with flow and acceleration; calibration grid; model input. Accessed October 12, 2026.
- Calibration Guide. OrcaSlicer Wiki. Slicer documentation. Calibration order. Accessed October 12, 2026.
- Flow Dynamics Calibration. Bambu Lab Wiki. Manufacturer documentation. K factor; auto and manual modes per printer series; reliability caveats. Accessed October 12, 2026.