Useful or not, from you.
Marlin [BUG] Mesh bed leveling requires moves Z below axis limits

I'm trying to understand mesh bed leveling and to get it to work on my printer.

So, as far as I understand, the printer will move the head to a number of X/Y locations in a grid (typically 9 locations) and then allows you to adjust the Z position manually until it is just right. Seems nice and easy, right?

The X/Y parts works fine here. However, when I set the head to a calibration position with G29 S2, mesh bed leveling always seems to home Z, no matter what. As far as I can tell, you are supposed to position the endstop to trigger slightly above the bed. Then you can adjust the Z position below the limit set by the endstop to get the proper distance to the bed. (This is all guesswork, though. The documentation is pretty bad.)

Isn't that a fundamentally broken and dangerous idea? The endstop defines the axis limit and by definition one is not supposed to move beyond the endstop limit. The Z endstop often is a microswitch, and it is not safe to move below the trigger point. This will squish down the switch and might even break it!

Mesh bed leveling should not require such dangerous moves and it should work with arbitrary Z endstop positions.

That's a useful answer
Without any help

Here are the updated sketches with the nozzle at bed height. Also an amended amendment suggestion for the Marlin Probe Offsets documentation;

"The X and Y offsets specify the distance from the tip of the nozzle to the probe respectively. The Z offset specifies the distance from the tip of the nozzle to the probe trigger point and should be specified precisely. The Z offset can be overridden with M851 Z or LCD 'Probe Z Offset. The M851 offsets are saved to EEPROM with M500. Offsets are specified as decimal integers (millimetres)."

image image