Voron ADXL345 Accelerometer Guide — Installation, Wiring, and Input Shaper Calibration
Calibration Klipper Electronics
The ADXL345 accelerometer is the key to unlocking Klipper's input shaper feature on your Voron. By measuring real-time vibration at the toolhead, Klipper can calculate resonance frequencies and apply input shaping filters that cancel out ringing and ghosting. The result is cleaner prints at higher speeds — no more "VFA" or "salmon skin" artifacts. This guide covers every aspect of ADXL345 installation on a Voron printer, from choosing your hardware to analyzing calibration results. Last updated: May 2025.
Hardware Options Overview
There are three main ways to connect an ADXL345 to Klipper, each with its own trade-offs:
| Connection | Pros | Cons | Best For |
|---|---|---|---|
| USB (RP2040/RP2350) | No wiring to toolhead, simplest setup, isolated from printer electronics | Costs more ($5-10), needs separate Pico board | Most Voron users, especially beginners |
| SPI (direct to MCU) | Low cost, no extra board needed, faster sampling | Needs 4+ wires in cable chain, susceptible to noise | Advanced users with spare MCU pins |
| I2C (direct to MCU) | Only 2 wires, simple wiring | Slower sampling, less reliable, limited cable length | Quick testing, not recommended for permanent install |
USB-Pico (RP2040) — Recommended Option
The USB accelerometer approach uses a Raspberry Pi Pico (or any RP2040/RP2350 board) running Klipper as a secondary MCU. The ADXL345 connects to the Pico via SPI, and the Pico connects to your main Pi via USB. This is the most recommended method for Voron printers because:
- No extra wiring through the cable chain — the Pico mounts on the toolhead and communicates over USB.
- Electrical isolation from the printer's main MCU reduces noise.
- The Pico is cheap ($4-6) and widely available.
- You can leave the Pico permanently installed for on-demand calibration.
Mounting the Accelerometer
Mounting position is critical. The accelerometer must measure the toolhead's vibration, not the frame's. The best mounting location depends on your toolhead:
StealthBurner / CW2 Mount
For StealthBurner toolheads, the ideal mounting point is on the back of the extruder body or on the fan mount. Several Voron community mods exist:
- ADXL Mount for StealthBurner — a small bracket that attaches to the M3 screw behind the extruder stepper
- PCB shroud mount — attaches to the StealthBurner PCB shroud using existing screws
Key mounting rules:
- Mount as close to the nozzle as possible — the accelerometer should measure the same vibrations the nozzle experiences.
- Use M2 or M3 bolts with nylon washers to avoid overtightening. Too much torque can dampen the readings.
- Do not use double-sided tape long-term — it can soften from chamber heat and alter readings.
- Ensure the accelerometer is oriented so its X and Y axes align with the printer's X and Y movement axes.
Wiring the ADXL345 (USB-Pico Method)
Assuming you're using a Raspberry Pi Pico with an ADXL345 breakout board:
ADXL345 Pin -> Pico Pin
VCC -> 3.3V (Pin 36)
GND -> GND (Pin 38)
CS -> GP10 (Pin 14)
SDO -> GP12 (Pin 16, also MISO)
SDA -> GP11 (Pin 15, also MOSI)
SCL -> GP13 (Pin 17, also SCK)
Optionally, add a 0.1uF decoupling capacitor between VCC and GND at the ADXL345 to filter power supply noise.
Klipper Configuration
1. Flash the Pico as a Secondary MCU
First, make your Pico a Klipper secondary MCU:
cd ~/klipper
make menuconfig
# Set: Microcontroller = Raspberry Pi RP2040
# Set: Communication interface = USB
make clean
make
Press the BOOTSEL button on the Pico and connect it to your Pi via USB. Then:
sudo mount /dev/sda1 /mnt
sudo cp out/klipper.uf2 /mnt/
sudo umount /mnt
sudo service klipper restart
Find the Pico's serial ID:
ls /dev/serial/by-id/*
2. Add the Secondary MCU to printer.cfg
{ast }{ ast }
[mcu pico]
serial: /dev/serial/by-id/usb-Klipper_rp2040_XXXXX-if00
3. Configure the ADXL345
{ast }{ ast }
[adxl345]
cs_pin: pico:GP10
spi_bus: spi1
axes_map: x,y,z
[resonance_tester]
accel_chip: adxl345
probe_points:
100, 150, 20 # Center of build plate
The axes_map parameter maps the accelerometer's physical axes to the printer's axes. If your ADXL345 is mounted differently, adjust this mapping. For standard Voron orientation where the ADXL345 label faces up and the USB port faces the front, the default x,y,z mapping is correct.
Running the Calibration
Pre-Calibration Checklist
- Heat the nozzle to your typical printing temperature (e.g., 220°C for PLA, 255°C for ABS).
- Heat the bed to your typical printing temperature.
- Close the chamber door (if enclosed) so thermal conditions match your print environment.
- Ensure the toolhead can move freely across the full XY range.
Run Resonance Measurement
From the Mainsail/Fluidd console or SSH:
TEST_RESONANCES AXIS=X
TEST_RESONANCES AXIS=Y
This will sweep the toolhead across a range of frequencies (typically 5-120 Hz) and record the vibration response. The test takes about 1-2 minutes per axis. After completion, Klipper saves a CSV file in /tmp and a PNG chart in ~/printer_data/config/.
Automatic Input Shaper Calibration
For a fully automated calibration:
SHAPER_CALIBRATE AXIS=X
SHAPER_CALIBRATE AXIS=Y
This runs the resonance test and immediately recommends input shaper parameters. After each axis finishes, accept the recommendation:
SAVE_CONFIG
Klipper will append the recommended [input_shaper] block to your printer.cfg automatically.
Analyzing the Results
The calibration produces a frequency response chart showing vibration amplitude versus frequency. Here's how to read it:
- Sharp peaks indicate specific resonance frequencies. The tallest peak is your primary resonance.
- Multiple peaks mean your toolhead has several resonance modes. Input shaper algorithms (ZV, ZVD, EI, 2HUMP_EI, 3HUMP_EI) can handle multiple frequencies.
- Broad humps suggest mechanical looseness — check your belt tension, frame bolts, and toolhead mounting.
- Flat response with no clear peak usually means the accelerometer isn't properly mounted or the wiring is faulty.
Typical Voron Trident or V2.4 resonance frequencies range from 40-70 Hz on X and 30-50 Hz on Y, depending on build quality and toolhead mass.
Input Shaper Recommendations
| Shaper | Vibration Reduction | Ghosting | Speed Loss | Recommended For |
|---|---|---|---|---|
| ZV | Good | Low | None | Light toolheads, low resonance |
| ZVD | Better | Very low | Small | Most Voron builds (balanced) |
| EI | Best | None | Moderate | Heavy toolheads, high speeds |
| 2HUMP_EI | Excellent | None | Higher | Wide resonances, large beds |
| 3HUMP_EI | Maximum | None | Highest | Difficult mechanical setups |
Permanent Installation vs. Temporary Mounting
Many Voron owners leave the ADXL345 and Pico permanently installed on the toolhead. This adds about 5-8 grams of mass, which is negligible for most printers. The benefit is being able to re-run calibration whenever you change toolheads, nozzles, or belt tension without re-wiring.
If you prefer a temporary setup, print a quick-attach mount and connect the ADXL345 via a detachable JST connector in the cable chain. Just be aware that each re-mount can introduce slight positional variation.
Troubleshooting
No Data from ADXL345
Check wiring: ensure CS is pulled high (3.3V) when not in use. Verify SPI bus selection — the RP2040 has two SPI buses, and spi1 uses GP10-GP13.
Flat/Noisy Frequency Response
Common causes: loose accelerometer mount, electrical noise from stepper motors, or a damaged ADXL345. Try adding a ferrite bead to the USB cable or moving the Pico away from the stepper driver.
Input Shaper Makes Print Quality Worse
This happens when the measured resonance doesn't match real-world conditions. Re-run calibration at printing temperature with the chamber closed. Make sure your acceleration settings in your slicer match what input shaper expects — [input_shaper] overrides your printer.cfg defaults but not slicer-overridden values.
Conclusion
Adding an ADXL345 accelerometer to your Voron is one of the most impactful calibration upgrades you can make. The USB-Pico method offers the best balance of simplicity and reliability, and once configured, the input shaper calibration is fully automatable. With proper mounting and wiring, you'll eliminate ghosting and ringing, letting you print faster without sacrificing quality. The best part? Once it's set up, re-calibrating after any mechanical change takes just a few clicks.