How to Perform BLTouch Z Offset (Probe Offset) Calibration?

We can all agree that having to go through manually leveling the bed is one of the most tedious parts of 3D printing for many reasons, ranging from the inconsistent results it produces to the necessity of frequently repeating it to ensure that everything is in order.

On the other hand, while an auto bed leveling sensor such as the BLTouch won’t magically make all your bed leveling issues go away as soon as you add it to your printer either, the upside is that you will need to configure it only once, and as long as the configuration is correct, you won’t have to worry about bed leveling ever again.

In today’s article, we will be covering the topic of calibrating the Z offset value for the BLTouch auto bed leveling sensor (also known as the Z probe offset), which is an essential parameter that we need to configure as correctly as possible for the auto bed leveling process to work smoothly and reliably.

So, how to perform the process of BLTouch Z offset calibration?

You can employ four different methods to perform the process of BLTouch Z offset calibration: using the M851 (XYZ Probe Offset) G-code, modifying the necessary parameters in the firmware, and using the probe offset wizard or the babystepping features through the LCD panel of your 3D printer.

Next up, we will analyze the process of performing the Z offset calibration for the BLTouch sensor in more detail, find out how to calculate the optimal Z offset values, and look at signs that indicate your Z offset may be too low or too high.

How to Perform BLTouch Z Offset (Probe Offset) Calibration?

Performing the Z offset calibration for your BLTouch may seem like a complicated process due to it requiring a few steps that we can consider to be more on the technical side, but it’s pretty straightforward once you know what to do.

Without further ado, let’s analyze the four methods of performing the BLTouch Z offset calibration in greater detail.

M851 G-Code (XYZ Probe Offset)

The first method we can use to calibrate the probe Z offset value for the BLTouch is to use the M851 (XYZ probe offset) G-code in Marlin firmware.

To set the probe Z offset value with the M851 G-Code, all you need to do is pass the Z parameter alongside the Z offset value you would like to set to the M851 G-code, saving the new value to the volatile storage of the 3D printer.

An example of the M851 G-Code usage for setting the probe Z offset value is below, setting the probe Z offset to 2 millimeters.

M851 Z2.0

You can also find the LCD panel equivalent of the M851 G-code by navigating to the Probe Offsets menu under Advanced Settings and choosing the Probe Z Offset option from the menu, which will allow you to perform the configuration directly on the 3D printer interface.

After setting the probe Z offset value with either method, don’t forget to make the configuration permanent by running the M500 (Save Settings) G-code, which will save the changes you have performed to the EEPROM.

Firmware Modification

Another way to calibrate the BLTouch probe Z offset value is to modify the values directly in the firmware, which offers a more permanent solution.

To calibrate the probe Z offset value by directly modifying the firmware, you can edit the third value of the NOZZLE_TO_PROBE_OFFSET parameter in the Configuration.h file of Marlin firmware.

An example of modifying the probe Z offset value to 3 millimeters is listed below:

#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 3 }

Please note that this value will be permanently saved to the firmware, meaning that it will be the actual probe Z offset value after you first flash the firmware and whenever you restore defaults. On the other hand, applying runtime tuning (such as using the M851 G-code) will override this setting.

Probe Offset Wizard

We can consider the probe offset wizard to be the most user-friendly way to calibrate the BLTouch Z offset value, as you can perform the entire process through the LCD panel of your 3D printer.

To calibrate the BLTouch Z offset value with the probe offset wizard, go to the Z Probe Wizard by navigating to the Probe Offsets menu under the Advanced Settings section.

This process will bring the printhead back to the home position and bring up a screen where you can move the printhead in increments of 1 mm, 0.1 mm, or 0.025 mm in real-time, allowing you to configure the probe Z offset value. 

Once again, it’s vital to use the M500 (Save Settings) G-Code or the Store Settings option on your 3D printer’s interface to ensure that the configuration you have modified is saved permanently to the EEPROM and not lost after a power cycle.

To make the Probe Offset Wizard feature active in Marlin firmware, you will need to enable the PROBE_OFFSET_WIZARD parameter in the Configuration_adv.h file and re-flash the firmware to your 3D printer.

Babystepping

Finally, let’s talk about babystepping, which is the more compelling and flexible way to calibrate the BLTouch Z offset value since it allows you to perform the changes while the printing process is taking place.

To calibrate the probe Z offset value with babystepping, start the printing process first, then navigate to the Tune section on the LCD panel, where you will find the Babystep Z option.

In the Babystep Z menu, you can adjust the probe Z offset value in real-time as the printing process takes place, which will allow you to fine-tune the setting as precisely as possible.

It’s worth noting that as the Z probe offset changes you perform through babystepping are temporary, you will need to employ one of the two methods below if you would like to make these changes permanent.

  • Manually configure the Z probe offset value – This process involves making a note of the babystep Z value you have used during the print, then adding this value to the standard probe Z offset value manually afterward.
  • Enable the BABYSTEP_ZPROBE_OFFSET parameter – This process involves making a change to the firmware (which will require a re-flash of the modified version) that causes the babystep Z function to update the Z probe offset value automatically.

Please remember to save the settings to the EEPROM with either method to make them permanent.

While these four methods allow you to modify the Z offset for your BLTouch in different ways, they will all allow you to achieve the same results, meaning that you can feel free to pick the one you think will be easiest for you.

How to Calculate the Optimal BLTouch Z Offset (Probe Offset) Value?

While there is no magic formula to calculating the optimal Z offset value for the BLTouch, it’s a process that you will need to conduct with precision and care to ensure that you produce a reliable result.

Here are the steps we recommend following to calculate the optimal BLTouch Z offset value:

  1. Reset the probe Z offset value back to 0.
  2. Heat the nozzle and the build plate to their standard temperatures for printing.
  3. Bring the printhead to the home position. 
  4. Place a piece of paper right below the printhead.
  5. Slowly move the printhead down on the Z-axis until the nozzle touches the piece of paper.
  6. Note the current Z-axis value of the printhead, which will be the probe Z offset value.

Signs that Your BLTouch Z Offset (Probe Offset) Value is Too High or Too Low

Knowing the signs that appear in scenarios where the Z offset value of your BLTouch is too high or too low will be helpful to steer the Z offset value in the correct direction, as identifying a problem is the first step of resolving it.

First, let’s start with the primary sign that shows the Z probe offset value is too high, which is the BLTouch sensor not being able to get close enough to the build surface, preventing the push-pin from making contact with it and causing the probing process to fail as a result.

In such a scenario, you will most likely notice that the printhead is floating high above the build surface during the auto bed leveling process, which is a very apparent giveaway that the probe Z offset is incorrect.

Now, let’s take a look at the primary sign that shows the Z probe offset value is too low, which is the BLTouch sensor getting way too close to the build surface, having a range of effects from the pin not having enough space to come out to the printhead crashing into the build surface.

As a low Z probe offset is more likely to create a scenario that can be dangerous to the equipment due to the possibility of unintended contact between the printhead and the build surface, it’s vital to be careful.

Wrapping Up

Correctly calibrating the Z offset of your BLTouch is vital for the auto bed leveling process to work optimally, as a miscalibrated Z offset value will throw the readings of the probe off and cause it to produce incorrect results.

To quickly recap, let’s take a look at the methods we can use to calibrate the Z offset of our BLTouch auto bed leveling sensor once more:

  • Utilizing the M851 (XYZ Probe Offset) G-Code
  • Modifying the parameters directly in the firmware
  • Using the Probe Offset Wizard through the LCD panel
  • Using the Babystepping feature through the LCD panel

Ensuring that you have calculated the probe Z offset value correctly, you can use any of the methods above to set the value based on your preference.

Happy printing!