SlicerGuide
Flat isometric illustration of a machined square mounting block with a tick-marked white rotary dial on top and an orange-lit bore in its front face
settings

Pressure Advance Settings: OrcaSlicer, PrusaSlicer and Cura

Find pressure advance in OrcaSlicer, PrusaSlicer and Cura, choose the correct profile or start G-code location, and check which value reaches the printer.

By SlicerGuide Editorial · ·Updated · 12 min read

In Cura, add the firmware command to Machine Settings > Start G-code: M900 K<value> for Marlin Linear Advance or SET_PRESSURE_ADVANCE ADVANCE=<value> for Klipper, or install a Marketplace plugin that adds a per-material field. PrusaSlicer keeps the command in Filament Settings > Custom G-code. OrcaSlicer has an Enable pressure advance box in the filament preset.

Pressure advance belongs to the printer’s firmware, not the slicer. Marlin’s Linear Advance page describes the problem: nozzle pressure lags behind the printhead as it speeds up and slows down, causing bleeding edges and rough surfaces. The firmware compensates by pushing extra filament during acceleration and retracting an equal amount during deceleration, as Klipper’s configuration reference puts it. Start with a value established for your printer, nozzle and filament; the pressure advance calibration procedure covers how to obtain it.

The key distinction is between the saved preset and the command the printer actually receives. Changing a field in an inactive filament preset does not change the next print. A machine start script can also contain a different value from the one you intended to use.

Which command your printer reads

Each firmware names the feature differently and reads a different command, so identify yours before editing any slicer field.

Firmware or printerFeature nameCommand in slicer G-codeWhere a permanent value lives
KlipperPressure advanceSET_PRESSURE_ADVANCE ADVANCE=<value>pressure_advance in the [extruder] section of printer.cfg
Marlin built with LIN_ADVANCELinear AdvanceM900 K<value>; M900 K0 disables itFirmware configuration, then reflash
Prusa MK4/MK4S, XL, MINI, MK3.9 on firmware 5.0.0+Pressure advanceM572 S<value>Filament custom G-code in Prusa profiles
Prusa MK3S, MK3, MK2.5S, MK2.5 on firmware 3.9.0+Linear Advance 1.5M900 K<value>Filament custom G-code in Prusa profiles
RepRapFirmware (Duet)Pressure advanceM572 S<value>Filament G-code or start macro

The rows follow Prusa’s pressure advance and Linear Advance articles, Marlin’s M900 reference and Ellis’ guide to saving the value. Prusa firmware 5.0.0+ converts old M900 K commands 1:1 to a pressure advance value, and Prusa’s MK3-family firmware converts Linear Advance 1.0 values automatically. Marlin does not: its Linear Advance 1.5 changed the unit of K from 1.0, so the K calibration has to be redone.

Where the pressure advance setting lives

SlicerLocation to inspectScope to check
OrcaSlicerFilament preset, under Flow Ratio and Pressure AdvanceSelected filament and its pressure-advance override
PrusaSlicerFilament Settings > Custom G-code in documented Prusa Linear Advance presetsFilament-specific command and any existing conditions
CuraPreferences > Configure Cura > Printers > Machine Settings > Start G-codeSelected printer; a literal value needs review when filament changes

These locations follow the official documentation cited below. Profile and printer support differ, so inspect the active preset rather than assuming every machine exposes the same controls. A slicer field cannot add a firmware feature that the printer lacks.

OrcaSlicer: edit the selected filament preset

Open the filament preset used by the model and find the pressure-advance controls in the filament settings. The OrcaSlicer material reference separates pressure advance from flow ratio; they are different parameters even though they appear together.

Where available for the selected printer, tick Enable pressure advance and enter the established value. Save a user preset with a name that identifies the filament and nozzle. Select that saved preset before slicing.

The OrcaSlicer calibration documentation directs users to put the chosen result in filament settings. Generating a calibration project is therefore a different task from saving the result for subsequent jobs. Confirm both the saved value and the selected filament after closing the calibration project.

The same page adds two cautions: Marlin printers need Linear Advance enabled in firmware, and on Bambu Lab printers you should not select the Flow calibration option during the pressure advance test. Bambu Studio’s own route is covered in the Bambu Studio vs PrusaSlicer comparison.

Leave adaptive pressure advance out of a basic configuration check unless you deliberately use that separate feature; its setup is covered in the adaptive section below. When several controls can affect extrusion, keeping the ordinary pressure-advance path identifiable makes the exported file easier to review.

For a broader view of the application, read OrcaSlicer features worth knowing. For transferring temperature and extrusion settings from Cura, use the profile migration guide.

PrusaSlicer: inspect filament custom G-code

For the Prusa presets covered by its Linear Advance documentation, Prusa places the K value in Filament Settings > Custom G-code. The Prusa reference specifically identifies this as a filament setting, not the printer-specific custom G-code.

Inspect the existing script before changing it. A preset may contain conditions for the nozzle or printer, so preserve the logic required by the manufacturer’s profile. Save the adjusted filament preset under a separate name and make sure the project selects it.

This documentation describes Prusa Linear Advance presets; it does not mean every printer configured in PrusaSlicer accepts the same command. A Klipper printer requires its supported pressure-advance command, whereas a Marlin printer needs a firmware build with Linear Advance enabled. Keep the printer’s established start sequence in place while reviewing the filament-specific value.

To change the value:

  1. Select the filament preset, then open Filament Settings > Custom G-code > Start G-code.
  2. Find the line your firmware reads, using the command table above.
  3. On Prusa profiles, edit the number inside the branch that matches your printer and nozzle. Prusa’s pressure advance article notes that the S value changes with nozzle diameter and recommends keeping the default for most uses.
  4. Save under a new filament preset name, export, then search the G-code for the last pressure advance command before the first layer.

On a non-Prusa printer, Ellis’ guide puts the Klipper or Marlin command in the same filament custom G-code, which keeps a separate value per filament preset.

Cura: Start G-code or a Marketplace plugin

The Cura start and end G-code documentation gives the route through Preferences > Configure Cura > Printers > Machine Settings. The Printer tab contains the machine start script.

For supported firmware, this is a place to send an established advance value. Add one line to the existing script:

; Marlin with LIN_ADVANCE, or Prusa MK3-family firmware
M900 K<value>
; Klipper
SET_PRESSURE_ADVANCE ADVANCE=<value>

A number written literally in machine start G-code remains tied to that script; changing the material selection does not rewrite the literal number. Record which material it belongs to and review it before slicing with another spool.

Retain the manufacturer’s homing, heating and other required instructions. Inspect the exported file after editing the script, including any commands inserted by post-processing. A working printer start sequence is part of the configuration you are preserving.

When the value should follow the material rather than the machine script, a plugin is the practical route:

PluginFirmwareWhat it addsCommand written
Linear Advance Settings (fieldOfView)Marlin with LIN_ADVANCE, RepRapFirmwareLinear Advance Factor plus feature-specific subsettings, in the Material categoryM900 on Marlin, M572 on RepRap
Klipper Settings (jjgraphix), v1.0.2Klipper onlyA Klipper Settings category: pressure advance per extruder, line type and mesh, smooth time, tuning-tower presetsKlipper commands
Pressure Advance (ollyfg)KlipperA Pressure Advance setting in the Material categorySET_PRESSURE_ADVANCE

The Klipper Settings author recommends Cura 5.0 (SDK 8.0.0) or newer and warns that most values stay applied after a print until the printer restarts, so set pressure advance explicitly in every job. The Linear Advance Settings README also includes a Klipper macro that maps M900 to SET_PRESSURE_ADVANCE.

Cura itself has moved a little. The Cura 5.10.0 release notes (25 March 2025) list “Pressure Advance Factor Setting: New setting for machine definitions.” That describes a printer-definition setting, not a documented per-material control, so check whether your printer profile uses it and confirm the result in exported G-code.

Cura’s retraction controls are a separate topic. Use Cura stringing and retraction settings for travel-related strings, and Cura PETG settings for the material-specific profile. Marlin’s Linear Advance page also asks users to disable options such as wipe while retract and combing, so review Cura’s combing mode when enabling Linear Advance.

Klipper: printer.cfg or slicer G-code

Klipper keeps a permanent value as pressure_advance in the [extruder] section of printer.cfg. The configuration reference measures it in millimetres of filament per mm/s and defaults it to 0, which disables the feature; pressure_advance_smooth_time defaults to 0.040 s and may not exceed 200 ms. Klipper’s pressure advance documentation puts typical values between 0.050 and 1.000.

The per-job alternative is SET_PRESSURE_ADVANCE ADVANCE=<value> in the slicer’s filament start G-code; the G-code reference applies it to the active extruder unless EXTRUDER= is given. Ellis’ guide notes that slicer commands override the printer configuration and typically do not persist across reboots, while a printer.cfg edit needs a RESTART. Use printer.cfg when one filament dominates, and filament G-code when one printer runs several materials.

Pressure advance tests compared

Every pressure advance test prints the same feature across a range of values and asks you to judge where corners or line ends look best. The tests differ in where the file comes from and how a position maps back to a value.

TestWhere it comes fromFirmwareReading the result
TowerOrcaSlicer calibrationAny with pressure or linear advance enabledValue rises one step per mm: start + (step × height), e.g. 0 + (0.002 × 8) = 0.016
PatternOrcaSlicer calibration, or Ellis’ pattern toolKlipper, Marlin, RepRapFirmwareSharpest corner with the fewest gaps, bulges or divots
LineOrcaSlicer calibrationAny with pressure or linear advance enabledMost even line; depends on a good first layer
TUNING_TOWERKlipper console command before a test printKlipperstart + measured height × factor; FACTOR=.005 direct drive, .020 bowden
K-Factor Calibration PatternGenerator linked from Marlin’s Linear Advance pageMarlin with LIN_ADVANCECompare the lines printed at each K value

For the Klipper tower, Klipper’s documentation slices the model at high speed with zero infill and asks you to disable dynamic acceleration control and scarf joint seams in the slicer for the test. OrcaSlicer’s calibration page ships a direct-drive and a bowden version of each method. Once the range is known, Ellis suggests fine-tuning in 0.001 to 0.002 steps. Calibrate flow and temperature first, as the flow and temperature calibration guide sets out, since the pressure advance test assumes both are correct.

Adaptive pressure advance in OrcaSlicer

Adaptive pressure advance replaces the single number with a model. OrcaSlicer’s adaptive guide notes that the best value shifts with flow rate, acceleration and layer height. You enter comma-separated triplets of PA value, volumetric flow (mm³/s) and acceleration (mm/s²), such as 0.036, 3.84, 1000, and the slicer adjusts pressure advance to each move.

  1. Print the pattern test at each combination of the accelerations and speeds you use. The guide suggests 1,000, 2,000 and 4,000 mm/s² at 50, 100, 150 and 200 mm/s, 12 tests in all.
  2. Record the best PA and the flow rate for each. OrcaSlicer 2.2.0 and later prints the test parameters on the sample; older versions show flow in the G-code preview’s Flow view.
  3. Enter the triplets in Adaptive pressure advance measurements, tick Enable adaptive pressure advance, and set Pressure advance for bridges to about half your usual value as a starting point.

The feature has been tested on Klipper and is untested on Marlin and Bambu Lab printers. Klipper versions older than 11 July 2024 might produce artifacts with dynamic pressure advance; the guide says stable 0.13.0 (20250411) fixes this. If you print one layer height at one speed and acceleration, there is no need to enable it.

Check the command that reaches the printer

Use the firmware documentation to recognize the command in an exported text G-code file:

  • Klipper documents SET_PRESSURE_ADVANCE with an ADVANCE parameter.
  • Marlin documents M900 with a K parameter and requires Linear Advance support.
  • Prusa firmware 5.0.0+ uses M572 with an S value, plus an optional W smoothing time that defaults to 0.04 s.

These names identify the configuration path; they do not establish a conversion between values. Keep the value with the printer, firmware, nozzle and filament for which it was obtained.

Search the exported file for every occurrence of the applicable command. Compare its value with the saved preset and inspect any later assignment. If the file calls a firmware macro, inspect that macro’s configuration too: its expanded behavior may not appear in the sliced file. A preview confirms geometry but does not by itself prove the intended advance value will remain active.

When the saved value seems to have no effect

First confirm the printer and filament selected in the project. Next check that the override is enabled where applicable, then inspect start scripts and the exported commands. If the command is unsupported, use the printer’s firmware documentation before changing more slicer parameters. On Marlin, sending M900 with no parameters reports the current K factor, which shows whether the file’s value arrived.

Once the configuration path is clear, return to the calibration procedure if the value itself needs to change. Keep separate material profiles so a successful setting is saved with the filament it describes.

FAQ

what pressure advance value should i use for pla

Prusa’s published starting point for PLA is K 0.05, for its MK3-family printers running Linear Advance 1.5 with a 0.4 mm nozzle, against 0.08 for PETG. No PLA number transfers reliably to a different extruder, hotend or firmware, so use such figures only to centre a test range, then calibrate on your own printer.

is linear advance the same as pressure advance

Yes, they are the same compensation under different names. Marlin calls it Linear Advance and sets it with M900 K; Klipper, RepRapFirmware and Prusa firmware 5.0.0+ call it pressure advance. The numbers are not interchangeable, and Marlin’s Linear Advance 1.5 uses different units from version 1.0, so recalibrate after switching firmware.

does pressure advance work with a bowden extruder

Yes, but expect higher values than on direct drive. Klipper’s tuning tower uses a factor of .020 per millimetre for bowden against .005 for direct drive, and Marlin suggests testing bowden K values from about 0.1 to 2.0 on Linear Advance 1.5. OrcaSlicer also ships separate bowden versions of each calibration test.

do i need to calibrate pressure advance for every filament

Yes, calibrating per filament and per nozzle is the safe rule. Prusa’s table lists different values for PLA, PETG, ASA and nylon on the same printer, its MK4-family profiles change the M572 value with nozzle diameter, and OrcaSlicer’s calibration page says results should be saved to the material profile.

Sources

  1. OrcaSlicer - filament flow ratio and pressure advance
  2. OrcaSlicer - pressure advance result and filament settings
  3. Prusa Knowledge Base - Linear Advance and filament custom G-code
  4. UltiMaker Cura - custom start and end G-code
  5. Klipper - pressure advance command reference
  6. Marlin - Linear Advance factor command
  7. Klipper - Pressure advance tuning
  8. Klipper - Configuration reference, extruder section
  9. Marlin - Linear Advance feature
  10. Prusa Knowledge Base - Pressure Advance (M572)
  11. UltiMaker Cura 5.10.0 release notes
  12. fieldOfView - Cura Linear Advance Settings plugin
  13. jjgraphix - Klipper Settings plugin for Cura
  14. ollyfg - Cura pressure advance setting plugin
  15. OrcaSlicer - adaptive pressure advance calibration
  16. Ellis' Print Tuning Guide - saving your PA/LA value
  17. Ellis' Print Tuning Guide - pressure advance pattern method

Related