Mystery Z axis offset

When I try to print, the nozzle is a few mm above the print surface so the filament is extruded into air. This is a new behavior that I am having trouble tracking down. The printer was working well, but I made some changes, so I’m sure I screwed something up. I changed the nozzle, and added some gcode to Octoprint GCODE Scripts, which I subsequently removed due to this issue.

It appears that there is some sort of Z offset in place, but I did not intentionally set one (it is definitely set to 0 mm in Slic3r, and I don’t think I accidentally set one in the firmware). I also don’t see anything in the gcode file that would cause the print head to extrude into air. I calibrated the Z axis several times, but the offset is still there.

For completeness, to calibrate the Z axis, I first set the Z position_endstop to 0 in the config file and do a firmware_reset. After homing, I then move the nozzle over the print surface and lower it as close as possible. Then I use a 0.2 mm feeler gauge to level the bed. Then I use M114 to get the position of the print head and calculate the exact value of the z position_endstop (-z + 0.2) . I update the config file with the new value and do another firmware_reset. This Z axis calibration usually gives me very good results and I never use a Z offset.

Are all printer options saved in the config file? Is it possible that I could have accidentally saved an offset somewhere? Any suggestions as to how to debug this mystery offset?

printer.cfg (2.4 KB)

20x20x15_calibration-shape-1EM.gcode.zip (22.0 KB)

I’d recommend to follow Successful z offset with no probe and BL touch (only end stop switch) ender 3 basic printer - #2 by Sineos

Btw, the attached cfg has no saved offset.

Sorry to have wasted your time. It turns out that the issue I was seeing was caused by one of the dual z axis leads being out of sync.

I too have this issue where my print head prints about 1mm above the build plate.
Can I ask if there is no way to fix this in BLTouch way?