I've recently used the same method as CNC hobbyists use to zero out their work-piece (see picture below), by using my printers nozzle as a probe that lights up an LED as soon as it touches a PCB.
That worked extremely well, however I am puzzled as to how it ended up working - by sheer logic I would need to subtract the Z-height at which I was calibrating, which in my case was at Z1.2, so I assumed I would have to G206 a Z1.2 in marlin to correct for that..
However that ended up being way too close to the bed (even though my printer has a Z0.30 start g-code) - what ended up working was Z0.15, which is half of the Z0.30 set by my printer.
I'm close to believing it was marlin always z-stop'ing that dictated this, but why wouldn't it be then 1.2 off the bed still?
Does anyone have a clue / theory how that ended up working?
Thanks so much for any ideas!