Klipper FirmwareGuides

How to Install Klipper on Ender 6: Config and Setup

In this guide I will show you how to Install Klipper on Ender 6 using a simple Raspberry Pi Zero. Because the original Klipper build doesn’t work with the Ender 6 screen, we will use a modified Klipper build made by Desuuuu.

What is Klipper?

Klipper Sidewinder X1 | How to Install Klipper on Kingroon KP3S: Config for Printing Fast

Klipper is an open-source firmware for your 3D printer that combines the power of a Raspberry Pi and your printer main board for better printer control. By doing this, You are able to run your printer at higher speeds with better precision and control.

Why Install Klipper on Ender 6?

By installing Klipper on Ender 6, you will be able to print faster compared to a stock printer, and you will also be able to control your printer remotely, trough Wi-Fi. You will be able to use features like Pressure Advance and Input Shaper, which will greatly improve your print quality and speed. The touchscreen firmware is also updated which gives you a bit more options compared to stock.

If you want to learn more about Klipper, check out Nero’s video

With a good extruder, you could push the print speed quite high. Here’s an example of print quality and speed with the BIQU H2 Extruder Upgrade I did on the Ender 6.

Prerequisites

To install Klipper on Ender 6, you need to have the following:

  1. Raspberry Pi Zero W (any Pi will work)
  2. MainsailOS or FluiddPi – In this guide I will use FluiddPi and a Raspberry Pi Zero
  3. Creality Ender 6 3D printer
  4. Micro USB cable – Ensure that your USB cable work for data transfer. There are some cables out there that are good only for charging.
  5. OTG Micro USB Cable (needed only for the Pi Zero)

Before you begin

Before you begin

Please note that installing Klipper on Ender 6 requires some experience with 3D printers and hardware. This is not a trivial task for beginners, and you may break your printer during the process. If you don’t feel comfortable doing this, then keep the stock firmware.

Read the full guide carefully and install Klipper on Ender 6 only after you properly understood all the steps involved. If you have questions before starting, leave a comment and wait for a reply.

I am not responsible for any damage you may cause to your printer by following this guide. You are doing this on your own responsibility.

The configuration file shared in this article, is made for the stock Creality Ender 6.

Install FluiddPi or MainsailOS on Raspberry Pi

FluiddPi | How to Install Klipper on Ender 6: Config and Setup

I have covered the FluiddPi installation and the Mainsail OS installation in a previous article, so please follow it before continuing. This will ensure you have the same setup as I do which will make the entire process a bit easier.

In that article I also covered how to install KIAUH which is a helpful tool for installing and updating Klipper.

Connect your Raspberry Pi to the Ender 6 board

The Creality Ender 6 doesn’t have an accessible USB connector like other printers, so in order to connect our Raspberry Pi to the board, we need to open the bottom cover.

I chose to connect my Ender 6 board to a Raspberry Pi Zero using a Micro USB cable and a MicroUSB OTG cable. I also power the Pi directly from the printer using a buck converter and the GPIO pins. This converts the 24V from the printer and powers the Pi with 5V. The whole setup is shown below.

For better Wi-Fi reception and accessibility, I installed the Pi Zero outside the case.

Pi-Zero-running-Klipper-on-Ender-6

In case you are using a Raspberry Pi 3 or 4, you won’t need the OTG cable.

Prepare and install Klipper firmware for your Ender 6

Merge Custom Klipper build

To use the stock screen with Klipper, we need to merge the custom Klipper setup into the one already installed with FluiddPi. Connect to your Raspberry Pi and run the following commands:

Remove the old Klipper folder

rm -rf klipper

Clone Desuuuu’s repo

git clone https://github.com/Desuuuu/klipper

Navigate to the Klipper folder

cd ~/klipper

Configure the custom Ender 6 Klipper firmware

Open the Klipper Firmware Configuration screen using the following command:

make menuconfig

The Klipper Firmware Configuration screen will appear. Using your navigation keys, move through the menus and replicate the same settings I used.

image 3 | How to Install Klipper on Ender 6: Config and Setup

When finished, press Q then Y to save your configuration.

Now run the following command to start building the firmware:

make

The build process will start and when finished, the firmware will be ready to install. For the Ender 6, we need to install it from the SD card

Please note that updating Klipper firmware with the vanilla version (using the Fluidd/MainsailOS upgrade option) will break the screen functionality. You need to use the Desuuuu klipper build if you want the screen to work.

How to flash Klipper firmware on Ender 6

Flash the Ender 6 board

First, connect via SFTP to your Raspberry Pi. I use WinSCP. Enter the IP, username and password just like you did for Putty, then click on Login.

image 11 | How to Install Klipper on Ender 6: Config and Setup

Navigate to /home/pi/klipper/out and copy the klipper.bin file on an SD card.

klipper firmware bin | How to Install Klipper on Ender 6: Config and Setup

Next, plug the SD card in your printer and turn it on. The installation process takes about 15 seconds. I recommend you wait for a minute, then remove the SD card and restart your printer.

When you are flashing the board firmware, there won’t be any information displayed on the touchscreen. It might look like the screen is stuck, and the progress bar does not move, but this is ok. Just continue to the next step.

It’s also worth noting that if you want to re-flash the board, always change the filename. The Creality board doesn’t start the flash process again, if you use the same firmware name, as in your previous flash.

Flash the Ender 6 touchscreen

Download the latest release of DGUS Reloaded Klipper firmware from Github

latest DGUS reloaded klipper firmware | How to Install Klipper on Ender 6: Config and Setup

Format your MicroSD to FAT32 with a 4096 allocation unit size. Don’t skip this step. It’s important.

Format SD card for Klipper on Ender 6 | How to Install Klipper on Ender 6: Config and Setup

Unzip the archive contents and copy the DWIN_SET folder on the root of your MicroSD Card

Copy firmware on SD Card | How to Install Klipper on Ender 6: Config and Setup

With the MicroSD card ready, we need to remove the touchscreen face plate in order to access the MicroSD card slot. To do this, you need to remove the four hex bolts (behind the screen and underneath).

Once you removed the face plate, unscrew the remaining four hex bolts which keep the touchscreen in place, in order to insert the Micro SD card into the screen.

Ender 6 Touchscreen Firmware Update SD card slot | How to Install Klipper on Ender 6: Config and Setup

Power on your printer. This will start the installation process. Wait until the “SD Card Process… END!” message shows up, then turn off the printer.

Firmware flash end on Ender 6 Touchscreen | How to Install Klipper on Ender 6: Config and Setup

When you start the printer again, the screen will only show the Klipper logo. The main menu will only show up after you connect Klipper to the board.

Copy the Ender 6 Klipper config file

Now that our Ender 6 is running Klipper firmware, we need to copy the configuration file. You can download my sample configuration to get you started.

In your FluiddPi Web UI, navigate to the Configure tab, and drag and drop the printer.cfg file in the Configuration Files section

Upload Ender 6 Klipper Config | How to Install Klipper on Ender 6: Config and Setup

Connect Klipper to your printer

Finally, you just need to connect Klipper to your printer. This is super easy. You just need to go back on your FluiddPi Dashboard and click on Firmware Restart.

This action will trigger the connection between the Klipper service running on FluiddPi and the Ender 6 firmware we just installed. If all the steps have been followed, then your printer will connect, and you will be greeted by this interface.

FluiddPi running on Ender 6 | How to Install Klipper on Ender 6: Config and Setup

Feel free to home the printer first, to make sure everything is running correctly. Heat up the nozzle and heatbed and check if the temperature rises as expected. If everything looks good, then you are ready to start your first print with Klipper.

How to revert to Stock Ender 6 Firmware?

If you decide Klipper is not for you, reverting to the stock firmware is easy. First, download the stock Ender 6 board firmware and the Ender 6 touchscreen firmware.

Unzip the files, and copy the contents on the SD card

Stock screen firmware files | How to Install Klipper on Ender 6: Config and Setup

First, plug in the SD card to your printer in the SD Card slot, and restart it. This will trigger the board firmware update and the firmware will be flashed.

Finally, connect the MicroSD card to the touchscreen, and start the printer. The touchscreen flashing process will start. When completed, turn of the printer.

Please keep in mind that after you flash the screen/board once, if you want to try again and re-flash, you need to edit the names of the .bin files. Otherwise, it will not work.

If you have issues flashing the stock screen firmware, overwrite the T5UID1.CFG with the file you downloaded from here, and ensure you use an 8GB MicroSD card formatted with the 4096-allocation unit size. I already included the file in the screen firmware archive but for some reason, it doesn’t work every time.

Wrapping up

Even though the installation steps seem to be a bit hard to follow, I hope this guide helped you and now you are running Klipper on your Creality Ender 6.

Make sure you check out my Ender 6 Upgrades: Paid and Free article where I go over some of the upgrades I plan to do on my Ender 6.

If you encounter issues during your installation, feel free to leave a comment below and I will do my best to help you. Besides that, You can also join the 3DPrintBeginner Forum where there are dedicated threads for Klipper Firmware and Creality printers.

Liked it?
Consider supporting 3DPrintBeginner if this content helped. You can also join Patreon for exclusive perks!

Related Articles

Latest Replies

  1. The screen never shows this message when the screen firmware is complete “SD Card Process… END!

  2. Try to format the SD card with 4096 allocation unit and give it another go.

  3. Thanks for the quick reply. I was able to load the screen firmware, I just never got the “completed” message on the screen.

    I also used a MAC (disk utility) to format the card and never saw a way to do the 4096 allocation there. Is it possible to do on a MAC?

    In the end the screen got the update and was able to display correctly with Klipper.

    Thanks for your instruction guide. I was able to do it.

  4. Avatar for fred82 fred82 says:

    First of all thanks for your guide, it has helped me a lot, you are doing an amazing job here, in my case I have a couple of errors:

    • [pause_resume] not found in printer configuration.

    Moonraker warnings found.

    • PolKit warnings detected. See moonraker
      #policykit-permissions for instructions on how to resolve.
    • Moonraker not authorized for PolicyKit action: [org.freedesktop.systemd1.manage-units], System Service Management (start, stop, restart) will be disabled
    • Moonraker not authorized for PolicyKit action: [org.freedesktop.login1.power-off], The shutdown API will be disabled
    • Moonraker not authorized for PolicyKit action: [org.freedesktop.login1.power-off-multiple-sessions], The shutdown API will be disabled if multiple user sessions are open.
    • Moonraker not authorized for PolicyKit action: [org.freedesktop.login1.reboot], The reboot API will be disabled
    • Moonraker not authorized for PolicyKit action: [org.freedesktop.login1.reboot-multiple-sessions], The reboot API will be disabled if multiple user sessions are open.
    • Moonraker not authorized for PolicyKit action: [org.freedesktop.packagekit.system-sources-refresh], The Update Manager will fail to fetch package updates
    • Moonraker not authorized for PolicyKit action: [org.freedesktop.packagekit.package-install], The Update Manager will fail to install packages
    • Moonraker not authorized for PolicyKit action: [org.freedesktop.packagekit.system-update], The Update Manager will fail to update packages

    How to fix this??

  5. With that many errors, I would talk to the Mainsail Discord, or just do a fresh install of the latest versions.

  6. DId you ever get it sorted out? I have the exact same errors after a fresh walkthrough of this guide.

  7. When I get to the SFTP portion of the guide. It says to go to:
    Navigate to /home/pi/klipper/out and copy the klipper.bin file on an SD card.
    But there is no klipper.bin file.
    image

    Can anyone help me?

  8. You probably used the wrong config when building the firmware. I recommend trying again.

  9. hey mate, i’ve mirrored your config for creating the klipper.bin, but i get the following error when using USART1 PA10, PA9
    Conflicting definition for constant ‘RESERVE_PINS_serial’
    make: *** [Makefile:83: out/compile_time_request.o] Error 255

    this what i have set
    Communication interface serial USART1 PA10, PA9
    Enable DGUS T5UID1 Screen
    Screen serial interface USART3 on PD9/PD8 - i dont have the option to set it to USART3 like your screenshot
    250000 baud rate

    If i change serial USART PA10, PA9 to USB the config generates, but not sure if this will actually work.

    Any idea on what might be the issue?

  10. Avatar for Bustah Bustah says:

    Ye, im stuck on the same thing…setting it to USB does not work btw.

    Ahhhhaaaa!!!
    Got it!
    in the guide it says to follow the fluidd install guide and then follow the Ender 6 guide…
    Does not work, you end up in “RESERVE_PINS Hell”.

    What i did to solve it…yes this is convoluted and alot of trial and error…hours >.<
    Any who,
    install KIAUH
    edit/create “klipper_repos.txt.example”
    comment out all the klipper lines.
    Add this line instead: desuuuu/klipper,dgus-reloaded
    run kiauh REMOVE EVERYTHING.
    Install klipper (will now get it from the correct repo for us :))
    install moonraker
    Install Fluidd (if you want to follow the guide)

    IMPORTANT THIS IS WHAT WORKED.
    In kiauh hit 4 (advanced menu)
    Number 2 (Build only) This will build your firmware (basically the same as makemenu and make, but this works without failing due to the RESERVE_PINS error.).

    Update the screen as per the guide.

    Voila!
    Fully (almost) working Ender 6 with klipper.

    I got most stuff working…Buuuuut…BL-Touch >.<

You can leave a comment for this article on the 3DPrintBeginner Forum

14 more replies

Participants

Avatar for 3DPrintBeginner Avatar for lvfmc85 Avatar for clisenberg Avatar for BeSerra Avatar for lucyy300 Avatar for Deeps_Mexy Avatar for Takei27 Avatar for fred82 Avatar for klaas Avatar for d_jon3s Avatar for WookieOH Avatar for orah8892 Avatar for spiceit Avatar for Mike_PSL Avatar for Bustah

284 Comments

  1. I tried flashing this like 6 times a piece lol fluid and mainsail, both load up fine and everything seems to work until i try to configure CRtouch, as soon as i enable it gives a “Unable to parse option ‘rotation_distance’ in section ‘stepper_z’ any suggestions?

  2. Now the flash the printer worked. But I got this i fluidd:
    fluidd warnings found.
    [pause_resume] not found in printer configuration.
    Moonraker warnings found.
    PolKit warnings detected. See https://moonraker.readthedocs.io/en/latest/installation/#policykit-permissions for instructions on how to resolve.
    Moonraker not authorized for PolicyKit action: [org.freedesktop.systemd1.manage-units], System Service Management (start, stop, restart) will be disabled
    Moonraker not authorized for PolicyKit action: [org.freedesktop.login1.power-off], The shutdown API will be disabled
    Moonraker not authorized for PolicyKit action: [org.freedesktop.login1.power-off-multiple-sessions], The shutdown API will be disabled if multiple user sessions are open.
    Moonraker not authorized for PolicyKit action: [org.freedesktop.login1.reboot], The reboot API will be disabled
    Moonraker not authorized for PolicyKit action: [org.freedesktop.login1.reboot-multiple-sessions], The reboot API will be disabled if multiple user sessions are open.
    Error checking authorization for action [org.freedesktop.packagekit.system-sources-refresh]: Action org.freedesktop.packagekit.system-sources-refresh is not registered. This suggests that a dependency is not installed or up to date. The Update Manager will fail to fetch package updates.
    Error checking authorization for action [org.freedesktop.packagekit.package-install]: Action org.freedesktop.packagekit.package-install is not registered. This suggests that a dependency is not installed or up to date. The Update Manager will fail to install packages.
    Error checking authorization for action [org.freedesktop.packagekit.system-update]: Action org.freedesktop.packagekit.system-update is not registered. This suggests that a dependency is not installed or up to date. The Update Manager will fail to update packages.
    Fluidd setup requirements can be found here.

  3. I just wanna say thank you so much for the guide. Completely noob with little basic of tech and only 3d printed for a month. Bought ender 6 and followed this guide. Working nicely now despite having lotsa problems as noob. Just wanna post a few noob help for those attempting to try it out and if anything helpful, kindly add it to the guide. Those more advanced may laugh at my noob mistakes trying to understand first time how Raspberry PI works, or Firmware, etc. Fyi i’m using Raspberry Pi 3.

    Fluidd Installation Problem & Fixes (Previous Guide):
    1) Noobness Problem #1: I tried installing Raspberry PI OS, which i found out later was not needed. Just straight down to Fluidd is all it takes, please correct me if i’m wrong (didn’t know how Pi works at first). Turns out the Raspberry PI is just running whatever you boot to the SD Card. I thought i needed OS like windows in order for it to run, spent few hours there, but reflashed again Fluidd and successfully flashed it to the Ender 6.

    2) Putty Problem when trying to SSH: Received “Network error: Software causes connection abort.” So, browsed and tried this solution. Apparently some said that some Raspberry PI has SSH disabled from start, or its because of my previous noob mistake in previously trying the OS. Fixed it by:
    – Using display monitor and connecting my PI 3 to it plus keyboard. (with this, able to do things without putty)
    – After entering username “pi” and pass “raspberry” in terminal
    -Type “sudo raspi-config”, Then head over to Advanced Options and select SSH. You are asked whether you would like the SSH server to be enabled. Select “Yes.”
    3) Now the SSH server is enabled but another problem, unable to use fluiddpi.local, and using ping fluidd.local -4 on cmd, actually runs, but gives me the wrong ip address for the Pi. Don’t know why it happens. So again, i used PI directly on another separate Display Monitor & Keyboard. run command “ifconfig” to find the correct IP. Entered that into my browser and used it on Putty, finally done. The rest of the guide is all good and installed Fluidd and KIAUH.

    Klipper Installation Problem & Fixes (This Guide):
    1) Connecting PI to board: I did this actually the last step #4. As tinkering with hardware etc may be daunting at first.
    2) Flashing Klipper Firmware to Ender 6: Followed the guide, failed, didnt flash. Did this multiple times, redo couple times, changing filename, making sure the menu config is same. All is good.
    3) Flashing Touchscreen: Now, i tried to follow as exact in this guide to

    Format your MicroSD to FAT32 with a 4096 allocation unit size. Don’t skip this step. It’s important.

    When trying to format the SDcard, i was using 32gb and 16gb, and couldn’t find the 4096, googled solution and found out it’s too big, And only noticed the image in your guide that it’s 8gb sdcard, so i went out and bought one. I think you may want to write that in the guide as requirement. I’m curious though why is it important, will it fail if we format using 8192 bit or higher? (which, i did, and failed, but cant explain is that the cause)

    4) Last part, connecting PI to printer: This was daunting at first, and did stupid mistake. I tried opening the lid from the top, as i tried not flipping my ender 6. Which, actually found out later should be from bottom, as i accidentally removed the screws from the PSU. No biggie, rescrew them back and flip Ender 6 to the left and opened the bottom cover.

    Now when i tried to connect the PI to the mainboard, i didn’t wanna use buck converter (kinda daunting for me), so i used Micro USB to connect from mainboard to USB port on PI 3. Then still use the default Adaptor to power the PI.

    Next, copied the config file and all is good. Now learning Klipper setting etc.

    Sorry for the long writeup, i spent 2 days on weekend with these mistakes as noob, and very happy for first timer to get it running through this guide. Just wanna share what i faced in case people have that too.

    Just wanna say to new people trying to klipper away your ender 6, dont be discouraged, a noob like me did it.

    I’m seeing mine print now on Klipper with the same gcode on stock Ender 6 firmware, and noticed the increase in smoothness of the movement. (the stock firmware was to me, smooth enough, but its much better now on Klipper using the provided config on this guide)

    Now my next upgrade is to:
    – Get BL Touch configured
    – Setup Camera for Timelapse
    – Biqu H2 installation
    – Cable Chains for aesthetics.

    Gona face again lotsa problems but well, pushing my Ender 6 to its speed limit.. Wish me luck 🙂

  4. excellent tutorial, failed on the first try but that was totally due to forgetting to initiate com3. very educational, thanks for all the time and energy you have invested! of course also for your patience in answering the questions in the comments!!

  5. I think it is very important that you add this line to your config folder otherwise you wont be able to use the stock touchscreen on your ender 6, i do not see it anywhere on this guide and It was giving me a lot of headaches. once you do this remember to restart the firmware and you should hear a loud start up noise.

    [t5uid1]
    firmware: dgus_reloaded

  6. I just followed all your instructions and everything works except one thing, I cant use my stock touchscreen. It is stuck on the loading screen, i have reflashed the mainboard firmware, klipper.bin and my raspberry is connected.

  7. Just setup and everything is perfect, thank you very much for this how to article. Just curious if I can still use the card reader to print files. The system is not showing a print option or seeing any cards I put in the card reader slot.

  8. for me it didnt.
    after ssh the comand ‘git checkout dgus-reloaded’
    i got an error: pathspec ‘dgus-reloaded’ did not match any file(s) known to git.

    Fluid says ‘ Option ‘firmware’ is not valid in section ‘t5uid1’ ‘

  9. On the Klipper Configuration menu (in order to set up the board firmware to upload on the ender 6 board), the setting “Enable DGUS T5UID1 screen” doesn’t appear on my terminal.
    Over that after I flash the touchscreen firmware, it just remains stuck in the startup page with the empty loading bar.
    Anyone with the same problem? How to solve it?
    I have a Raspberry Pi Zero 2 W

      1. with the last update works remotely, but the monitor firmware still doens’t work: when I load the firmware on the screen, it shows directly the “SD Card Process… END!” but looking at the packages/files listed, doesn’t download the .cfg file. Do i need to call it in a different way maybe?