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

Originally published at:

I previously covered the Ender 3 S1 Klipper installation, but things are a bit different for the S1 Pro, so I thought it would be helpful to cover this in a separate article. In this guide, I will show you how to install Klipper on the Ender 3 S1 Pro.…

I see that the Klipper GitHub also has a config file for the S1 Pro now, but when I compare that config file with the config file from this article, there are quite a few differences… so, now not sure which file is more current or accurate… any advice on this?

You are free to use any klipper config :slight_smile:

Can I copy/past sections from one file to another to “make” my own config? Or will this cause issues?

No problem in doing that. You just need to make sure you know what you’re doing and understand what’s changed.

Im at klipper firmware configuration, and for processor STM32F401 there is only on bootloader offset avalaible “16KiB bootloader (HID bootloader)” and in the guide there is 64 KiB bootloader selected. Should i go with 16 KiB bootloader? Or i need to update somthing to get 64 KiB option?

Great tutorial for the S1 Pro. Worked great on my STM32F401. Thanks to 3DPrintBeginner. So nice to get rid of the SD card and enjoy tons more features with Klipper. I was lucky to have a Pi4b I bought a year ago. One tip I have for those installing Klipper is to uninstall the Arc_Welder plugin in Cura if they have it installed. The G2 and G3 codes it yields do not work in Klipper without making changes.

Oh… One more thing. The Klipper firmware did not flash on the first try. But did flash fine on the second try. Weird!

Same issue. Looking for how to fix this.

Hello everyone, I’ve had my S1 Pro for a week now and am thinking of trying Klipper for the first time. I have a Raspberry Pi already on another printer I’m planning on moving over to the S1 Pro for Octopi but I may just use it for this. So my question is my Pi already has the official Pi 7” screen so will that work with this firmware like normally running Octopi?

Yes. you just need to install KlipperScreen


I am new here, as I am new to 3D printing. I recently bought myself an Ender 3 S1 Pro and had quite a hard time with because it was nearly impossible to properly level the bed with the stock firmware. While manual leveling worked to some extend, the ABL messed everything up and caused the nozzle to almost engrave the build plate in the front part while printing into the air in the back part.
After some searching in the almighty internet I stumbled onto this guide and gave it a try. It worked almost like a charm. The ABL works now and Klipper is also really helpful when it comes to calibrating and configuring the printer.

So great thanks for providing the guide.

I have, however, a minor issue with the precision of the z-axis: With the stock firmware the height of the standard 20mm^3 calibration was spot on 20mm while I had to adjust the flow rate for the x- and y-axes. Now with Klipper the x- and y-axes are spot on but the z-axis is almost 0.5mm to high. I am quite not sure on how to fix this. I would use the same approach as I did for the e-steps and use the old step value the actual height and the target height to calculate the new step value (does this work at all?), but I am not sure what step value is relevant here. rotation_distance? microsteps? Any help would be appreciated.

I recommend printing a 40x40 cube as a test. It is easier to measure and gives more accurate information.

Okay, I have printed a 40x40 cube and again: X has 39.95mm Y has 40mm and Z has 40.3mm. This about the same amount as for 20x20 cube. So the error does not scale…

Can you share some pictures? I think it’s mostly a measurement issue.

Here are two measurements of the z-axis of the 40x40 cube:
This is the x-axis of the 40x40 cube:
This is the y-axis of the 40x40 cube:
And here is a shot of the z-axis of a 20x20 cube:

Remark: I have not configured the input shaper, yet. The is some ringing for x and y panes.

You are using an analog caliper, so the measuring might not be accurate.
Either way, I would be happy with the results. Try to print a functional piece, and adjust according to the tolerance you get there.

Na, it is physically impossible that an analog caliper shows different values for the same length except for measurements taken under greatly varying temperatures. Showing different lengths is a problem of cheap digital calipers caused for example by slippage of the wheel that measures the distance traveled by the movable jar. If there is a precision issue with an analog caliper it always off by the same value.
Beside of this, it’s a calibrated industrial grade caliper with a calibration tolerance of about 1µm.

The thing is that I had no precision errors (but many other issues) with the stock firmware. And I am wondering what causes this.

Found the issue: It is the calibration cube itself. Not sure why, because according to Cura it is 20x20x20.
I have just printed a plain 20x20x20 cube (without the X, Y and Z markings on the faces) and it is spot on 20mm in z.

1 Like

Hi all, I am fairly new to this please be kind…

I have installed Linux Mint and Octoprint… still figuring it out. Now my question is , is klipper different from Octoprint? which would you suggest if not the same? I have the touch screen on the S1 and dont really want to change the screen, also dont want to have too many issues.


Klipper is a firmware and will basically replace the firmware on your printer. Octoprint is a controller software (roughly spoken a front end) that allows you to control the printer though a web interface. You can use Octoprint in combination with Klipper. Octoprint then communicates with the Klipper firmware on the printer.

In the 3dprintbeginner “How to” here, Mainsail is used instead of Octoprint. Mainsail is basically an operating system for Raspberry Pis that for one thing allows you to build Klipper for your printer and for the other thing allows you to control your printer with a web UI (Moonraker).

The original touchscreen will not work with Klipper. You can use alternative touchscreens or just no not use one at all. I have removed mine and just use the web UI for everything.

1 Like