Is it possible to print fast on the Ender
3 without sacrificing quality? Absolutely! With Klipper and its amazing input shaping,
speeds and accelerations that are unthinkable with other firmwares are now achievable.
In todayās episode I show you how to install and configure Klipper on the Ender 3 with
input shaping and pressure advance. Letās get started! It normally takes about 30 minutes to print
this calibration cube with the Ender 3. With Klipper, this time is reduced to less
than 7 minutes! A 3DBenchy requires around 2 hours to print
with the Ender 3. Klipper can print it in only 28 minutes with no loss in quality! The easiest way to get started with Klipper
is to use a Raspberry Pi image like MainsailOS or FluiddPI. Download FluiddPI from GitHub. Write the image to an SD card, using Raspberry
Pi imager. Before clicking on WRITE, press CTRL+SHIFT+X to configure advanced options. Insert the SD Card into your Raspberry Pi
and turn it on. Connect to the Raspberry Pi web interface
using the hostname you set when you wrote the image.
This gives you access to the Fluidd web interface for Klipper. Donāt worry about the āUnable
to open config fileā error message: we will fix this shortly. To compile the micro-controller code for the
3d printer mainboard, connect to the Raspberry Pi with ssh.
Open the Klipper Firmware Configuration tool. Select STM32 for the Micro-controller architecture,
STM32F103 for the processor model, a 28KiB bootloader, and the Serial communication interface.
These are the valid settings for the CrealityV4.2.2 or 4.2.7 mainboards. Now exit, save the configuration and compile
the firmware. This creates a Klipper.bin file in the Klipper/out directory.
Copy this file to an SD Card using scp and give it a unique name.
Insert the SD card into the printer and turn it on to flash the firmware. Now connect the Raspberry PI to the printer
using a Micro USB B to USB cable. The next step is to create a printer configuration
file. As a starting point, I am using the example that come with Klipper for the Creality
4.2.7 mainboard. I copy and paste this configuration into a
printer.cfg file, save and restart the firmware. There are a couple of Fluidd warnings. Indeed,
Fluidd requires certain settings to be defined in the configuration file. I copy and paste
them from the Fluidd documentation, save & restart the firmwareā¦ OK, all Fluidd warnings are
gone. Now letās configure a BLTouch by adding a bltouch section to the configuration file. I also define a safe_z_home section to home toward the center of the print area.
To use the probe in place of the z endstop, I set the stepper_z endstop_pin to āprobe:z_virtual_endstopā In order to keep using the LCD display of
my Ender 3 Pro with Klipper, I add a display section. To make configuration changes in Klipper,
I just need to update printer.cfg and restart the firmware. Letās try to home the printerā¦ So far
so good... Now I configure Auto Bed Leveling by adding
a bed_mesh section to the config file. I also add a G29 macro to emulate Marlinās
G29 Gcode which is not available in Klipper. To perform auto bed leveling, I issue a G29
command in the console. Fluidd provides a graphical tool to visualize
the result of the bed mesh leveling. We will configure pressure advance and input
shaping in a short moment. Before that, I want to mount the Raspberry Pi to the printer
and power it directly from the Ender 3 power supply. This is optional but results in a
cleaner and more organized setup. I printed this Raspberry Pi enclosure which
mounts the Raspberry Pi to the Ender 3's extruded aluminum rails. In order to power the Raspberry Pi directly
from the Ender 3 power supply, I use a XT60 Y-splitter cable and reduce the voltage to
5 volts with an LM2596 buck converter. Finally, I connect the Raspberry Pi to the
printer with a micro USB B to USB cable. Optionally you can use a Raspberry Pi camera
to remotely monitor the printer from the web interfaceā¦ For the camera to work, it must be enabled in raspi-config OK, now letās take a look at Klipperās
most awesome feature: Input shapingā¦ Using an ADXL 345 accelerometer connected
to the Raspberry Pi, we will measure the resonance frequencies of the printer.
Knowing the resonance frequencies allows Klipper to control the print head in such a way that
it cancels its own vibrations! We need to do some additional setup on the
Pi first in order to perform these tests. Iām just following the steps from the Klipper
documentationā¦ This completes the configuration. Letās
check if we can read some data from the accelerometerā¦ Yes, it works! I start the resonance test on the X axis by
mounting the accelerometer on the print head. The test shakes the printhead along the X
axis and measure printer vibrations amplitude as function of frequency. To perform the resonance test on the Y axis,
I mount the accelerometer on the bed. To post-process the accelerometer data and
compute the optimal input shaping parameters, I run the calibrate_shaper Python script as
per the documentation. This script generates two plots, one for X and one for Y and makes
recommendations about which input shaper settings to use. All I have to do to enable input shaping is
to add an input_shaper section to the printer configuration file and cut and paste the recommended
settings. Letās compare the print quality with and
without input shaping by printing a test model. Wow! The result is impressive! Input shaping
almost completely eliminates ringing even when using accelerations as high as 7000 mm/sĀ²! The next step is to tune pressure advance.
Pressure advance does two useful things: it reduces ooze during non extruding-moves and
it reduces blobbing during cornering. Tuning pressure advance is done by printing
a test model. The TUNING_TOWER command instructs Klipper to increase the pressure_advance value
by 0.005 per mm of Z height. Inspect the print and then use a caliper to
find the height that has the best quality corners.
Compute the pressure_advance value as the measured height x 0.005
Add the pressure advance value in the extruder section. In my case, the pressure advance was
too high. I reduced the value to 0.04 and got much better print qualityā¦ What do you think about Klipper on the Ender 3?! Please let
me know in the comments below. Thanks for watching and see you soon on YouMakeTech!