Calibrate Probe Z Offset

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

Home All
  • Move the print head to a position near the centre of the bed;

    • Send a G1 X125 Y125 F3000 command in the Console;

Move Print Head to Center Position
  • Send a PROBE_CALIBRATE command in the Console;

    • This will return a Z position to start the paper test from;

Probe Calibrate
  • Using a standard weight copy paper, place the piece of paper on the Heater Bed under the Extruder;

Copy Paper

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.

  • 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.

Probe Z Offset
  • 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;

Machine > 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;

Default z_offset Settings
  • 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;

New z_offset Settings
  • 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;

Home All
  • 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;

Move Print Head to Center Position
  • Send a PROBE_ACCURACY command in the Console;

    • The command will run the probe ten times and produce output similar to the following;

Probe Accuracy

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.

Last updated