Klipper is a very powerful firmware addition to most 3D printers.
3D Printer Firmware
Before getting into Klipper, it’s first important to understand the computing technology typically used on desktop 3D printers. The most common configurations involve a micro-controller board, such as an Arduino, Duet, or other model. These devices directly connect with the stepper motors that drive the motion system and with heaters, and other elements of the system.
These micro-controllers use firmware, which is just software running on these embedded micro-controllers. Of the several standard firmware versions that are commonly used, perhaps the most popular today is Marlin.
The problem is that the micro-controller boards are typically underpowered for what they are asked to do. They are underpowered because they are the least expensive boards that can be found for the configuration. This allows the manufacturer to keep the price of the machine low, and yet it still operates to an acceptable level of performance.
However, there are many who wish to push their equipment further. Two aspects in particular are desirable:
- Faster print speed
- Better print quality
Often these are related: if you print too fast, the quality suffers. If you print slower, the print comes out better, but at the price of time.
Klipper could offer a solution to these problems by introducing new capabilities. They project explains:
“Klipper is a 3D printer firmware. It combines the power of a general purpose computer with one or more micro-controllers.”
They’re adding a much more powerful general purpose computer to sit on top of the micro-controllers and provide more processing capacity. This capacity can be used to both increase speed and maintain or even increase print quality.
The major feature of Klipper is that it takes over the burden of stepper computation, which would otherwise be borne by the low-capacity micro-controller board. Klipper uses its full power to compute printer steps and simply pass on the resulting instructions to the micro-controller to execute.
This computation model allows much faster stepper movements, because the micro-controller doesn’t get bogged down in computations. And that means you can 3D print faster. Klipper says that even older 8-bit micro-controller boards can be rated up to rates as high as 175k steps per second! For modern boards, they claim as high as 500K steps per second.
But there’s another issue: when you’re yanking the toolhead around so quickly there will be a lot of momentum to overcome. This is also addressed by Klipper. They explain:
“Each stepper event is scheduled with a precision of 25 micro-seconds or better. The software does not use kinematic estimations (such as the Bresenham algorithm) — instead it calculates precise step times based on the physics of acceleration and the physics of the machine kinematics. More precise stepper movement translates to quieter and more stable printer operation.”
Klipper leverages the processing capacity for other features, one of which is called “Smooth Pressure Advance”. This is an advanced computation to account for the fluid pressure flow within a hot end.
As you might guess, simply starting and stopping the extruder doesn’t precisely stop and start the extrusion. When the extruder pushes the filament into the hot end, pressure gradually rises until it hits a critical point and then flow begins out the nozzle. Similarly, when the extruder motor stops the pressure in the hot end, and hence the nozzle, doesn’t immediately stop.
The Smooth Pressure Advance feature performs advanced calculations to manage these effects. In other words, extrusions should start and stop exactly when they are intended. This should ensure fewer gaps and blobs in prints, as well as dramatically reducing stringing from nozzle ooze.
Another feature of great interest is “Input Shaping”, where “ringing” is eliminated. Ringing occurs as a repeating pattern of waves at the corners of objects. The pattern reflects the vibrations taking place when the toolhead’s direction suddenly changes.
Ringing spoils the surface quality, but it can be reduced or eliminated with Input Shaping, which again uses computational power to compute tool path instructions that avoid ringing effects.
There’s plenty more features implemented by Klipper that you can see on their “Features” page.
Klipper is available free of charge via GitHub, and can be installed using OctoPrint. Note that if you’re using OctoPrint, you likely have all the extra processing hardware ready to go.
The Klipper concept seems so powerful I am wondering why more 3D printer manufacturers don’t take advantage of it. It would be possible to tweak machine designs to more easily accommodate extra processing power of this type, or even include a “Klipper Option” for those wishing to push the envelope.
If you have a need for speed, you should check out Klipper.