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.

Creality 3D Printer
Creality machines have used Marlin-based firmware for years (Source: Daniel Smyth)

What Are the Advantages of Running Klipper Firmware?

Much like Marlin, Klipper is open source 3D printer firmware, but it operates a little differently.

Notable differences include:

Accelerated Processing

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 Works With a Wide Range of Hardware

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.

Pressure Advance

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.

Input Shaping

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

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.

Klipper Fluidd UI 3D Printing Interface
Fluidd, one of Klipper’s web interfaces (Source: Fluidd)
Other Notable Klipper Features:

  • Thermal runaway protection algorithms
  • Supports TMC silent stepper drivers
  • Supports common bed probes, such as BLTouch and inductive probes
  • Supports multiple tool heads, such as IDEX or tool changers
  • Supports a wide range of G-code dialects
  • Supports different styles of bed leveling
  • Runs on Python – a widely-used and relatively accessible programming language
  • Open source, with lots of community features
  • Constantly evolving, lots of features are being developed to enhance it
  • Plugin architecture in development
  • New standalone interfaces in development

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!

Advertisement
Advertisement

Who Uses Klipper Firmware?

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.

Voron Trident 3D Printer
Voron self-build 3D printers use Klipper firmware exclusively (Source: Voron)
Then there are the tinkerers. This community has upgraded popular hobby-grade Creality machines from their stock Marlin-based firmware to Klipper, which can be done by adding some extra boards, such as a Raspberry Pi, to give it the necessary processing headroom. A quick Google search will throw up a number of upgrade guides to do this.

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.

Klipper delegates motion processing to another CPU (Source: Smoothie Aq CEVO)

Commercial Klipper

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:

  • A commercial R&D team setting up a Klipper-based machine can ensure the most efficient use of the hardware through firmware. They can even differentiate themselves against competitors who release similarly-specced machines. A 3D printer running Klipper will have an advantage over a similarly specced Marlin machine because the Marlin machine will not be able to make use of input shaping and its capabilities will be limited by the firmware it runs. Klipper firmware can be installed without commercial licenses at no extra cost, besides fitting it with the necessary processing power to run it.
  • Klipper runs on Python, a popular accessible language. Marlin is coded in C++, a low-level, more abstract language. Scripts and new features are relatively easy to develop in Python, and kinematic support for other styles of motion system can be added by a commercial R&D team relatively easily. There’s also scope for drawing upon the user community for updates and improvements because the software is released under open source licenses, and each contributor is obliged to make their code publicly available.
  • A pre-built machine running Klipper reduces the barriers to entry for general users who want to try Klipper but lack the technical expertise to set it up themselves. Some of the home upgraders find screen support under Klipper is somewhat limited. A commercial R&D team could verify the correct hardware works for everything to run optimally.

The FLSunV400 runs Klipper on an ARM-based GigaDevice GD32F303VET6 (Source: All3DP)
From the other side of things, we’re currently experiencing a silicon shortage, making it more challenging and expensive to obtain platforms to run Klipper. The upcoming Biqu Hurakan uses custom hardware designed by Biqu to get around this – but Biqu has plenty of experience with this kind of hardware design. Other manufacturers might not, depending on others to supply mainboards and develop compatible software. This may make manufacturers stick with Marlin, for the time being, leaving it to the tinkerers to bear the time and cost of upgrading to Klipper firmware.

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.

Advertisement
Advertisement
Advertisement