Ramblings of an aging IT geek
← Ramblings of an aging IT geek
hardware

the day klipper made my old printer feel new

Swapping Marlin for Klipper on an ageing Ender, what input shaping and pressure advance actually did to print times and quality, and the tuning that earned it.

A 3D printer mid-print on a cluttered bench

My printer is old enough that I'd stopped expecting much from it. It printed. Slowly, with the occasional ringing artefact on sharp corners, and I'd long since accepted that as the cost of owning a budget machine I'd already replaced the hotend and board on twice. Then I finally put Klipper on it, and the thing genuinely flew. Not "felt a bit quicker" flew. Print times roughly halved on the parts I make most, and the surface finish got better at the same time, which I'd assumed was a contradiction.

The short version of why: Klipper runs the heavy maths on a Raspberry Pi instead of the printer's little microcontroller, which just becomes a dumb stepper-pusher. That frees up enough headroom to do two things properly that Marlin could only sort of do.

The first is input shaping. Ringing, those ghost echoes after a corner, is the frame resonating. Klipper can measure the resonant frequency, with an accelerometer strapped to the toolhead, and then shape the motion commands to avoid exciting it. I ran the test, got a couple of frequency peaks, dropped them into the config, and the ringing on my calibration cube simply went away. Not reduced. Gone.

[input_shaper]
shaper_freq_x: 41.8
shaper_type_x: mzv
shaper_freq_y: 38.2
shaper_type_y: mzv

The second is pressure advance, which manages the lag between the extruder pushing and plastic actually arriving at the nozzle. Tune it and your corners stop bulging and your line starts stopping when you tell it to. It's a single number you dial in from a test print, and once it's right, the difference at speed is obvious.

The printer bench, tools and a spool of filament

A word on the accelerometer, because it's the bit people skip. You need one wired to the toolhead to run the resonance test properly, an ADXL345 on a little breakout board, soldered to a few GPIO pins and held on with whatever you've got to hand. I used a zip tie and a prayer. It feels like overkill for a measurement you take once, and then you realise that "once, correctly" is exactly the point: you measure the real machine, with its real mass and its real wobbly frame, rather than copying someone else's numbers off a forum and hoping your printer resonates the same way theirs does. It won't.

None of this was free, to be clear. The setup is more fiddly than flashing Marlin and walking away. You're editing a config file over SSH, learning what a macro is, running resonance tests, and there's a real evening of "why won't it home" before the satisfying bit arrives. If you just want to print the occasional bracket, the effort probably isn't worth it. Mainsail gives you a tidy web interface once it's up, which softens the blow, but the first night is still a first night.

But I print a lot, and the machine had become a bottleneck I'd quietly resented. Klipper turned it back into something I'm happy to leave running. The hardware was always capable of more. The firmware was the thing holding it back, and I'd spent two years blaming the wrong part.