In FDM 3D printing, the first layer is very important. It must be well adhered to the bed, and the nozzle must not be too close to the bed, otherwise the filament will not be able to come out. On the other hand, if the nozzle is too far from the bed, the first layer will not be well adhered to the bed, and the print will fail due to bad adhesion (warping, part coming off the bed, etc.).
It is therefore important to fine-tune the height of the first layer, so the nozzle is exactly at the right height.
1. Leveling the bed
The first step is to level the bed. This step depends on the printer : some have manual adjustment screws, others have automatic adjustment using multiple Z motors. Follow the Bed Level documentation to level the bed.
2. Adjusting the height of the first layer
Once the bed is level, it is not necessarily at the right height. This is where Z offset adjustment comes in. The goal is to adjust the height of the first layer so that it is exactly at the right height.
Adjusting the Z offset in Klipper
The Z offset is adjusted in the printer.cfg
file. The following property to look for is position_endstop
in the [stepper_z]
section:
[stepper_z]
...
position_endstop: 0.0
...
- Increasing this value will lower the nozzle (the nozzle will be closer to the bed)
- Decreasing this value will raise the nozzle (the nozzle will be further away from the bed)
In my case, raising the nozzle was required ; so my [stepper_z]
section now looks like this:
[stepper_z]
step_pin: PB3
dir_pin: PB2
enable_pin: !PA5
microsteps: 16
rotation_distance: 8
endstop_pin: ^PC4
position_endstop: -0.4
position_min: -0.5
position_max: 250
homing_speed: 5
Conclusion
3 things to remember:
- Level the bed first (see Bed Level documentation)
- Raise the nozzle by increasing the
position_endstop
value in the[stepper_z]
section of theprinter.cfg
file - Lower the nozzle by decreasing the
position_endstop
value in the[stepper_z]
section of theprinter.cfg
file