Calibrate Probe Z Offset
Last updated
Last updated
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 the Controls
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 the Console
;
Send a PROBE_CALIBRATE
command in the Console
;
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 the Extruder
;
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 the Console
;
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 the Console
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 the Console
;
Record the probe: z_offset: ###
setting as displayed in the Console
, we will verify this setting matches what is saved in the printer.cfg
file in one of the steps below;
Send a SAVE_CONFIG
command in the Console
;
This will update the printer.cfg
file with the new probe: z_offset
settings and restart Klipper;
Remove the paper from the print bed.
Checking the printer.cfg
file to ensure the new probe: z_offset
settings are updated:
From the MainsailOS web interface, click Machine
, then click on printer.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 the X
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 the Controls
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 the Console
;
Send a PROBE_ACCURACY
command in the Console
;
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 the X
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.