Klipper Input Shaper Without an Accelerometer: The Eye-and-Pattern Method

Why this comes up in the first place

Klipper’s input shaper is the single biggest reason people switch firmware. Cancel the ringing, double your usable speed — sounds great until you read the documentation and realize the official path requires an ADXL345 wired into a Raspberry Pi GPIO header, a soldering iron, and an evening of debugging. A lot of printer owners stop right there. They want the speed gains, but they do not want to commission a sensor on a machine they just got working.

The good news: you can configure input shaper without an accelerometer. The slightly less good news: you give up some precision and you have to be honest about what you are doing — calibrating by eye instead of by data. Done carefully, the eye-and-pattern method gets you 80-90% of the benefit. Done sloppily, it gets you new ringing in places you did not expect.

klipper input shaper without accelerometer - finished print closeup

What input shaper actually does

Every printer has resonant frequencies in its X and Y axes. When the toolhead changes direction, the gantry rings at those frequencies and the nozzle deposits filament where the ringing is, not where the gcode said to put it. This is what shows up as ghosting after sharp corners and as wavy seams.

Input shaper preempts the ringing. It shapes the acceleration profile so that the impulse from the move and the impulse from its echo cancel each other out at the toolhead. The math is straightforward, but it needs one number per axis: the resonant frequency. With an accelerometer you measure that number directly. Without one, you produce it.

The ringing tower test

Klipper ships a calibration print called a ringing tower. It is a tall thin tower with deliberate sharp direction changes at known velocities. After printing it, you measure the spacing of the ghosting bands and back-calculate the resonant frequency. This is the canonical no-accelerometer method.

The procedure has three steps. First, you add a temporary block to your printer.cfg that disables input shaping and instructs Klipper to vary acceleration over the height of the print. Second, you slice the test STL from klipper/docs/prints/ and print it twice — once on X, once on Y, rotated 90°. Third, you measure where the ghosting starts to fade and read off the frequency from a lookup table.

Doing the X-axis test

Add the following to printer.cfg for the X-axis run:

[input_shaper]
shaper_freq_x: 0
shaper_freq_y: 0

[resonance_tester]
accel_chip: none
probe_points: 100, 100, 20

Then in your slicer, set acceleration to 7000 mm/s² and disable any acceleration overrides. Print the X tower with the gcode injection that ramps acceleration from 1500 mm/s² at the bottom to 7000 mm/s² at the top in 500 mm/s² increments per layer band. The official Klipper docs include the gcode for this — you do not need to write it yourself.

After printing, look at the ringing pattern. There will be a height where the ringing visibly weakens and a height where it disappears. Measure the distance from the bottom of the tower to where it weakens — call that distance D in millimeters. Now apply this formula:

frequency (Hz) = velocity / (2 × ringing_distance)

Where velocity is the print velocity at that height (typically 100 mm/s for the test) and ringing_distance is the measured spacing between two adjacent ghost bands in millimeters, not the distance from the base.

Reading the ghost bands

This is the hard part. Use a magnifying glass under raking light from a phone flashlight. The ghost bands are the bright/dark stripes after a corner. You want to measure peak-to-peak — the spacing of one full ringing cycle. On a typical bed slinger you will see something like 2-4 mm spacing, which corresponds to 25-50 Hz on the Y axis. CoreXY frames usually show tighter spacing on Y because the gantry is stiffer.

Measure at least three pairs and average them. Eye measurement under good light is reliably within ±2 Hz of an accelerometer reading on a stiff frame. On a flexible bed slinger the variance is closer to ±5 Hz, which is still good enough for shaping.

klipper input shaper without accelerometer - filament spool closeup

Picking a shaper type without data

An accelerometer-driven calibration tells you which shaper algorithm to use — MZV, EI, 2HUMP_EI, 3HUMP_EI. Without one, you pick by frame type. Use these defaults:

  • Bed slinger (Ender 3, Prusa Mini, Bambu A1): MZV on both axes. Good speed, low residual ringing.
  • CoreXY (Voron, X1C, K1): EI on both axes. Slightly slower but more tolerant of frequency drift.
  • Heavy direct drive on bed slinger Y: 2HUMP_EI on Y to handle the wider resonance band.

Writing the configuration

Once you have your numbers, replace the calibration block with the real shaper configuration:

[input_shaper]
shaper_freq_x: 42
shaper_type_x: mzv
shaper_freq_y: 36
shaper_type_y: mzv

Restart Klipper and reprint the ringing tower at full acceleration. The bands should be gone or reduced to faint shadows. If they came back stronger at a different height, you read the wrong band and need to re-measure.

Common failure modes

People who get bad results without an accelerometer almost always do one of three things. They measure the distance from the base instead of band-to-band spacing, they print the test on a hot plastic that warps and skews the bands, or they assume the X and Y frequencies are the same and skip the Y-axis test. The X and Y values are almost never identical even on a CoreXY — the toolhead mass distribution differs between the axes.

The other common error is enabling pressure advance and input shaping in the same calibration session. Pressure advance creates its own corner artifacts. Calibrate input shaping first, with PA disabled, then bring PA back and tune it separately.

How much speed you actually gain

On a bed slinger going from no shaper to MZV with eyeballed frequencies, expect to safely raise acceleration from 1500-2000 mm/s² to 4000-6000 mm/s². On a CoreXY with EI shaper the headroom is higher — 8000-12000 mm/s² is achievable. These numbers assume the rest of your tuning is in order: properly tensioned belts, tight pulleys, and a frame that does not flex when you push the gantry by hand.

The speed-vs-quality tradeoff still matters. Doubling acceleration cuts print time on infill-heavy parts by 20-30%. On surface-detail-heavy parts the gain is smaller because perimeter speed is the bottleneck. If you are printing miniatures, the input shaper buys you cleaner walls but rarely faster total prints.

klipper input shaper without accelerometer - hardware detail

When you finally need an accelerometer

If you can dial in shaping by eye and you are happy with the output, an accelerometer is a nice-to-have, not a must-have. Where it becomes important is when you change physical things — heavier hotends, bed mass changes, belt re-tensioning. Each of those shifts your resonance, and re-running the ringing tower every time is annoying. An ADXL345 lets you re-measure in two minutes from the command line.

The other case is heavily modded printers where the resonance is asymmetric across the print volume. The ringing tower only measures one location. Real accelerometer sweeps measure across the bed and reveal corners that ring at different frequencies than the center. For most stock printers this is overkill.

What about Marlin’s input shaper

Marlin 2.1+ ships with its own input shaper implementation, and the eye-and-pattern method works there too with one significant difference. Marlin’s shaper does not include the auto-tuning macros Klipper provides for the ringing tower. You print the test, measure the bands, and write the frequencies into your firmware as build flags rather than runtime configuration. Changing the values means recompiling and reflashing. This is annoying enough that most Marlin users either pick a value once and live with it or migrate to Klipper specifically for the iteration speed on shaping calibration.

The frequencies you measure on a printer transfer between firmwares. If you measured 42 Hz X and 36 Hz Y for Klipper and decided to move that printer to Marlin later, those numbers are still correct. The mechanical resonance does not care which firmware is generating the impulses.

What changes if you upgrade your hotend

Adding mass to the toolhead lowers the resonant frequency. Swapping a stock V6 for a Mosquito or Dragon usually drops resonance by 5-15 Hz. If your printed quality degrades after a hotend upgrade and the prints look like the input shaper stopped working, the shaper did not stop — your frequencies just shifted. Reprint the ringing tower and update the configuration.

This is also why the eye method has staying power. It is fast enough to redo whenever the toolhead changes, and it tracks reality better than a one-time-installed accelerometer if you re-measure after every modification.

The honest verdict

You can get most of the input-shaper benefit with a printed test piece, a phone flashlight, and a calculator. The path is well-documented inside the Klipper repo and does not require any soldering or extra hardware. The only thing it costs is a couple of hours of careful printing and measurement. For the printer owner who is allergic to wiring, it is the right starting point. If you outgrow it later, an accelerometer is a sub-$10 add-on. Most people never bother — and the print quality on a properly eye-calibrated machine is, to most observers, indistinguishable from accelerometer-tuned output.