I work with a larger community makerspace and people missetting the z and gouging the spoilboard is the bane of our existence,
I would like to implement this:
1. there's a wireless toolsetter you use as normal to set your top datum jobs. This is the "User Offset" (UO). I only mention this to make it clear that the tool offset test is a different thing.
2. a ToF rangefinger on the head. NOT to try to distance the work, bed, or bit. Rather, it's mounted above the spindle and if it is not running and senses hands in the area needed to undo the collet nut, it assumes the bit has been changed strobes a "safety touch off required" (STOR) signal that linuxcnc latches. STOR is basically "tool offset is now unknown, don't run until the tool offset is checked"
3. The safety touch-off is a second toolsetter located in a fixed place on the machine, with a known fixed Z-height above the bed. The STO cycle finds the z height of the bit tip and scans the loaded file for the lowest Z-coord, applies the current UO, and if it goes below the bed in machine coords, sets Z Safety Lock Out (ZSLO) which locks out the Run mode. STO test never reorients the job, it only locks out run mode until the user corrects it
4. Loading a new file, rerunning the wireless toolsetter for a new UO, manually entering a new UO, or running a new STO cycle triggers a reevaluation which could reset the ZSLO.
5. STOR is only set upon power-up or the ToF rangefinder detects that the bit may have been changed. False triggering the rangefinder and setting STOR is acceptable as it is just a small nuisance, but it should be impossible to interact the with collet nut without triggering STOR. The corrective measures in #4 do not set STOR since the tool offset is already known. It is not tested every time you press RUN.
6. STO can be initiated manually, or, pressing "RUN" will always trigger an STO before running, which will either continue on into the RUN mode, or trigger ZSLO and enter the STOP state.
I know this will not protect against bit slippage. I have wondered about how to do that for awhile, but can't see a solution other than conductive spoilboard. Conductive spoilboard could actually work, it could still allow shallow excursions into it. When the spoilboard is grounded by bit contact, the distance from the current Z and the lowest Z in the loaded file cannot be >2mm or we retract Z and stop.
Only problems there are you can't use conductive stock (bypass mode possible), but the main issue would be a cost-effective way to make spoilboard conductive enough. Then again, if the spoilboard isn't getting consumed regularly, a high-effort way to make it conductive could still be practical.