Duplicating the X-Carve's pause/resume feature

Hope this is the right place for this question.

I’m building a new CNC router to replace my 750mm X-Carve. I’m using the popular Arduino Uno / GRBL 1.1 combination, and I’d like to duplicate one of my favorite features of the X-Carve’s X-Controller: the Pause/Resume function.

I’m pretty sure I can manage a Pause function with the Feed Hold pin, but the thing I loved about this function on the X-Controller was the fact that it raised the spindle to the top of the Z axis when Pause was used. This doesn’t seem to be default behavior for the Feed Hold function.

So far I’ve managed to learn that it has something to do with having Parking enabled and also something to do with the Safety Door setting, but I haven’t been able to find anything more specific.

Can anyone here tell me how to duplicate this function in a generic Arduino / GRBL 1.1 setting?

Custom GRBL compile with config.h changes.

Or you can just load the Xcontroller HEX file for v1.1f and it’ll work.

If you are deadset on custom GRBL, from config.h (uncomment the #define and then compile GRBL to your arduino):

// This option causes the feed hold input to act as a safety door switch. A safety door, when triggered,
// immediately forces a feed hold and then safely de-energizes the machine. Resuming is blocked until
// the safety door is re-engaged. When it is, Grbl will re-energize the machine and then resume on the
// previous tool path, as if nothing happened.
// #define ENABLE_SAFETY_DOOR_INPUT_PIN // Default disabled. Uncomment to enable.

I believe that is all you need.

1 Like

In addition to what @JustinBusby wrote, you’ll just need to enable parking.

#define PARKING_ENABLE  // Default disabled. Uncomment to enable

Outstanding! Thanks very much guys!