GuidesKlipper Firmware

How to Install Klipper on Creality Ender 3 S1: Config and Setup

I love my Creality Ender 3 S1. It prints well out of the box, and the new Sprite extruder is great. But it can be further improved using Klipper Firmware. In this guide, I will show you how to install Klipper on the Ender 3 S1.

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 mainboard 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 Creality Ender 3 S1?

By installing Klipper on the Ender 3 S1, you will be able to print faster compared to a stock printer, and you will also be able to control your printer remotely through Wi-Fi using a Web interface. The main reason to install Klipper is to use Pressure Advance and Input Shaper, which will further improve the capabilities of the new Sprite extruder from Creality.

I also attached a video where you can see the Ender 3 S1 running Klipper, printing at 150mm/s, 0.15 mm layer height with 3500 acceleration (realistically, it’s probably printing at 100mm/s). This is probably the maximum printing speed you can achieve with the stock configuration. The main limiting factor would be the hotend which is not able to keep up with the high flow rate. I will update the guide after I upgrade to a CHT nozzle.

Test Prints with Klipper on Ender 3 S1

200% calibration cube

In the pictures below, you can see the print quality you can expect after upgrading your Ender 3 S1 to Klipper. The first calibration cube was printed with 50mm/s, during my review. The second calibration cube was printed at 100mm/s with the Klipper config shared in this article.

As you can see, the corners are much better defined, the top layers are cleaner and the print time was shorter.

  • Material: Sunlu Red PLA
  • Layer Height: 0.2mm
  • Nozzle Temperature: 215C
  • Bed Temperature: 50C
  • Print Speed: 100 mm/s
  • Acceleration: 3000mm/s

Tug Boat

When you print faster, you need better cooling, especially with PLA. So in order to keep the print speed high, and also get a better representation of the print quality, I printed the Tug Boat in Sunlu PLA.

There is a little bit of ringing present, but considering that Input Shaper has not been tuned, I am quite happy with the results.

  • Material: Sunlu Grey PLA
  • Layer Height: 0.2mm
  • Nozzle Temperature: 215C
  • Bed Temperature: 50C
  • Print Speed: 100 mm/s
  • Acceleration: 3000mm/s

Prerequisites

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

  1. Raspberry Pi (any Pi version will work)
  2. MainsailOS or FluiddPi – In this guide I will use MainsailOS and a Raspberry Pi 4.
  3. Stock Creality Ender 3 S1 3D Printer
  4. Quality Power Supply for your Raspberry Pi
  5. Type C cable which fits the Ender 3 S1
  6. 3DPrintBeginner Ender 3 S1 Klipper Config File

You can check what kind of chip your printer is using by removing the bottom cover of the printer, and check the CPU on your board:

Ender 3 S1 Pro Chip | How to Install Klipper on Creality Ender 3 S1: Config and Setup

Before you begin

Before you begin

Please note that installing Klipper on the Creality Ender 3 S1 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 3 S1 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 3 S1. It’s also worth noting that the stock touchscreen will not work anymore, and you will need to use the WebUI for controlling the printer. If you still want a standalone touchscreen, then I recommend buying a BIQU PI TFT50 and install KlipperScreen.

This is how mine looks like now:

BIQU BTT TFT50 running OctoKlipper | How to Install Klipper on Creality Ender 3 S1: Config and Setup

Install Mainsail or Fluidd

MainsailOS-Logo

Before we begin, we need to install the web interface for our Klipper setup. I recommend installing MainsailOS because it is actively developed and it’s easy to use, but you can also install Fluidd.

I have written complete instructions on how to install Mainsail OS and Fluidd, so check out one of those articles before moving to the next step. In this guide I will use Mainsail.

The articles also cover the installation of KIAUH which is a handy tool to have when running Klipper.

Prepare and install Klipper firmware for Ender 3 S1

Configure Klipper for Ender 3 S1

Open Putty, enter the IP of your Raspberry Pi then click Open.

Connect to FluiddPi using Putty | How to Install Klipper on Creality Ender 3 S1: Config and Setup

In the Login prompt, you need to enter the credentials for MainsailOS. The default user is pi and the password is raspberry. Please note that the password will not be shown when typing.

Login to FluiddPi | How to Install Klipper on Creality Ender 3 S1: Config and Setup

Now you are in the SSH console of your MainsailOS install. Enter the Klipper folder:

cd klipper

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 5 | How to Install Klipper on Creality Ender 3 S1: 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 Creality Ender 3 S1, we need to install it from the SD card.

Ender 3 with STM32F401 chip

This section is only for machines using STM32F401 chip. You can check the type of CPU by removing the bottom cover and inspecting the board. If you don’t have this chip, you can skip past this.

Creality started shipping some Ender 3 S1s with F401 CPUs. If your printer is running a STM32F401 CPU, you need to use the following settings. Please note that I have not tested this configuration, because I don’t have an F401 board on my S1.

image 4 | How to Install Klipper on Creality Ender 3 S1: Config and Setup

Please note that you might also need to copy the klipper.bin firmware in a STM32F4_UPDATE folder on your SD card. Other than that, the rest of the settings should be similar to the regular F103 boards.

How to flash Klipper firmware on Ender 3 S1

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 Creality Ender 3 S1: 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 Creality Ender 3 S1: Config and Setup

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

Copy the Ender 3 S1 Klipper config file

To make things easier, I made a printer.cfg for the stock Creality Ender 3 S1 which can be downloaded and copied in Mainsail. You can download the config from here: Creality Ender 3 S1 Klipper Config

Navigate to Machine, then click on the Upload button.

Mainsail Upload cfg | How to Install Klipper on Creality Ender 3 S1: 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 Mainsail Dashboard, click on the Power button in the top right corner then click on Firmware Restart.

image 8 | How to Install Klipper on Creality Ender 3 S1: Config and Setup

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

Ender 3 S1 Klipper Firmware | How to Install Klipper on Creality Ender 3 S1: 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, I recommend starting the calibration process for Z offset, Pressure Advance, and Input Shaper.
My configured values should work well, but it doesn’t hurt to double-check.

How to revert to Stock Ender 3 S1 Firmware?

If you decide Klipper is not for you, reverting to the stock firmware is easy. First, download the stock Ender 3 S1 board firmware.

Unzip the contents and copy the .bin file to the SD card.

Plug in the SD card and turn the printer on. This will trigger the board firmware update and the firmware will be flashed. It takes around 30 seconds.

IdeaMaker Klipper Profile for Ender 3 S1

I am also including a tuned IdeaMaker Klipper Profile for the Ender 3 S1. It’s made for PLA, but if you adjust printing temperatures, you will be able to use it with other filaments too. Please keep in mind that Pressure Advance might need to be adjusted according to your filament.

Creality Ender 3 S1 Klipper Profile – 3DPrintBeginner

The profile can be imported from here:

Import IdeaMaker Profile | How to Install Klipper on Creality Ender 3 S1: Config and Setup

Please ensure that Relative Extrusion is enabled when importing the profile. In some cases, IdeaMaker does not import the profile correctly. This is under Printer Settings -> Advanced -> Relative Extrusion

Wrapping up

If you encounter issues during your installation, leave a detailed comment below and I will do my best to help you. I recommend checking out the Faster Klipper Bed Probing Macro if you want to probe your bead faster before each print. I also shared my favorite Ender 3 S1 Upgrades, in case you are looking to do other improvements to your printer.

You can also join the 3DPrintBeginner Forum where there’s a dedicated thread for Klipper Firmware, with Klipper enthusiasts ready to help.

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

Related Articles

Latest Replies

  1. thank you for this. I will definitely be on her asking questions as I work through this process on my S1

  2. the klipper.bin is not flashing to the printer. any help would be greatly appreciated

  3. Followed the guide and got some great prints even without further calibration! Very interested to see how far it can be pushed with a high flow nozzle!

  4. I got the variant with the STM32F401, It didn’t flash at first, but I got it to flash by creating a folder named “STM32F4_UPDATE” and putting the bin file in that, but after flashing, klippy wouldn’t connect to the mcu.

  5. Thanks for sharing your experience.
    I finished my Ender 3 S1 Pro review, so I can start tinkering with Klipper on the xxx401 board :smiley:
    I will make sure to update the installation guide.

  6. Thanks for creating this. I just finished the installation and was running thru the general configuration and ran into an odd issue. The BL Touch is failing to deploy the probe during Bed_Mesh_Calibrate but doesn’t fail when homing. Any ideas what would cause this issue? I ran the inital tests as well and they are failing as well. I can’t figure out why it would Home correctly but fail on everything else.

  7. I’m nearly up and running, but I keep getting the same error. “Recv: // MCU ‘mcu’ shutdown: Not a valid ADC pin” I copied and used your config file. I do have the F4 board, but have found the proper help to get that part figured out. Any help would be appreciated!

  8. So, after nearly going crazy trying to figure out what I was doing wrong, I have found the issue. I commented out the “[temperature_sensor Board_MCU]” section from the config file, issued a restart command, and now can heat tool and bed and see the appropriate readings. Klipper is returning a “Klipper state ready” now without errors.

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

23 more replies

Participants

145 Comments

  1. Some Ender 3 S1s are shipping with boards based on STM32F401 processors. You may want to note this in your guide because your configuration will not work with these.

  2. While printing with 100mm/s I realized that the stepper motors get more hot. I’d assume thats just normal…but is it worrying in terms of how much it wears the actual motor ? I know i could easily step down the speed. But I’d be interested if you have any long-term experience with printing with such high speeds. Would you recommend to lower the speed for larger prints in general ?
    Good guides and well explained content, keep up the good work.
    Cheers

    1. It’s ok for the stepper motors to get hot, as long as they are not overheating (over 60-70C)
      100mm/s is not super fast, so it should be fine for longer periods of time.

  3. Thank you for easy to follow tutorial. I was able to get it up and running.

    One issue I have is my X Y starting points are not centered. It’s similar to what others are reporting. What offsets are you using in IdeaMaker? I tried to change my bed offset in my slicer but that is not helping.

  4. Hi, im sorry im a noob on klipper things like this

    I have mk3s+ and i want to use my pi 3 B and klipperscreen for prusa

    I know how to install mainsailOs & Klipper cause previously i use klipper on Ender S1

    Can i just use usb from pi to usb on prusa board? If can what should i change from your guide?

    Can i wire from PSU to buck converter to supply power 5v 3a to pi 3B?

    Thank you for your attention 🙏

  5. No matter what I do on the latest of Fluidd/Mainsail I get an issue that the host=9.x and mcu=10.x
    On N-1 of Mainsail I don’t get that error but I can’t get past

    Printer is not ready
    The klippy host software is attempting to connect. Please
    retry in a few moments.

    Upon inspecting logs I get this:

    error: mcu ‘mcu’: Serial connection closed
    mcu ‘mcu’: Timeout on connect

    In the Firmware config I have tried both USART1 PA10/PA9 as per your article and also USB but no go…

  6. Hello, maybe i can ask another question 😉 Still have issues with the printer. I have centered in ideamaker my first layer test print and it will be printed something like 2cm more to the left side if i look from the front to the bed. Should it not be perfectly centered?

    https://imgur.com/a/rAXUSnc

    Any idea which value is maybe wrong? I have imported everthing from you and can`t see that the bed size is wrong in the slicer or printer.cfg … Mmmmh?

  7. How do I know the firmware was successfully flashed to the board? I’ve tried both fluidd and mainsail and 5 different usb c cables and I keep getting the printer not ready error

    1. If the firmware is installed, the screen will stop working (it will not load the menu)
      Are you sure the USB cable connects properly to the board? Some USB cables don’t work because they have thicker insulation around the conector.

      1. The firmware loaded properly because the screen stays on the creality logo.

        I removed the front trim because I thought that the usb c connection could be causing an issue, and that didn’t resolve the issue. So if it’s not the connection on the printer or the cable, that only leaves the USB ports on the raspberry pi, is there any easy way to test to make sure those aren’t the issue?

        Thanks!

          1. I am having the same issue, when I do “Get MCU ID” in KIAUH, under UART i get “(UART) MCU #1: /dev/ttyAMA0”, but then in the printer.cfg file, it has “/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0”, so was I supposed to build with USB instead of UART?

          2. I figured it out! For me, when I was doing the command “ls /dev/serial/by-id/*”, I would get “ls: cannot access ‘/dev/serial/by-id/*’: No such file or directory.”, but I rebooted the pi and the ls /dev/serial/by-id/* command worked and gave me the “/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0” which is what is in the config file. So if anyone else is running into this issue, try ls /dev/serial/by-id/* and if it’s not reporting, try rebooting your PI.

  8. Hello,
    First thanks a lot for your guide ! The install process went smoothly and was very clear.
    I tried printing a calibration cube and I’m having issues : https://imgur.com/a/m6uNgo3
    I’m not sure what are those defects on the X and Y faces ( I know there is a flow issue on Z).
    I’m using your profile for klipper and ideamaker but I lowered the minimal layer print time from the default 4s to 0.1s and it helped for the bottom of the cube.
    I’ve already tried tuning the pressure advance, but I kept your value because the results were good.
    Thanks in advance !

      1. I did the pressure advance test again with a value of 0 in my config and this time not messing up the calculation and I have a much lower value and it’s printing beautifully now.

        Thanks a lot for your suggestion and solution !

Leave a Reply

Your email address will not be published. Required fields are marked *