This section explains how to calibrate the probe z_offset
which is critical to obtaining high quality prints. The z_offset is the distance between the nozzle and bed when the probe triggers. The Klipper PROBE_CALIBRATE
tool can be used to obtain this value - it will run an automatic probe to measure the probe's Z trigger position and then start a manual probe to obtain the nozzle Z height. The probe z_offset will then be calculated from these measurements.
Prior to starting this calibration, remove any filament completely from your printer and ensure your nozzle does not have any extruded filament hardened on the nozzle. This will ensure a proper probe z_offset calibration.
This calibration will be performed with the Heater Bed at room temperature, please allow some time for the Heater Bed to cool down from the PID calibration.
From the MainsailOS web interface;
Click the
Home All
button in theControls
section;This should move the print head to the
safe_z_home
position;
The safe_z_home
position, is pre-defined in the printer.cfg
file to these coordinates: x-3, y-17, z10
Move the print head to a position near the centre of the bed;
Send a
G1 X125 Y125 F3000
command in theConsole
;
Send a
PROBE_CALIBRATE
command in theConsole
;This will return a Z position to start
the paper test
from;
Using a standard weight copy paper, place the piece of paper on the
Heater Bed
under theExtruder
;
The TESTZ
command will be used to move the nozzle a relative distance from the nozzle's current position. A TESTZ Z=-.1
command will request the nozzle to move closer to the Heater Bed
by .1mm.
On one of my Anycubic Printers as an example, I had to lower the Z position from 2.915 to 1.835 (your printer will vary). If I did all TESTZ Z=-.1
commands it would have taken a lot of time. If you are careful, you could start with a Z=-1 or Z=-0.5 to shorten the number of commands to send to the printer, just make sure that after every TESTZ
command sent, you visually check the position of the nozzle.
You want to avoid having the nozzle crash into the bed and risk breaking the strain gauge on the printer. It is best to take your time, just use common sense, and be cautious when entering the distance a Z=-1 and Z=-.1 is a big difference!
Send a
TESTZ Z=-.1
command in theConsole
;After the nozzle stops moving, push the paper back and forth to check if the nozzle is in contact with the paper;
Continue sending
TESTZ
commands until you feel a small amount of friction when moving the paper back and forth;You only need a small amount of friction, you should still be able to move the paper back and forth feeling a slight contact with the nozzle without making the paper buckle;
If too much friction is found then send a
TESTZ Z=.1
command in theConsole
to raise the nozzle and test the paper friction again;If you raised the nozzle too high, adjust the negative
TESTZ
command by splitting the last distance in half;For this example you just went up Z=.1, try Z=-.05 or even Z=-.025 until you find the the sweet spot.
Once you have the little bit of friction between the paper and the nozzle;
Send an
ACCEPT
command in theConsole
;Record the
probe: z_offset: ###
setting as displayed in theConsole
, we will verify this setting matches what is saved in theprinter.cfg
file in one of the steps below;
Send a
SAVE_CONFIG
command in theConsole
;This will update the
printer.cfg
file with the newprobe: z_offset
settings and restart Klipper;
Remove the paper from the print bed.
Checking the
printer.cfg
file to ensure the newprobe: z_offset
settings are updated:From the MainsailOS web interface, click
Machine
, then click onprinter.cfg
;
The
printer.cfg
file should load into an editor window;Scroll down until you see the
[probe]
section, the default z_offset setting should be commented out and will not be used;
Continue scrolling down to the very bottom of the
printer.cfg
file until you reach the;#*# <---------------------- SAVE_CONFIG ---------------------->
section;A new
[probe]
section should be present, along with the new z_offset setting;This should match what you recorded from the
Console
in a previous step;
Once you have confirmed these settings;
Close the
printer.cfg
file by clicking theX
near the top right of editor;
Repeatability Check:
After calibrating the probe Z offset it is a good idea to verify that the probe provides repeatable results. You will use the
PROBE_ACCURACY
command for this test;From the MainsailOS web interface;
Click the
Home All
button in theControls
section;
Move the print head to a position near the centre of the bed (same position you used to calibrate the probe z offset);
Send a
G1 X125 Y125 F3000
command in theConsole
;
Send a
PROBE_ACCURACY
command in theConsole
;The command will run the probe ten times and produce output similar to the following;
Ideally the tool will report an identical maximum and minimum value (if the probe obtains an identical result on all ten probes). However, it's normal for the minimum and maximum values to differ by one Z 'step distance' or up to 5 microns (.005mm).
A 'step distance' is rotation_distance/(full_steps_per_rotation*microsteps). The distance between the minimum and the maximum value is called the range. A range of 0.012500 would be considered normal.
If your 'standard deviation' is much greater than 0.012500 you may want to run through this calibration setting from the beginning and try again.
Once you have confirmed these settings;
Close the
printer.cfg
file by clicking theX
near the top right of editor;
The official Klipper documentation has a section that explains Thermal Expansion, bottom of Bed Levelling. Although it relates to the Probe Z Offset, I felt it has more relevance once you make your first couple of prints. Therefore I've included it as a sub-section of Making Prints as you will need to print an object to see if you have to make any Z Offset adjustments.
Last updated