Ever since I first levelled the bed on my newly built Prusa i3,

Ever since I first levelled the bed on my newly built Prusa i3, I have wanted an easily adjustable z end stop so I could set z0 without having to go around the 4 bed levelling screws. So I was happy when I saw that the Marlin menu tree pdf had an item called “z offset”.

Last weekend I finally got around to installing an LCD on my Prusa, but was disappointed to find that “z offset” is only available if you enable auto bed levelling, and I don’t have a bed levelling probe.

I had been achieving the effect of a firmware adjustable z end stop prior to this by setting the hardware z end stop about 0.5 mm above the bed and using M206 to offset z0 to be below this so the nozzle was just above the bed, followed by M500 to store that in EEPROM. But what I really wanted was a knob to allow me to adjust the height of the nozzle after homing, so I have now added that functionality to my fork of Marlin.
Of course, allowing z0 to be a little below the end stop position does mean you are relying on the flex in the micro-switch arm, since the first layer or two are printed below the min end stop position, but this does not seem to be a problem for offsets < 1 mm. I added a line in Configuration.h
#define Z_MAX_TRAVEL_PAST_ENDSTOP_MM 1
so that I could leave min_software_endstops set true for safety.

So the steps for firmware end stop adjustment procedure using the menus in the photo are:
Auto Home
Move Z (in 0.02 mm increments)
Set Z0 Here (this is the new menu command)
Store memory.

So, is there a better way to do this already in Marlin? If not, is this useful enough that I should submit a pull request?

Nice feature. If you have working code, pull request.

I submitted a pull request for this feature. If you wish to try it out immediately, here is my fork: https://github.com/spinorkit/Marlin

I wrote a guide using the home offset feature which I use myself.

http://airtripper.com/1799/marlin-firmware-home-offset-guide-using-g-code-m206/

@Mark_Heywood Great guide with really clear, helpful diagrams. Is it common to home to a z+ end stop? It would take my Prusa i3 an age to get there and back, unless the z travel was reduced well down from the typical 200+ mm (not that I have used more than about 80 mm so far).

@Kit_Adams Personally, I think homing to Z+ end stop make the printer’s state a bit more convenient, and it seems more natural to have the hot end parked away from the bed. I would bet that this set up is the most common on 3d printers.

I print from SDcard mostly and so I automate the the extra z moves needed in the gcode start and end files, I just select the item to print, and the printer does everything else while make a cuppa. Slow Z moves might be less of an issue if you can automate it between printing.

I’ve got an article lined up for automating print preparation for good print starts.