For a project I required my CNC setup to at various stages in the program to pause to perform manual actions. As there are no GCODEs to hold the program for an indefinite time, only to pause for a fixed period of time I needed to find a different solution. After considering a number of options, I considered the following solution: A feed-hold button that the machine will physically trigger.
For the solution I 3D-printed (PLA) a simple bracket for mounting an end-stop switch with a big lever and large disk to enlarge the capture area. The switch is wired in parallel to the Feed Hold input, through an ATMEGA328P microcontroller to allow to a time delay and software debouncing (and some other features).
The Feed Hold can now be triggered programmatically by including a motion sequence in the CNC program to depress and release the feed hold button and move into a parking position (this is where the time delay comes in). After the manual actions are completed, the program can simply be resumed using the Resume button.
Some art projects that benefit from this new feature: