Voron Input Shaper Guide — Eliminate Ghosting & Ringing
Calibration Klipper Input Shaper
Input shaper is the single most impactful Klipper feature for print quality. It measures your printer's natural resonance frequencies and filters the motion commands to cancel out vibrations before they appear on your print. The result: zero ghosting, sharp corners, and clean surfaces even at high speeds. Last updated: May 2025.
Every Voron has its own resonance fingerprint — frame size, belt tension, toolhead mass, and even your table surface all affect the frequencies. This guide covers both methods for finding and applying input shaper: the ADXL345 accelerometer method (fast, precise, recommended) and the manual tuning method (no extra hardware needed). We also cover which shaper types work best for each Voron model and how to squeeze the most out of your acceleration limits.
Prerequisite: You should have Klipper installed and connected. If you haven't set it up yet, see our Klipper setup guide first. You'll also want a solid baseline calibration before fine-tuning input shaper.
Why Input Shaper Matters for Voron Printers
Voron printers are designed for speed — but speed introduces vibration. At accelerations of 5,000-10,000 mm/s², the gantry's inertia excites natural resonance frequencies in the frame. This shows up as ringing (ghosting): repeating wave patterns on vertical surfaces, especially near sharp corners. Without input shaper, you have two bad options: print slower (defeating the purpose of a Voron) or live with ghosting.
Input shaper solves this mathematically. It pre-distorts the acceleration profile so that vibrations from one movement cancel out vibrations from the previous movement. Klipper's implementation supports multiple shaper algorithms — each with different trade-offs between vibration suppression, smoothing, and settling time.
The China-direct advantage: ADXL345 accelerometer boards cost $3-5 on AliExpress vs $15-20 from US/EU retailers. At that price, there's no reason not to use the hardware method. If you're sourcing parts for your Voron build, check our parts page for recommended suppliers.
Method 1: ADXL345 Accelerometer (Recommended)
This is the fast and accurate method. An ADXL345 accelerometer measures real-time vibration on the toolhead, and Klipper calculates the exact resonance frequencies automatically.
Wiring the ADXL345
The ADXL345 communicates over SPI. Connect it to your SBC (Raspberry Pi, CB1, etc.) — not the main controller board. The SPI pins are:
| ADXL345 Pin | Raspberry Pi GPIO | CB1 / BTT Pi Pin | Wire Color (Typical) |
|---|---|---|---|
| VCC | 3.3V (Pin 1 or 17) | 3.3V | Red |
| GND | GND (Pin 6, 9, 14, etc.) | GND | Black |
| CS | CE0 (Pin 24) | SPI0 CS | Blue |
| SDO | MISO (Pin 21) | SPI0 MISO | Green |
| SDA | MOSI (Pin 19) | SPI0 MOSI | Yellow |
| SCL | SCLK (Pin 23) | SPI0 SCLK | Orange |
Important: Use a 1-2 meter lightweight ribbon cable or silicone wire. Keep the wires as short as practical and twist the SCLK and MOSI lines to reduce noise. Do not use jumper wire bundles longer than 2m — signal integrity degrades and you'll get unreliable readings.
Mounting the ADXL345 on the Toolhead
The ADXL345 must be rigidly mounted to the toolhead. Printed mounts are available for every Voron toolhead:
- StealthBurner: Use the Voron-spec ADXL mount (M3 screw into the rear fan mount hole).
- Afterburner: Clip-on mount that attaches to the extruder body.
- Mini-Stealth / Galileo 2: Specific mounts on GitHub for each variant.
- Generic: Double-sided tape (3M VHB) works in a pinch — but a screw mount is better for repeatable results.
The sensor orientation matters: mount it so the X and Y axes align with your printer's movement axes. Most ADXL345 boards have the axes printed on the PCB. If you mount it rotated, compensate in the Klipper config with the axes_map parameter.
Klipper Configuration for ADXL345
Add the following to your printer.cfg. This assumes SPI connection on the SBC:
[adxl345]
cs_pin: rpi:None
spi_software_sclk_pin: rpi:GPIO23
spi_software_mosi_pin: rpi:GPIO19
spi_software_miso_pin: rpi:GPIO21
If you're using hardware SPI (Raspberry Pi pins 19/21/23/24), use:
[adxl345]
cs_pin: rpi:None
The cs_pin: rpi:None tells Klipper the ADXL345 is connected directly to the SBC (not via the main MCU). Run RESTART in the Klipper console to load the config.
Verifying the Sensor
Run ACCELEROMETER_QUERY in the Klipper console. You should see acceleration readings for X, Y, and Z axes. If you get an error, check:
- Wiring is correct (CS pin is the most common mistake)
- The ADXL345 is getting 3.3V (not 5V — it will be damaged)
- SPI is enabled on the SBC (
sudo raspi-config-> Interface Options -> SPI -> Enable) - The
cs_pinmatches your wiring (CE0 = rpi:None, CE1 = rpi:None on alternate CS)
Running SHAPER_CALIBRATE
This is the main event. Klipper will perform a frequency sweep on X and Y axes, analyze the vibration data, and recommend the best shaper type and frequency for each axis.
- Heat the bed to 100°C (printing temperature matters — thermal expansion affects resonance)
- Home the printer:
G28 - Run:
SHAPER_CALIBRATE - Klipper will vibrate the toolhead on X first, then Y, gathering frequency response data
- After ~2-3 minutes, Klipper outputs recommended settings like:
Recommended shaper_type_x = 2hump_ei, shaper_freq_x = 58.4 Hz
Recommended shaper_type_y = mzv, shaper_freq_y = 52.1 Hz - Run
SAVE_CONFIGto write the recommended settings to yourprinter.cfg
Pro tip: After saving, run a ringing test print (a cube with sharp corners at high acceleration) to visually verify the improvement. If you still see ghosting, re-run SHAPER_CALIBRATE — sometimes a single run has noise that throws off the measurement.
Visualizing the Frequency Graph
Klipper can generate a CSV of the frequency response data. Use:
ACCELEROMETER_GRAPH — this generates a PNG graph showing vibration amplitude vs frequency for both axes. Large spikes are your printer's resonance frequencies. The goal of input shaper is to notch-filter those spikes.
You can also run MEASURE_AXES_NOISE to check the noise floor. If the noise floor is above 50-100 mg, your ADXL345 mounting or wiring is picking up interference.
Method 2: Manual Tuning (No ADXL345)
No accelerometer? No problem — you can still tune input shaper manually. It takes longer (expect 5-10 test prints) but the results are nearly as good once dialed in.
Printing the Ringing Test Pattern
- Download the ringing test tower from the Klipper documentation
- Slice with high acceleration (8,000-10,000 mm/s²) to make ringing visible
- Print the tower — it has increasing speeds as it goes up, revealing ghosting patterns at different frequencies
- Measure the distance between ghosting waves on the print surface
Measuring Ghosting Frequency
The ghosting distance on the print relates to frequency by a simple formula:
frequency (Hz) = print_speed (mm/s) / ghosting_distance (mm)
For example, if you print at 100 mm/s and the ghosting waves are 2mm apart: 100 / 2 = 50 Hz. That's your resonance frequency.
Use calipers to measure the ghosting distance accurately. Take 3-5 measurements and average them. Do this for both X and Y directions (print separate towers oriented for each axis if needed).
Configuring Input Shaper Manually
Add the following to your printer.cfg:
[input_shaper]
shaper_type_x: mzv
shaper_freq_x: 55
shaper_type_y: mzv
shaper_freq_y: 50
Start with MZV (Modified Zero Vibration) — it's the best all-rounder for Voron printers. Print a test piece, check for ghosting, and adjust the frequency up or down by 2-3 Hz increments until ghosting is minimized.
Choosing the Best Shaper Type for Your Voron
Klipper supports several shaper algorithms, each with different trade-offs. Here's how they compare:
| Shaper Type | Ghosting Suppression | Smoothing | Max Accel Loss | Best For |
|---|---|---|---|---|
| ZV | Moderate | Minimal | ~10% | Very rigid frames (V0.2) |
| MZV | Good | Low | ~15% | All-round best for Voron |
| ZVD | Very Good | Moderate | ~25% | Trident 300mm+ |
| EI | Excellent | High | ~40% | Maximum smoothing priority |
| 2HUMP_EI | Excellent | Moderate-High | ~25% | V2.4 (two resonance peaks) |
| 3HUMP_EI | Maximum | Highest | ~35% | Large V2.4 350mm |
Our recommendation: Start with MZV for all Voron models. If ghosting persists, try 2HUMP_EI (particularly good for V2.4s that have two distinct resonance peaks from the flying gantry). Only use EI or 3HUMP_EI if you're willing to trade acceleration for maximum surface quality — these types introduce more smoothing and reduce your maximum acceleration more.
Recommended Accelerations After Input Shaper
Input shaper allows higher accelerations, but frame rigidity still sets the ceiling. These are starting points for each Voron model after proper shaper calibration:
- V0.2 (120mm): 10,000-15,000 mm/s². The tiny frame is extremely rigid. With 2HUMP_EI you can push past 15K.
- Trident 250mm: 8,000-12,000 mm/s². Excellent rigidity from the fixed gantry.
- Trident 300mm: 6,000-10,000 mm/s². Some reduction from the larger frame span.
- V2.4 250mm: 6,000-10,000 mm/s². The flying gantry is less rigid than a fixed gantry.
- V2.4 350mm: 4,000-8,000 mm/s². Large frame = more resonance. 3HUMP_EI recommended.
These values assume proper belt tension and a well-squared frame. If your frame isn't perfectly square or belts are loose, you'll need to reduce accelerations regardless of input shaper settings. See our belt tension guide and calibration guide for details.
Belts, Frame Stiffness, and Their Effect on Resonance
Input shaper can't fix mechanical problems. If your belts are loose, input shaper will measure the right frequency — but that frequency will change as the belt stretches during fast moves, making the shaper less effective. Tighten belts to spec first (see our belt tension guide), then calibrate input shaper.
Frame stiffness also matters. A wobbly table or uneven floor adds low-frequency vibrations that input shaper can't fully cancel. Ensure your Voron is on a sturdy surface. Some builders add concrete pavers or rubber vibration dampeners under the feet.
Belt-driven vs leadscrew Z: The Trident's triple Z leadscrews are inherently more rigid than the V2.4's belt-driven Z, which shows in the resonance profile. Trident users typically see cleaner frequency graphs with one dominant peak. V2.4 users may see two peaks (frame + gantry belt resonance). Use 2HUMP_EI for the V2.4 for this reason.
Troubleshooting Input Shaper
- SHAPER_CALIBRATE fails with "ADXL345 not ready": Check wiring, especially the CS pin. Run
ACCELEROMETER_QUERYto verify the sensor responds. - Ghosting only visible on one axis: That axis has a resonance peak the shaper isn't cancelling. Re-run SHAPER_CALIBRATE or manually adjust
shaper_freqfor that axis by ±5 Hz. - Ghosting persists but frequency is correct: Try a different shaper type. MZV might not be aggressive enough for your frame's resonance amplitude. Switch to 2HUMP_EI or ZVD.
- Artifacts at specific speeds only: VFA (Very Fine Artifacts) from stepper motor resonance, not frame resonance. Input shaper won't help — try adjusting microstepping or stepper driver current.
- ADXL345 readings show noise spikes: Check that the sensor cable isn't running next to stepper motor wires or the hotend heater wires. EMI interference corrupts the readings.
- Different frequencies on re-test: Normal — small variations in belt tension, temperature, and mounting position cause minor shifts. Average 3 runs and use the middle values.
Advanced: Fine-Tuning with CSV Data
For the truly dedicated, Klipper can export raw CSV data from the accelerometer. Run ACCELEROMETER_MEASURE CHIP=adxl345 NAME=test_x while moving the toolhead on X. The CSV file is saved in /tmp/klipper/. You can import this into Python (using matplotlib) for custom analysis, or share it with the Voron community for help diagnosing tricky resonance profiles.
Some Klipper frontends like Mainsail and Fluidd display the frequency graph directly in the UI, making this analysis much easier. If you're using an older version of Mainsail, update to get the graph feature.