Klipper 3D Printer Firmware - What is it? Why do I want it?
3D printer always comes with a stock program, also known as 3D printer firmware, which connects the software to the hardware of the printer. 3D printer firmware translates software input to take control and give command to the hardware of the printer. Often, we would flash the printer with an open source firmware to upgrade and modify it for new features and more advanced performances. And most of us know the popular open source Marlin and RepRap. But there are also other options, which gains great loyalty from the users too, such as the Klipper 3D printer firmware.
When it comes to running Klipper firmware on your 3d printer, it does have many advantages and a few minor disadvantages too. There are some things you need to keep in mind when it comes to installing it.
In this article, we'll get into the knowing of Klipper 3D printer firmware step by step with Nero 3D YouTube channel. And great thanks to their marvelous video!
What is Klipper? how to install it on my printer?
Klipper is an open source firmware developed at the time when 8 bit mother boards were the mainstream for 3D printer by Kevin .O. Connor, a user of GitHub.
Klipper is a standalone firmware for your 3D printer. What this means is it doesn't run on top of Marlin such as an octoprint on a Raspberry pi. It completely replaces your printer's built-in firmware. To install Klipper, you will have to re-flash your controller board but it still uses a Raspberry pi. It lets you have a much more powerful controller running your 3D printer.
How Klipper works?
Klipper is the actual firmware that does all the computation, and the math involved in the kinematics, and the controlling of your printer. These are all done on the Raspberry Pi. This lets you have much more powerful controller running your printer, and leaving the built-in controller (the mother board) only responsibility to handle the instructions from the Raspberry Pi.
Advantages / Features of Klipper Firmware
Running Klipper has many features that can be advantageous. I'll go through and list some of the major features here on why you may want to run Klipper on your 3D printer.
1. Klipper offers much faster stepping rate
Klipper can take older hardware and make it run at a much faster rate.
So for example an old 8-bit RAM's board is capable of doing over a hundred of thousand steps a second when running Klipper as its firmware, versus the meager approximately 10 000 that it can do on an 8-bit marlin installation.
For modern 32-bit systems, such as SKR and Duet 2, you can potentially get over 600,000 steps per second. Depending on your printer build and your slicer settings, you may never need that high of a step rate.
However if you are running systems that have multiple steppers running at once, such as on Voron V2, which have four z motors and then XY extruders when all those are running at once at high speeds those do push the step rates quite high.
You're able to push your machine faster and harder with Klipper firmware than some other firmware.
2. Easy Setting Up and Configuring Klipper
It's easy to set up and configure Klipper through either a web interface like Octoprint or standalone interfaces such as Fluidd or Mainsail.
You are able to edit configuration settings and firmware through their simple user interface through your web browser. And for updating firmware on Klipper, it's simply a matter of adding or adjusting some commands on your configuration file, saving and hitting the restart button.
3. Klipper Supports Multiple MCU
Klipper also supports multiple MCU. This means you can control as many controller boards as you can plug into a Raspberry Pi.
For example this is a raspberry pi 3b it has four usb ports and my controller board. For example, with most standard firmwares you can only run as many steppers as there are on the controller board itself, or you have to buy a specialized board with an expander board such as a Duet with its expander or the gtr with its expander. Those can be pricey options.
With Klipper you can just go ahead and plug in another controller board to support extra steppers. What you need to do is simply flash firmware to it, plug it into your Raspberry pi and then you go into your configuration to assign it as a second controller board for extra stepper drivers you may need.
4. Klipper Pressure Advance Feature
Pressure advance is a way of calibrating your extruder to adjust flow based on the elasticity of filament and its compression within your bowden tube. The presure advance feature of Klipper firmware does lead to much better print quality. The pressure advance feature of Klipper firmware does lead to much better print quality for Bowden 3D printers with long Bowden tubes.
5. Faster Print Speed with Input Shaping of Klipper
With its specific feature named as Input Shaping, Klipper helps to cancel out ringing in your 3D printer from vibrations.
This makes it possible to run your 3D printer at a much higher acceleration setting than before without causing any ringing in details on your prints.
6. Easy Python programming for additional Features
Other features that may entice you to use Klipper firmware including, Klipper runs on Python, so being able to add features such as additional kinematic support for different styles of printers. It's a relatively simple procedure as
long as you know the math and you know how to program python.
7. Supports PT100 probes and all common Bed Probes
Klipper supports for pt100 probes, which means more accurate bed and hotend probes are usable with Klipper under high temperature.
Klipper firmware has thermal runaway of course. And it supports all the common tmc stepper drivers through their various UART and SPI controls.
Klipper supports all the common bed probes such as the bl touch inductive probe. It understands g-code from all the common slicers. Klipper also supports multiple styles of bed leveling such as bed mesh leveling or adjusting your gantry or bed level itself with multi-stepper systems.
8. Klipper New Features
Klipper keeps evolving with constantly new features being added. For example the accelerometer control feature has been a recent addition to it. The whole environment is constantly evolving with new things being added to it regularly.
Klipper is open source and there are a lot of community features in it as well.
9. Able to run on the cheap Raspberry Pi Zero
If you decide to run Klipper firmware for your printer, you need a separate board to plug into your controller board to run Klipper. Most people use the Raspberry pi. Klipper can run on all the Raspberry pi.
Raspberry pi's low power processors are great for running Klipper by themselves as long as you do not need a webcam and you are using the standalone Klipper interface.
Octoprint can be a bit bloated for it and a webcam does have a tendency to bog it down. But if you are looking for something to simply run the printer remotely and run Klipper at the same time, it does run fine on a Raspberry pi zero.
10. Controller boards support for Klipper
Klipper supports most common controller boards out there. You can take a look at the Klipper github to see if your specific printer or controller board does have an example configuration.
If it does not you can see if the MCU of your motherboard supports with Klipper. If the processor supports, you'll be able to flash to the board. If you know the pin out of the board, you are able to make a configuration for Klipper. Klipper does support many different styles of mcu, and controller boards.
Most common 3D printers are supported by Klipper and do have example firmwares to help get you started. You need only 10 - 15 minutes to install and setup Klipper onto Creality Ender 3.
Disadvantages of Klipper 3D printer Firmware
Unfortunately no firmware is perfect. There are some things that some people would consider downsides to running Klipper as their firmware on their 3D printer.
1. Complex Installation and Setup Procedures of Klipper Firmware
The first thing that most people will encounter is the installation of Klipper itself.
It has gotten much easier over time especially with the standalone images
based on fluidd and mainsail, which installed to a sd card pretty much the same as Octoprint does.
When it comes to setting up the firmware for the control board itself, you need to configure it specifically for the controller board you're going to be flashing it to via an ssh terminal. So you need to use something such as PuTTY to ssh
into your Raspberry pi.
Once Klipper is installed, you are going to have to go through and adjust some settings. These settings are readily available for the most common controller boards out there. So it's simply a matter of copy and pasting and selecting the settings it tells you to. However you do need to generate that file.
And some controller boards such as the skr series or the controller board in the Creality Ender 3 for example, you do need to go back into the Raspberry pi and pull a file off of it.
I use winscp for example and then take that file put it on an sd card and then flash it to the controller board. For those that have never used a terminal interface or done some scripting before, it can be daunting.
2. No Full Plug-in Support for Klipper
Another thing is with the standalone Klipper interfaces, at this time there is no full plug-in support. So if you do require a plug-in such as spaghetti detective
or the time-lapse plug-in built into Octoprint, you have to run Octoprint.
3. Limited Display Screen for Klipper
Another issue that comes up quite often is screen support for Klipper at this
time only supports screens with basic graphical interfaces, such as the 12864 screens.
Displays that run their own firmware such as the Creality Ender 3v2 display, which runs its own firmware and sends commands to the controller board are not supported by Klipper at this time.
Klipper VS Marlin Firmware
In previous paragraphs, we already know the advantages and disadvantages of Klipper 3D printer firmware. However, another question may catch more eyes. That is, Klipper VS Marlin, which to choose.
Since Marlin dominates the market of open source firmware for 3D printing, when we talk about Klipper, comparisons are unavoidable and quite necessary for us to make a pick between them before upgrading our 3D printers.
Different design principles
While Marlin is a classic firmware developed for open source modification of a 3D printer, Klipper is more developed to add computing capacity and relieve the burden of the mainboard with an additional MCU, usually a Raspberry Pi.
In a 3D printer installed with Klipper firmware, additionally added MCU is responsible for all the calculation of G-code files into printer movement commands while the mainboard only input these commands to the mechanical components of the printer.
More unique and advanced features
1. More motor steps and higher resolution
Klipper uses more sophisticated motion processing and drives 3D printer with more motor steps per second than Marlin firmware. Hence with Klipper installed, we get higher printing speed with better print quality on our 3D printers.
2. Input shaping - a unique feature of Klipper
Input shaping is a unique feature Klipper brings to us. It calibrates printing while printing to cancel printing resonances and avoid "fish scales", stringing, ghosting on your 3D print parts. More impressively, with an accelerometer attached to the print head, it can semi-automatically and precisely calculate the harmonics and vibrations as printing speed increases.
3. Easy access to multiple controllers
For those who want make more possibilities on a 3D printer, Klipper 3D printer firmware is always a good option. Klipper gives users easy access to add more stepper motors or other peripherals. Klipper can also add Raspberry Pi as its controller and use the GPIO pin to install more external devices.
This article credits to NERO 3D youtube channel, includes a quick breakdown of the key features of Klipper firmware, why you may want to run Klipper and some things to keep in mind when installing and running Klipper firmware on your 3D printers.