Marlin firmware has become a crucial building block for many consumer-level 3D printers. Most Creality machines shipping out of Shenzhen run some variant of Marlin. Even higher-end Ultimaker machines run firmware derived from Marlin.
Let it be said: Marlin is a capable firmware. However, it was originally developed for 8-bit microcontrollers. Since we are now in an age of 32-bit microcontrollers, its limitations have become more apparent. While Marlin 2.0 mostly overcomes this, some users in the community feel unsatisfied with its performance, and Klipper seems to be the answer. In the world of desktop 3D printing, where the open source community leads, commercial interests tend to follow, and we’re now seeing 3D printer manufacturers adopting Klipper as stock firmware.
Much like Marlin, Klipper is open source 3D printer firmware, but it operates a little differently.
Notable differences include:
Marlin is designed to run on microcontroller architecture. Klipper works differently: all the computation is delegated to a more powerful CPU that works in tandem with a microcontroller. The CPU does all the processing in advance and hands this information to the microcontroller via USB. The microcontroller then forwards this information to the motors. This is the majority of work the microcontroller does in Klipper – it does not do any motion system processing like it would with Marlin.
Outsourcing motion system calculations to a more powerful processor means your machine can carry out more actions in a given period. Klipper can achieve 175,000 steps per second on 8-bit mainboards and as high as 500,000 steps per second on newer, 32-bit options. These speeds significantly outstrip those that are possible with Marlin.
It’s pretty common to have a box of spare 3D printer parts lying around, and Klipper can integrate any old 8-bit or 32-bit boards you have on hand. All you need to do is plug in the spare controller to the Klipper host’s USB port and configure the system. You then have access to your spare board’s motor channels plus any the channels you already have. As a bonus, Klipper can make older controller hardware run much faster than Marlin can. For modern 32-bit boards such as SKRs, you can get around 600,000 steps per second.
Pushing material through a Bowden extrusion system can leave visible print artifacts, especially when using a long Bowden tube. This is because the material can compress, building up excess pressure in the system. Klipper’s Pressure Advance feature adjusts material flow based on the material’s elasticity resulting in less oozing and blobbing from the nozzle, and defined print features such as sharper corners.
A similar feature (Linear Advance) exists in Marlin, but this doesn’t introduce smooth velocity changes. Pressure Advance in Klipper does – giving it the advantage.
Printing at higher speeds can leave visible artifacts in your print, caused by inertia and harmonics from the print head vibrating. These artifacts go by several names, but most commonly, they’re referred to as ‘ringing’ because they leave visible rings in the contours of your printed object. Input shaping works by compensating print head vibrations so you can take advantage of faster mechanics and cancel out these artifacts.
This feature can be configured in Klipper firmware manually by doing test prints and inputting data, or, more conveniently, by fitting an accelerometer into the print head so it can measure and compensate in real time. At the time of writing, input shaping isn’t supported by Marlin – giving Klipper a significant advantage.
WebUI control isn’t a native feature of Marlin, but can be achieved as an optional upgrade by setting up an OctoPrint server on a Raspberry Pi or similar device.
Klipper includes a native WebUI. You also have a choice of which interface you use – Mainsail, Fluidd, or OctoPrint (the difference is mainly visual – the underlying features remain the same). Using Klipper’s WebUI, you can control your machine remotely through a web browser, conveniently edit configuration settings at the firmware level, monitor progress, view camera feeds, and so on.
For further articles on this topic, you might enjoy What Klipper Firmware Is and How to Use It and our Klipper vs. Marlin comparison. But first, read our analysis below!
A number of recent improvements have driven Klipper firmware forward, which has put it in the spotlight and made it a firm community favorite.
The Voron community – a self-build 3D printer community – is probably the biggest proponent of Klipper firmware recently. This team of researchers and volunteers want to produce a tuned machine aimed at speed and performance, and Klipper is ideal because it brings more performance advantages than the alternatives. For these reasons, Voron machines are designed with the specific intention of using Klipper firmware.
With Klipper firmware, extra performance can be squeezed from inexpensive hardware, improving the machine’s speed, accuracy, and usability, giving it greater value. But be warned – doing this yourself is a technically-involved process.
The FLSun V400 and the upcoming Biqu Hurakan are two commercial machines that natively run Klipper. Why might this be a good step for the industry and consumers? Below are some possible reasons:
Whatever transpires, we’ll continue to follow this trend with interest.
Agree with our analysis? Questions, comments, and corrections are welcome. Tweet us @all3dp or mail us editors@all3dp.com.
Lead image source: Craig Dennis
License: The text of "Exploring the Emergence of Commercial Klipper-Based 3D Printers" by All3DP is licensed under a Creative Commons Attribution 4.0 International License.