Revive your Prusa Mk3s with Klipper 3/5 – Perfect flat bed with Klipper on a Prusa Mk3s

Chapter 3/5

Perfect flat bed with Klipper, Nylock Mod, Pinda Calibration, Slicer Tweaks and First Initial Print


This is a series of 5 chapters:

Please read previous chapters before you continue. This is a series and you can’t jump between chapters. At this point you should be running a prusa MK3s with our klipper printer.cfg

A lot of people ask me why? And the answer is simples. More speed. More reliability. Input Shaper. Wifi printing.

Before jumping further we need to correct the z probe offset aka Pinda sensor.

Pinda Calibration

Why we need to correct the z offset of the pinda probe?

Because we have set it to 1.5 on [probe] section in order to save the extruder agains accidental crash to the heatbed.

If you know your z offset because back in the days you have done the baby stepping process. Please go ahead and change it.

If you don’t know your z offset we are going to find it.

Grab a piece of paper.

On the mainsail web interface, home the printer by hitting the home all button or in the console terminal execute


After the homing of the printer we are going to proceed with the following command:


Now grab the piece of paper and lets make the paper test. “It involves placing a regular piece of “copy machine paper” between the printer’s bed and nozzle, and then commanding the nozzle to different Z heights until one feels a small amount of friction when pushing the paper back and forth.” (Source:

Hit the -0.1 button until you achieve the desired result.

When you think it’s spot on hit the button  ACCEPT.

Let’s save the new values. On the terminal console execute:


Your printer will restart and on the bottom of the printer.cfg there will be the new z offset value that the printer now uses for it’s functionality.


Perfect flat bed

It’s mandatory to achieve a perfect first layer to also have a perfect flat bed.

This is super bad!

That being said, we need to change the hardware of the printer and place the most famous nylock mod.

Let me quickly explain the theory. The bed is screwed to the y carriage by 9 screws. Klipper is going to compare the distance of the center screw of the bed against all other screws and it’s going to tell you what adjustments needs to be made.

We have placed a special custom code in printer.cfg to achieve this, check the section codes of bed_mesh, screws_tilt_adjust and the macro ADJUST_BED_SCREWS.

First of all, turn of the printer.

Unscrew all the 9 screws that attaches the bed to the y carriage.

Save 8x spacers and the all 9x screw in to zip plastic bag.  Just leave 1x spacer. This spacer will be used in the center middle screw to attach the heatbed bed to the y carriage.

(credits prusa assembly guide)

The bed is now free from the y carriage. Rotate it and lay it down on the y carriage. The bottom side of the bed should now face up. I suggest to place a piece of paper or bubble wrap between the carriage and the heatbed.

Forget about the center middle screw and focus on the rest of the 8 fixing holes.

The rest of the 8x fixing points of the heated we are now going to place a m3x14 torx screw all the way trought the bed. From the bottom place a m3x14 torx screw.

On the opposite side we are going to place the nylon washer + spring washer + self locking nylon nut. Like the images below:

Repeat the process for the 8 screws.

Don’t thighten this combo super tigh. The screw needs to rotate with medium friction.

Rotate the bed.

Place the spacer on the middle of y carriage. Place a m3x14 torx screw on the middle of the bed. Turn 2x around and try to grab some fixture.


(credits prusa assembly guide)

Start screwing the 8x nylock screws combo (3x turns at time) until the middle center screw is fully attached.

Use the following pattern

(credits prusa assembly guide)


The self locking nut should distance 1mm from the carriage.


Now, lets start the fun part:

On mainsail webinterface execute the macro:


It’s going to show a menu like this:

For example, the front left screw need to be turned 1/3 of a full turn.

Becareful once again. The bed and Pei sheet are hot.

Repeat this process by clicking retry.

Once you achieve the final results click on accept.







Slicer Tweaks

Edit promt start g-code

M104 S0 ; Stops PS/SS from sending temp waits separately
M140 S0
PRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]

(source ellis tunning guide)



Send sliced files via wifi



Let’s print!


Shopping Cart