What is pressure advance smooth time?
pressure_advance_smooth_time is a Klipper [extruder] setting: the time window over which pressure advance’s extruder motion is averaged. The default is 0.040 s (40 ms), the maximum 0.200 s. A longer window smooths the extruder but blurs corners; a shorter one sharpens corners but works the motor harder. Leave the default unless corners still blob after tuning pressure advance.
The number
| What | Value | What it means |
|---|---|---|
| Default | 0.040 s (40 ms) | Used when printer.cfg does not set it |
| Maximum | 0.200 s (200 ms) | Klipper rejects anything larger, in printer.cfg or by command |
Lowest in printer.cfg |
Above 0 | A 0 in the config stops Klipper at startup with a config error |
Lowest with SET_PRESSURE_ADVANCE |
0 | SMOOTH_TIME=0 turns pressure advance off; it does not make it sharper |
| Reach on each side of a moment | Half the smooth time: 20 ms at the default | The extruder starts moving before an extrusion move does and keeps moving after it ends |
| When it does anything | Only with pressure_advance above 0 |
With pressure advance at 0 there is nothing to smooth |
The values come from Klipper’s Configuration reference and G-Codes documents and from extruder.py and kin_extruder.c in the Klipper v0.13.0 source, where the same limits are coded.
How does pressure advance smooth time work in Klipper?
Klipper never drives the extruder to the raw pressure advance target. At each instant it moves the extruder to a weighted average of that target over a window pressure_advance_smooth_time long, centered on that instant, with the weight falling off toward both edges. The window can span several G-code moves.
The target is Klipper’s formula pa_position = nominal_position + pressure_advance * nominal_velocity, from its Kinematics document (what pressure advance is covers why the offset exists). Followed raw, it would ask the extruder motor for a sudden change of speed each time the toolhead starts or stops accelerating, as it does at every corner. The averaging has two effects:
- The extruder moves early and late. It starts before the extrusion move begins and keeps going after it ends, by up to half the smooth time.
- Sudden jumps get spread out. Any abrupt change in the target is stretched across the whole window, so the motor never gets an instant speed change.
Smoothing changes only when the extruder pushes and pulls, not the toolhead’s path.
What is the tradeoff between smooth time and pressure advance?
A longer smooth time buys a calmer extruder at the cost of corner accuracy; a shorter one does the reverse. Klipper’s documentation states only the first half: a larger value gives smoother extruder movement. Kevin O’Connor, Klipper’s lead developer, described the rest outside the official docs:
- Too long: “subtle print blemishes leading up to corners,” in a draft tuning guide he proposed in 2020 that was never merged. His 2024 simulations on the Klipper forum showed the smoothing over-extrudes during speed changes. At a corner the head is slow, so that extra plastic lands in one spot as a blob.
- Too short: it “can cause excessive extruder noise and result in skipped steps,” in the same draft guide.
- Longer smooth time: a blob at each turn
- Shorter smooth time: even width through the turns
Change the smooth time and you need to tune pressure advance again. A pressure advance test reads that same corner blobbing, so in O’Connor’s simulations a long smooth time skewed calibration toward a higher pressure_advance than the extruder needed. In the same forum thread he wrote that the right smooth time depends on acceleration (the higher the acceleration, the lower it should be) and that the 0.040 s default seems too high. Those are forum posts; Klipper’s documentation and source still default to 0.040 s.
Should you change the smooth time from the default?
Not unless corners still blob after you tune pressure advance. Klipper’s documentation keeps 0.040 s, the Voron 2.4 configuration leaves the line commented out with the note “Default is 0.040, leave stock,” and O’Connor’s unmerged draft guide says it “rarely requires tuning.” Several printer makers and Klipper distributions ship lower values, though:
| Configuration | pressure_advance_smooth_time |
|---|---|
| Klipper default | 0.040 |
| Voron 2.4 template | 0.040, left commented out |
Creality K2 series (every printer.cfg in Creality’s K2 Klipper repository) |
0.038 |
| Sovol SV08 | 0.035 |
| QIDI Q1 Pro, Plus4 and Q2 | 0.03 |
| RatOS file for the LGX Lite extruder | 0.02 |
Lower it if you print at high acceleration and corners still blob after tuning pressure advance. Shipped configs that lower it use 0.02 to 0.038; the tower test at the end of this page finds yours. Raise it, up to 0.200 s, only if the extruder gets loud or skips steps on hard accelerations. Klipper’s Pressure advance guide gives two other fixes for an extruder that skips at a high pressure advance value: lower the acceleration or turn pressure advance off.
How do you set pressure_advance_smooth_time in Klipper?
Put it in the [extruder] section of printer.cfg and send RESTART, or change it live with SET_PRESSURE_ADVANCE.
[extruder]
pressure_advance: <your tuned value>
pressure_advance_smooth_time: 0.040
Live, in the console:
SET_PRESSURE_ADVANCE SMOOTH_TIME=0.02
- It applies straight away and keeps the current
ADVANCEvalue. AddEXTRUDER=<name>for an extruder other than the active one. - It lasts until the next restart. Klipper reads
printer.cfgagain at startup, so put a value you want to keep in the file. - The command accepts 0 to 0.200. A 0 disables pressure advance even though
pressure_advancestill shows its value. To switch it off on purpose, sendSET_PRESSURE_ADVANCE ADVANCE=0and the reported value will read 0.
How to check it on your own print
- Read the current values. Send
SET_PRESSURE_ADVANCEwith no parameters: Klipper printspressure_advanceandpressure_advance_smooth_time. In a macro, the smooth time isprinter.extruder.smooth_time. - Test smooth time with a tower. O’Connor’s draft guide prints Klipper’s
square_tower.stl(the pressure advance test model) withTUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=SMOOTH_TIME START=0.101 FACTOR=-.002. The smooth time starts at 0.101 s and drops 0.002 s per millimeter of height. Print it at the acceleration you normally use, because acceleration changes the answer. - Pick the height where the corners look cleanest without the extruder getting loud or skipping. The value is
0.101 - 0.002 * height. - Retune pressure advance at that smooth time. Klipper’s test sets
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500, then runsTUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005for direct drive orFACTOR=.020for a long Bowden. How to read the pressure advance test covers picking the band. - Save both values in
[extruder]and sendRESTART, which also clears the test’s velocity limits. - If corners still misbehave, check which way they fail: bulging corners point to too little pressure advance, and rounded corners with thin lines leading into them to too much.
Sources
- Configuration reference, [extruder], Klipper documentation (accessed October 24, 2026)
- G-Codes (SET_PRESSURE_ADVANCE, TUNING_TOWER), Klipper documentation (accessed October 24, 2026)
- Kinematics, pressure advance section, Klipper documentation (accessed October 24, 2026)
- Pressure advance, Klipper documentation (accessed October 24, 2026)
- Status reference, extruder_stepper, Klipper documentation (accessed October 24, 2026)
- klippy/kinematics/extruder.py at v0.13.0, Klipper on GitHub (accessed October 24, 2026)
- klippy/chelper/kin_extruder.c at v0.13.0, Klipper on GitHub (accessed October 24, 2026)
- Pressure_advance_smooth_time skews pressure_advance, Kevin O'Connor, Klipper Discourse (January 2024) (accessed October 24, 2026)
- An advanced tuning guide, Klipper pull request 3158 by Kevin O'Connor (2020, closed without merging) (accessed October 24, 2026)
- Voron2_Octopus_Config.cfg, Voron 2.4 Klipper configuration (VoronDesign, GitHub) (accessed October 24, 2026)
- config/F008/printer.cfg, Creality K2 Series Klipper (CrealityOfficial, GitHub) (accessed October 24, 2026)
- printer_data/config/printer.cfg, Sovol SV08 (Sovol3d, GitHub) (accessed October 24, 2026)
- config/printer.cfg, QIDI Q1 Pro (QIDITECH, GitHub) (accessed October 24, 2026)
- config/printer.cfg, QIDI Plus4 (QIDITECH, GitHub) (accessed October 24, 2026)
- config/printer.cfg, QIDI Q2 (QIDITECH, GitHub) (accessed October 24, 2026)
- extruders/lgx-lite.cfg at v2.1.x, RatOS configuration (Rat-OS, GitHub) (accessed October 24, 2026)