# After installing BLTouch and Marlin, my nozzle is too high when trying to print

So I have an AnyCubic i3 Mega to which I added a BLTouch v3.1 and Marlin (1.1.9 due to older, Atmega 8-bit CPU) using instructions and such from this link.

Finally, I've got everything moving in the right direction, I got the auto-bed leveling (bilinear) going (did a 7x7 grid), saved the mesh, tuned the bed and extruder PIDs. Great! Add the G-code into Cura to load the settings and activate the mesh.

Start the printing, goes to home fine, gets up to temp, and then it moves into position to start the print and it suddenly jumps up in Z-height above the bed several millimeters. I pause the printing via OctoPrint, try and use the control tab to adjust the height, not responding. Canceled the print. Used the M114 command to get the position.

Here it is after I hit cancel.

Recv: X:180.63 Y:171.85 Z:0.00 E:9.71 Count X:14450 Y:13748 Z:2120


Here it is after I use G28 to home

Recv: X:-5.00 Y:0.00 Z:0.00 E:9.71 Count X:-400 Y:0 Z:0


Here is the Start G-code settings from Cura

G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
M501 ; bltouch mesh load
M420 S1 ; bltouch mesh load
G1 Z15.0 F{speed_travel} ;move the platform down 15 mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3 mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{speed_travel}
G0 Y20 F{speed_travel}
M117 Printing...
G5


It's almost like the Mesh Z-offset is wrong. I do have a probe Z-offset of -4.60, set via M851. I set this, and then I did G29 to re-do the ABL.

With me being new to ABL and Marlin, what did I forget? Maybe I did something wrong?

• As a comment, homing is defined as G28 or followed by an axis letter as a flag, not a zero/digit/number after the letter. The X, Y, and Z parameters act only as flags. Any coordinates given are ignored. For example, G28 Z10 results in the same behavior as G28 Z. from G-code manual. Don't read parameters from memory (M501) unless you changed parameters you want to revert back, there is no reason to to this every print.
– 0scar
Sep 19, 2021 at 9:38

After you have completed the bed levelling using G29 you should have a list of mesh coordinates showing in the interface with OctoPrint. (I am using Pronterface, so am not all that familiar with OctoPrint). You need to save the mesh coordinates to the control board. To do this enter M500 and then M503 to check that the data has saved. If you enter G28 (don't use the digit after the axis!) after using G29, but without saving (M500) the coordinates will be discarded.
When you have set your Z-offset, you also need to save that too (M500).