Nozzle Too High After Leveling with BLTouch (Marlin) – How to Fix?

While automatic bed leveling does solve a lot of problems, whether it’s slight errors in bed tramming or a warped bed that you can’t fix, correctly configuring the automatic bed leveling probe is still necessary to ensure that it can do its job correctly and not create a scenario where the nozzle position is still wrong relative to the bed after leveling.

In this guide, we will discuss what can cause the nozzle to end up too high above the bed after automatically leveling the bed with a BLTouch on a printer running Marlin Firmware, take you through the solution process that will help you resolve the problem in a swift manner, and look at the signs that may indicate you’re experiencing this issue.

What Causes the Nozzle to Be Too High After Leveling with BLTouch (Marlin Firmware)?

If your 3D printer prints in the air due to the nozzle being too high above the bed at Z=0 after leveling with a BLTouch probe, the most common culprit is a misconfigured Z probe offset value that’s higher than it should be, which effectively causes your 3D printer to think that the nozzle is closer to the BLTouch than it actually is.

For those unfamiliar, the Z probe offset value refers to the vertical distance between the BLTouch sensor and the tip of the nozzle, which is a necessary piece of information for your 3D printer to be able to position the nozzle correctly on the Z-axis according to the height data from the BLTouch that tells your 3D printer the vertical distance between the sensor and the print bed.

z probe offset explained


As there’s no other way for your 3D printer to know the vertical distance between the BLTouch and the nozzle, an incorrectly configured Z probe offset can lead to your 3D printer printing in the air when it’s too high by raising the nozzle more than necessary, or the nozzle scraping the build plate when it’s too low by lowering the nozzle all the way down until it comes into contact with the print surface.

For instance, if the distance between the BLTouch and the tip of the nozzle is 2 millimeters for your 3D printer (with the BLTouch above the nozzle), but you have the probe Z offset value set to -1 millimeters, the nozzle will end up staying 1 millimeter higher than where it should be relative to the build plate at all times, as your 3D printer will think that the nozzle is 1 millimeter below the BLTouch when it’s actually 2 millimeters below.

How to Fix the Issue of Nozzle Staying Too High After Leveling with BLTouch (Marlin Firmware)?

When fixing this issue of your 3D printer’s nozzle staying too high after leveling with the BLTouch, the very first thing to do is to ensure that the Z probe offset value is correctly configured, as we have discussed in the earlier section – since this will allow your 3D printer to know the distance between the probe and the nozzle correctly and move the nozzle accordingly based on the probe’s readings.

For this process, our recommendation would be to start with resetting the Z probe offset to 0 by sending the M851 Z0 G-code command to your 3D printer, as this will make things a whole lot more straightforward for the following steps.


Next, home the axes by either sending the G28 G-code command through a terminal or by using the LCD controller of your 3D printer and wait for the homing process to complete.

ender 3 v2 auto home example


Once that’s done, deactivate the software endstops by sending the M211 S0 G-code command through the terminal or once again with the LCD controller if the option is available for the firmware you’re using.

While deactivating the software endstops won’t be a necessity in every case, as it’s entirely possible that you won’t need to Z-axis below the Z_MIN_POS value when calibrating your probe Z offset, it’s something we recommend doing regardless to ensure that you can follow the process smoothly.

disable software endstops in octoprint


Next up, bring the nozzle to a position where it’s comfortably on top of the print bed horizontally, preferably toward the center, by either using the G1 Xn Ym G-code command (where x and y refer to the X-axis and Y-axis positions) or the LCD controller of your 3D printer.

Additionally, if the nozzle is at the 0 position and very close to the build surface with no space in between, raise the nozzle a bit to make some space by using the G1 Zn (where n refers to the Z-axis position) G-code command or the LCD controller, as we will need this space for the next step.

printhead positioned on top of the bed


Once you have positioned the nozzle correctly, place a standard piece of paper on the print bed, move the printhead down until the nozzle comes into contact with the paper you have placed, and try to slide the paper back and forth to get a feel for how much the nozzle is trapping it.

printhead positioned close to the bed with a piece of paper in between


If you can still move the paper freely as if the nozzle wasn’t touching it at all, move the printhead down 0.1 mm, try to slide the paper back and forth again, and keep repeating this process until you find the Z-axis value you feel some resistance when moving the paper, but not to the point where it becomes impossible to move it without the nozzle scratching or ripping it.

On the other hand, if it’s practically impossible to move the paper without damaging it, move the printhead up 0.1 mm instead, try to slide the paper back and forth, and once again, keep repeating this process until you find the sweet spot where it becomes possible to move the paper, but with some resistance from the nozzle.

moving the z axis ender 3 v2


Once you arrive at a Z-axis value that satisfies this condition, note down the Z-axis value you’re seeing on your screen, as this will be the correct Z probe offset that allows the gap between the build surface and the nozzle to be optimal.

checking the z-axis value on the screen


Next up, re-activate the software endstops by sending the M211 S1 G-code command through the terminal or using your 3D printer’s LCD controller if the option is available.

enable software endstops in octoprint


Finally, set the probe Z offset to the value you have noted earlier by using the M851 Z<value> command (or your 3D printer’s LCD controller), such as M851 Z-1.8, if the value you have found earlier for the Z-axis was -1.8, and save your changes to the EEPROM with the M500 G-code command (or the Store/Save Settings option in the menus).

setting z probe offset with m851 gcode in octoprint


While this should fix the problem in almost every scenario, in cases where your 3D printer still ends up printing in the air after correcting the probe Z offset, our recommendation would be to go through other factors that can affect the nozzle gap, whether it’s adjusting the bed tramming or re-building the bed leveling mesh, as an issue with bed leveling can also cause the nozzle gap to become larger than optimal in some areas of the build area.

What Are the Signs of Nozzle Being Too High After Leveling with BLTouch?

If you are unsure whether the issues you’re experiencing stem from the nozzle being higher than it should be after leveling with your BLTouch, verifying the problem through the signs you’re observing on your prints is the best way to move forward.

While there are many issues that a larger-than-optimal nozzle gap can cause for your prints, the most noticeable signs you will come across are weak bed adhesion, weak layer adhesion, and strings, as the nozzle being too high above the build surface or the print will prevent the filament from sticking, which in turn will cause the nozzle to drag the molten plastic around.

Even though they might not be as noticeable, some other signs of a nozzle gap that’s too high we recommend watching out for are the appearance of holes and an overall roughness on the surface of your prints, as a large nozzle gap will often also lead to inconsistent extrusion with the plastic not fully compressing onto the build surface or the print.

Conclusion

In most cases, solving the problem where the nozzle ends up higher than it should be after automatic bed leveling comes down to correcting the probe Z offset, as this value being correct is the only way for the 3D printer to know the correct distance between the probe and the nozzle.

That being said, if that doesn’t resolve the problem for you, re-building your bed leveling mesh should certainly do the job, as using the same bed leveling mesh for a prolonged amount can create a scenario where the mesh practically becomes unreliable due to the tilt of the bed potentially changing over time as a result of physical contact.