← How-Tos
3d-printing May 7, 2026 ◑ 1 views ◯ 6 min read

How to Calibrate Input Shaper and Pressure Advance in Klipper

klipperinput shaperpressure advancecalibrationresonanceringing3d printing

Introduction

Input Shaper and Pressure Advance are Klipper's two most powerful features for print quality. Input Shaper compensates for mechanical resonances โ€” the vibrations that cause ringing (ghosting) on sharp corners and curved surfaces. Pressure Advance compensates for the delay between extruder motion and nozzle flow โ€” eliminating corner blobs, improving dimensional accuracy, and allowing faster print speeds. Together, they can transform a mediocre printer into one that produces commercial-quality results. This guide explains the physics behind each feature, provides step-by-step calibration procedures, and shows you how to tune both to perfection for your specific machine.

What You Need

Part 1: Input Shaper

How It Works

Every mechanical system has resonant frequencies where vibrations amplify. When a printer's nozzle changes direction, the frame and belts ring at these frequencies, creating visible artifacts on the print surface. Input Shaper modifies the motion command signal to cancel out these resonances before they reach the mechanical system โ€” similar to noise-canceling headphones. It does this by splitting motion commands into multiple smaller moves timed to destructively interfere with the resonant frequency.

Shaper Types

Method A: Automatic Calibration with Accelerometer

Wiring the ADXL345

Install Dependencies

cd ~/klipper sudo apt install python3-numpy python3-matplotlib ~/klipper/scripts/install-klipper.sh

Configure the Accelerometer

[adxl345] axes_map: x,y,z [resonance_tester] accel_chip: adxl345 probe_points: 117.5, 117.5, 20

Run Calibration

RESONANCE_TESTER_ACCEL_CHIP=adxl345 TEST_RESONANCES AXIS=X TEST_RESONANCES AXIS=Y

Klipper moves the toolhead back and forth at increasing frequencies while the accelerometer records vibrations. It generates:

Calculate Optimal Shaper

SHAPER_CALIBRATE AXIS=X SHAPER_CALIBRATE AXIS=Y

Klipper recommends the best shaper type and frequency. The output looks like:

Recommended shaper_type_x = mzv, shaper_freq_x = 48.4 Hz

Update Config and Save

[input_shaper] shaper_type_x: mzv shaper_freq_x: 48.4 shaper_type_y: mzv shaper_freq_y: 42.1

Then: SAVE_CONFIG

Method B: Manual Calibration (No Accelerometer)

If you do not have an accelerometer, use the ringing tower test:

  1. Download the ringing_tower.stl from Klipper's docs
  2. Print it at 100mm/s with acceleration at your normal setting
  3. Examine the ringing patterns on X and Y faces
  4. Measure the distance between ringing lines with calipers
  5. Calculate frequency: freq = speed (mm/s) / distance (mm)
  6. Example: 100mm/s speed, 2.1mm ring spacing โ†’ 47.6 Hz
  7. Start with shaper_type = mzv and calculated frequency
  8. Print another test and fine-tune

Testing Results

  1. Print a sharp-corner test cube (40x40x20mm)
  2. Compare with Input Shaper on vs off
  3. Ringing should be dramatically reduced or eliminated
  4. If corners look rounded, the shaper is too aggressive โ€” try ZV or lower frequency

Part 2: Pressure Advance

How It Works

When the extruder pushes filament, the molten plastic in the nozzle behaves like a spring โ€” it compresses under pressure and decompression takes time. When the print head decelerates for a corner, the extruder slows, but the nozzle keeps extruding due to this stored pressure. This creates a blob at the corner. When accelerating out of the corner, the opposite happens โ€” a slight under-extrusion. Pressure Advance compensates by advancing (or retarding) the extruder position relative to the toolhead motion, keeping nozzle pressure constant.

Calibration Procedure

Step 1: Prepare

Step 2: Print the PA Test

  1. Use Klipper's built-in pressure advance tower:
Pressure Advance Calibration: Set VELOCITY=100, use SET_PRESSURE_ADVANCE ADVANCE=0.0 and increase by 0.02 every 10mm
  1. Or manually slice a tower with PA values labeled in G-code:
; Layer change โ€” set PA to 0.02 SET_PRESSURE_ADVANCE ADVANCE=0.02
  1. Print at your normal outer wall speed (30-50mm/s)

Step 3: Analyze the Print

Examine the corners of the test print:

Step 4: Fine-Tuning

  1. Find the section with the best corners
  2. Note the PA value
  3. Print a finer-resolution test around that value (steps of 0.005)
  4. Select the best value

Step 5: Update Configuration

[extruder] pressure_advance: 0.04 pressure_advance_smooth_time: 0.04

SAVE_CONFIG and restart Klipper.

Pressure Advance by Filament Type

Part 3: Combined Testing

With both features enabled, print a comprehensive test:

  1. 40x40x20mm hollow cube (2 walls, no infill, no top)
  2. 50mm/s print speed
  3. 3000mm/sยฒ acceleration

Inspect for:

Advanced: Tuning for Speed

Once calibrated, you can increase acceleration without ringing:

  1. Start with your current acceleration (e.g., 1500mm/sยฒ)
  2. Print the test cube
  3. Increase acceleration by 500mm/sยฒ
  4. Reprint and check quality
  5. Continue until quality degrades
  6. Back off 20% for reliable daily printing

Typical results after tuning:

Troubleshooting

Input Shaper Issues

Pressure Advance Issues

Pro Tips

[gcode_macro TEST_QUALITY] gcode: SET_INPUT_SHAPER SHAPER_TYPE=none SET_PRESSURE_ADVANCE ADVANCE=0.0 M104 S200 M140 S60

Conclusion

Input Shaper and Pressure Advance are the two calibration steps that separate average prints from exceptional ones. Input Shaper eliminates ringing artifacts by compensating for mechanical resonances, letting you run higher accelerations without surface degradation. Pressure Advance eliminates corner blobs and gaps by synchronizing extruder pressure with toolhead motion. Both calibrate in under an hour and the results are permanent until hardware changes. A properly tuned Klipper printer with IS and PA enabled can print at 2-3x the speed of an untuned Marlin machine while producing cleaner surfaces and sharper corners.