I level my machine like I do with my 3D printer. Bottom out z and then crank itup by hand until a .025 feeler barely touches the bit. After that I square x and y to marks on my conduit that I made with a metric ruler. Fire up the machine and go.
I was using a pi and cnc.js for a minute and would send a G92 X0 Y0 Z0. But I found another project to use my pi for. Now I have a buck converter going from the PSU straight onto the ramps board with a toggle switch in between. Haven’t noticed a loss in quality just doing everything by hand
I’m not sure if you have to be using a firmware version that has the endstops enabled. But for the physical part, connect the wires to the Z endstop pins on the ramps board. Then issue a home z command, either through the lcd or repetier or other controller software. Then reset the Z value to account for the thickness of the touchplate. (I use G92 Zx.xx where x.xx is the thickness of my plate in repetier command line) But you could write a script, or use a command to store the thickness in firmware, but the command escapes me at the moment.
Is it possible to add a bed size setting to the Marlin menu then use manual mesh bed levelling? I had auto bed leveling set up for awhile, but it required a firmware change to change the bed and grid size, plus the switch I was using (that was just a momentary push button glued to a router bit) didn’t work too well…