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

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
  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 on Raspberry Pi

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

I have covered the FluiddPi 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:

Navigate to the Klipper folder

cd ~/klipper

Next, add the Desuuuu github

git remote add desuuuuklipper https://github.com/Desuuuu/klipper.git

Fetch the latest files from git

git fetch desuuuuklipper

Checkout the changes

git checkout desuuuuklipper/master

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.

Klipper Ender 6 Make Menuconfig | 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 upgrade option) will break the screen functionality. You need to use the Desuuuu klipper build.

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 Discord server where there’s a separate thread for Klipper, with Klipper enthusiasts ready to help.

Liked it?
Take a second to support 3DPrintBeginner on Patreon!

Subscribe
Notify of
guest
167 Comments
Inline Feedbacks
View all comments
Danny Newman
Danny Newman
5 months ago

hey i did what was told but i get this error
mcu ‘mcu’: Unable to connect
Once the underlying issue is corrected, use the
“FIRMWARE_RESTART” command to reset the firmware, reload the
config, and restart the host software.
Error configuring printer

also my screen is just stuck on the ender 6 any idea what i did wrong?

MrSkitari
MrSkitari
5 months ago

seems like i have a frimware problem or something like that errror code is:
mcu ‘mcu’: Command format mismatch: endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c trsync_oid=%c trigger_reason=%c vs endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c

This type of error is frequently caused by running an older
version of the firmware on the micro-controller (fix by
recompiling and flashing the firmware).

Known versions: host=v0.9.1-586-g8bce8924, mcu=v0.9.1-213-ga3d6b64b-20210330_132918-fluiddpi

Once the underlying issue is corrected, use the “RESTART”
command to reload the config and restart the host software.
Protocol error connecting to printer

Already reflashed the frimware several times, still not working….

Ethan McKellar
Ethan McKellar
5 months ago

I’m having an issue.. I am following this guide for an ender 5 plus with the same board and its going well, got everything for klipper installed but when I power on the printer and connect via mainsailOS (my preferred UI), the screen for the ender 5 plus just stays on the klipper logo. When it was installing the screen files I did see it changing between the various screens like an “install preview” but then back to klipper logo and I cant get it to display anything else

Jeremy Ragsdale
Jeremy Ragsdale
5 months ago

I am getting an error using the provided config file. If I remove the Macro I get another error related to I assume the BLTOUCH config.

Name of section ‘gcode_macro Linear Advance’ contains illegal whitespace
Once the underlying issue is corrected, use the “RESTART”
command to reload the config and restart the host software.
Printer is halted

Unknown pin chip name ‘probe’
Once the underlying issue is corrected, use the “RESTART”
command to reload the config and restart the host software.
Printer is halted

Scott
Scott
5 months ago

Same here…

Vogel
Vogel
5 months ago

It could be a mismatch between the firmware flashed and klipper version on the PI. Did you follow these steps?

>> cd ~/klipper

>> git remote add desuuuuklipper https://github.com/Desuuuu/klipper.git

>> git fetch desuuuuklipper

>> git checkout desuuuuklipper/master

>> make menuconfig

[*] Enable extra low-level configuration options
  Micro-controller Architecture (STMicroelectronics STM32) —>
  Processor model (STM32F103) —>
  Bootloader offset (28KiB bootloader) —>
  Clock Reference (8 MHz crystal) —>
  Communication interface (Serial (on USART1 PA10/PA9)) —>

[*] Enable DGUS T5UID1 screen
    Screen Serial Port (USART3) —>
(250000) Baud rate for serial port

[ ] Specify a custom step pulse duration

() GPIO pins to set at micro-controller startup

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

>> make

Then copied the klipper.bin from /home/pi/klipper/out and flashed it?

Alex
Alex
5 months ago
Reply to  Vogel

I got same issue, done everything as was set out in the article and the error with linear advance pops out. Any help

MrSkitari
MrSkitari
5 months ago
Reply to  Alex

go in to the Configuration side , right click on printer.cfg .
then scroll down to : [gcode_macro Linear Advance] and change it to [gcode_macro Linear_Advance] that fixes that

Jordan
Jordan
5 months ago
Reply to  MrSkitari

When I do that, I get the following error:

Section ‘gcode_macro_linear_advance’ is not a valid config section

Once the underlying issue is corrected, use the “RESTART”
command to reload the config and restart the host software.
Printer is halted

Kim H.
Kim H.
5 months ago
Reply to  Jordan

There should not be an underscore between gcode_macro and linear_advance.

Jordan
Jordan
5 months ago
Reply to  Jordan

@MrSkitari your change did work for me. I missed the space between “gcode_macro” and “Linear_Advance”

Jacob Tucker
Jacob Tucker
6 months ago

I am only getting the “SD Card Process… END!” screen and not seeing the Klipper Logo Screen has anyone else encountered this issue?

Jacob Tucker
Jacob Tucker
6 months ago

Then it just gets stuck on the Creality Loading screen.

I’m using these values:

I ran into the same thing. I don’t know why it looks a little different, but these are the settings that worked for me:
             Klipper Firmware Configuration
[*] Enable extra low-level configuration options
  Micro-controller Architecture (STMicroelectronics STM32) —>
  Processor model (STM32F103) —>
  Bootloader offset (28KiB bootloader) —>
  Clock Reference (8 MHz crystal) —>
  Communication interface (Serial (on USART1 PA10/PA9)) —>
[*] Enable DGUS T5UID1 screen
    Screen Serial Port (USART3) —>
(250000) Baud rate for serial port
[ ] Specify a custom step pulse duration
() GPIO pins to set at micro-controller startup

EvoEx
EvoEx
5 months ago
Reply to  Jacob Tucker

Thx, it works!

Jacob Tucker
Jacob Tucker
6 months ago

I think the issue is I’m getting all 0000s on each Files line

Jacob Tucker
Jacob Tucker
6 months ago
Reply to  Jacob Tucker

Finally got it

I am on OS X steps are as follows:

  1. CMD + Space -> type Disk Utility -> Right Click SD Card -> Get Info -> You need the value for the BSD device node key (should be something like disk2s1)
  2. CMD + Space -> type Terminal -> run this command -> diskutil umount <value of BSD device node>

run this command -> sudo newfs_msdos -F 32 -c 8 <value of BSD device node> (this sets the format to Fat32 and sets the allocation size to the correct value) -> should see output similar to (4096 bytes/cluster is key):
512 bytes per physical sector
/dev/rdisk5s1: 62204232 sectors in 7775529 FAT32 clusters (4096 bytes/cluster)
bps=512 spc=8 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=8192 drv=0x80 bsec=62325760 bspf=60747 rdcl=2 infs=1 bkbs=6

Your card should now be formatted correctly and can continue with directions per the tutorial

ville
ville
6 months ago

I got COREXY error too.
did I miss some step or what this means?

Error loading kinematics ‘corexy’
Traceback (most recent call last):
 File “/home/pi/klipper/klippy/toolhead.py”, line 256, in __init__
  kin_name = config.get(‘kinematics’)
 File “/home/pi/klipper/klippy/kinematics/corexy.py”, line 108, in load_kinematics
  return CoreXYKinematics(toolhead, config)
 File “/home/pi/klipper/klippy/kinematics/corexy.py”, line 38, in __init__
  max_halt_velocity = toolhead.get_max_axis_halt()
AttributeError: ToolHead instance has no attribute ‘get_max_axis_halt’
Config error
Traceback (most recent call last):
 File “/home/pi/klipper/klippy/klippy.py”, line 157, in _connect
  logging.exception(“Protocol error”)
 File “/home/pi/klipper/klippy/klippy.py”, line 143, in _read_config
  pconfig.check_unused_options(config)
 File “/home/pi/klipper/klippy/toolhead.py”, line 589, in add_printer_objects
  if p is None or t is None:
 File “/home/pi/klipper/klippy/toolhead.py”, line 264, in __init__
  except:
Error: Error loading kinematics ‘corexy’
webhooks client 3045734640: New connection
webhooks client 3045734640: Client info {‘program’: ‘Moonraker’, ‘version’: ‘v0.6.0-22-gc53b95a’}
webhooks client 3045734640: Disconnected
Restarting printer

Dave
Dave
6 months ago

You should add this from the wiki:

If you are coming from a different firmware, it is recommended to replace the T5UID1.CFG file in the DWIN_SET folder with the one available here.

Vogel
Vogel
6 months ago
Reply to  Dave

I flashed the display with the T5UID1.CFG file and saw the “Format NAND” line on the screen indicating that the alternative config file was correctly loaded. However, after the flash the screen was still unresponsive and temperatures were not indicated. Did you succeed in flashing the stock screen firmware, if so, what were the steps?

Vogel
Vogel
6 months ago
Reply to  Dave

OK, I also figured it out… In combination with the T5UID1.CFG and renaming the files “13触控配置文件.bin” and “14变量配置文件.bin” files in the DWIN_SET folder to respectively “13a.bin” and “14a.bin”, I was finally able to restore the printer back to stock. I used the files from https://forums.creality3dofficial.com/download/ender-series/ender-6/

Jase
Jase
6 months ago

This is my first attempt at Klipper. Followed the entire process. Flashed the provided .bin file. Copied the provided .cfg file and clicked on Firmware Restart. The error below results. Where do I go from here? Thanks.

“Error loading kinematics ‘corexy’
Once the underlying issue is corrected, use the “RESTART”
command to reload the config and restart the host software.
Printer is halted”

Jase
Jase
6 months ago

Double check for what specifically? I assumed it was good to use as is. Do I need to make changes to it?

Jase
Jase
6 months ago

I am using the one you have linked to in the article above. Another person posted a comment below with the same issue. Perhaps something new has changed. I will do my homework on Klipper. You’ve done a very good walk through. However, I should not have tried a shortcut like this. With a bit of time and effort I am sure I will have it up a running.

Peter
Peter
6 months ago

Hello I was having an issue when trying to get everything connected. I am on the last step of hitting firmware restart it tells me klippy is not connected then gives me an error loading kinematics ‘corexy’. Thank you for any help

Duke
Duke
6 months ago

Have you tried to restore the Display back to stock? I tired the file here and the one from Creality (posted on 05/09/21) both fail to restore. I’m stuck now since Klipper doesn’t work right with BLTouch and I can’t restore back to stock.

Danny Newman
Danny Newman
6 months ago

so does this mean that the BL touch wont work with Klipper? i got a BL touch and it is currently working with the printer but want to get klipper should i not get klipper since bl touch may not work?

Derrick Aquino
Derrick Aquino
6 months ago

Settings to comment / uncomment / change to make BLTouch (v3.1) work:

[stepper_z]

# position_endstop: 0.0          # disable to use BLTouch
# endstop_pin: ^PA7            # disable to use BLTouch
endstop_pin: probe:z_virtual_endstop   # enable to use BLTouch
position_min: -5             # enable to use BLTouch

[safe_z_home]               # enable for BLTouch
home_xy_position: 150.7, 137
speed: 100
z_hop: 10
z_hop_speed: 5

[bltouch]                 # enable for BLTouch
sensor_pin: ^PB1
control_pin: PB0
x_offset: 20.7
y_offset: 7
z_offset: 1.45 # put your own offset here
speed: 3.0

[bed_mesh]                # enable for BLTouch
speed: 100
mesh_min: 30, 15 # my adjusted probing area
mesh_max: 278, 263 # my adjusted probing area
algorithm: bicubic
probe_count: 5,5

jre5212
jre5212
5 months ago
Reply to  Derrick Aquino

Was there anything else you did/changed? I have v3.1 and it keeps hanging up when it gets to the ABL part of pre-print

Duke
Duke
6 months ago

The bit maps are all there, but the Screen touch is unresponsive when I get back to stock. How can this be an SD Card formatting issue?

Duke
Duke
6 months ago

Thanks 3DPrintBeginner It was the 2nd thing I tired after failing to restore. same results. Display map is loading correctly but the touch no longer work on the Display. I noticed klipper uses a 5k touch.bin file in the DWIN_SET compared to a 12K on the stock so we know klipper is messing up with the touch binary. Given the number of people reporting this issue, Its fair to let people know this may be a one way change for now.

Vogel
Vogel
6 months ago
Reply to  Duke

I was able to revert back to the stock display firmware, however, it was unresponsive and the temperatures were not shown, was this the same for you?
What I tried was an incremental update approach starting from the earliest firmware I could find on Creality.com, which was V1.0.1. Then flashed V1.0.2 and eventually V1.0.4.9. I confirmed that the board firmware was working as I was able to connect it to Octoprint and issue commands. G-code M115 showed V1.0.4.9 was flashed.
I followed the same procedure for the display, starting with the display firmware bundled with the V1.0.1 package followed by the version from Creality.com. However, the screen stayed unresponsive with each version. As I like to use the screen, I went back to Klipper and am waiting for someone who can point me in the right direction…

Duke
Duke
6 months ago
Reply to  Vogel

I have the same issue. I reverted back from Klipper to stock and now, my Display Touch is not responsive. Anyone know what in the Klipper Display FW is making the Stock Touch stop working? 3DPrintBeginner Did you verify that the Touch was working when you went back to stock?