Since I recently updated my grbl to 1.1f I was able to take advantage of G38.2
I use this as a macro in UGS
G38.2 z -.5 F1; G92 Z .065; G0 z .25
G38.2 Z -.5 F1
probes down .5 inch at 1 inch/min
sets Z to touch plate thickness (I use a copper clad pcb .065 thick)
G0 Z .25
Position the tool at .5 inch or lower above touch plate (or change the Z higher if you like, keep in mind that it probes down at 1 inch/minute)
Run the macro. The tool will descend at 1 ipm until contact, then retract.
The value of Z0 will now be set at the material height.
I cannot take credit for this code, its floating around the web from several sources. I just put it all on one line in a UGS macro. Works great though!