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

klipper, and the printer that suddenly learned to fly

Moving my 3D printer from its stock firmware to Klipper roughly doubled my usable print speeds and gave me input shaping, pressure advance, and a web interface I actually enjoy using.

A 3D printer running at speed in a workshop

The headline first: after a weekend of fiddling I moved my printer from its stock firmware onto Klipper, and the same machine now prints roughly twice as fast at the same quality, sometimes better. Nothing mechanical changed. The hardware is identical to a week ago. The difference is entirely in where the maths happens, and once you see it work it is hard to go back.

I had been told Klipper was a faff and an upgrade in equal measure. Both turned out to be true. The faff is real and front-loaded; the upgrade is permanent and felt on every print since.

what klipper actually is

Stock printer firmware runs everything on the little microcontroller on the board: parsing G-code, planning moves, doing the trigonometry, driving the steppers. That chip is doing a heroic amount on a tiny budget, and it is the bottleneck. Klipper splits the job in two. A capable computer, in my case a Raspberry Pi sitting next to the printer, does all the heavy planning and kinematics. The printer's own microcontroller is demoted to a dumb, precise executor that just fires steps when told.

That split is the whole trick. Suddenly there is enough compute to do things the original firmware never could, and to do them faster.

A Raspberry Pi wired to a printer control board on a bench

the two features that mattered

Two things made the speed jump real rather than theoretical.

Input shaping. Move a printer's toolhead quickly and it rings: the whole gantry oscillates a little after each direction change, and that shows up as faint ripples on the print, especially after corners. Input shaping measures the resonant frequency of your machine and pre-compensates the motion so the ringing cancels itself out. You can run an accelerometer on the toolhead, gather a couple of resonance plots, and Klipper tells you the frequencies and the shaper to use:

[input_shaper]
shaper_freq_x: 58.4
shaper_type_x: mzv
shaper_freq_y: 41.6
shaper_type_y: mzv

With that in place I could double the acceleration without the surface quality falling apart. That is most of where the speed came from.

Pressure advance. Molten plastic in the nozzle behaves a bit like a fluid under pressure: it lags going into a move and oozes coming out of one. The visible result is bulgy corners and thin starts to lines. Pressure advance models that pressure and adjusts extrusion ahead of time so corners stay crisp at speed.

[extruder]
pressure_advance: 0.045

Tuning it is a single calibration print and ten minutes of looking closely. The payoff is corners that stay sharp at speeds that would previously have smeared them.

the faff, honestly

I will not pretend the setup was a few clicks. It was an evening.

  • Flash the printer's microcontroller with the Klipper firmware, which means knowing your board and not getting the build options wrong. Get this bit wrong and the printer simply does not respond.
  • Get the Pi talking to the board over USB or serial, which is a small dance of device paths and permissions.
  • Build a printer.cfg from scratch, or adapt a community config for your exact machine. This file is the entire personality of the printer: kinematics, steps per millimetre, endstops, thermistor types, the lot. There is no GUI doing it for you.
  • Run the calibrations: bed mesh, pressure advance, resonance testing. None are hard individually; together they are a methodical evening.

The thing that kept me going was the feedback loop. Klipper's config is plain text, and you reload it with a command rather than reflashing and rebooting:

RESTART

So the cycle is edit the file, restart, test, repeat, in seconds rather than minutes. After the stock firmware's compile-and-flash dance, that alone felt like a luxury.

A web dashboard showing a print in progress

the bit I did not expect to love

I bolted Mainsail on top as the web interface, and that quietly changed how I use the machine more than the speed did. I send prints from my desk, watch the toolhead position and temperatures live, and never crouch in front of a tiny LCD twiddling a knob again. The webcam stream means I can glance at a long print from another room rather than hovering. It turned the printer from an appliance I stood over into something I drive from wherever I happen to be.

was it worth it

Plainly, yes. A weekend of careful setup against a machine that is twice as fast, quieter at speed because the motion is smoother, and far nicer to operate. The maths was always the limiting factor; Klipper just moves it somewhere with room to breathe.

If you have a printer that feels slow and you are not afraid of a text config file and an evening of methodical calibration, this is the single best thing you can do to it without spending money on parts. I went in expecting a marginal tweak and a lot of hassle. I got the hassle, briefly, and then a machine that genuinely flies. I am still slightly delighted every time I watch it corner at a speed the old firmware would have turned into mush.