Klipper 3D Printer Firmware - What is it? Why do I want it?
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.
What is Klipper? how to install it on my printer?
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. 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.
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.
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 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.
Easy Setting Up and Configuring Klipper
When it comes to setting up and configuring Klipper, it does have web interface capabilities whether through octoprint or standalone interfaces such as fluidd or mainsail.
The major advantages are you are able to edit your 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.
Klipper Supports Multi-MCU
Another great feature of Klipper is multi-mcu support. 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.
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.
Faster Print Speed with Input Shaping of Klipper
Input Shaping is the feature that is specific to Klipper itself. Input shaping help to cancel out ringing in your 3D printer from vibrations.
It let you to run your 3D printer at a higher acceleration setting than it used to be without causing any ringing in details on your prints.
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.
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.
My favorite feature is the fact that Klipper is constantly being developed and new things are constantly being added to it. 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.
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.
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. The Klipper installation process on the Creality Ender 3 is only about a 10 to 15 minute setup.
Downsides of Running Klipper 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.
Installation and Setup 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.
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.
Limited 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.
This article credits to NERO 3D youtube channel, includes a quick breakdown of the key features of Klipper, why you may want to run Klipper and some things to keep in mind when installing and running Klipper firmware on your 3D printers.