Pause/Resume on Xcontroller

Let’s say you have an Xcontroller and its setup to control Dewalt on/off via a relay and the spindle pwm output and, in addition, it’s controlling a shop vac via one of the other outputs via a relay. If you hit the Pause button on the Xcontroller will it by default turn those outputs off, therefore shutting the router and vac off or, if not by default, can it be configured to do it? And the reverse applies for resuming the cut (turning on the router and vac)?

I’m fairly sure that the answer is no. Pausing the carve (feed hold) is a grbl function not a function of the X-controller. The X-controller just has a switch hooked to the feed hold input of the ATmega328P/grbl.

I can verify this tomorrow if you would like for me to.

So I had a chance to read GRBL documentation (too tired to do it last night) and, based on the GRBL documentation, this looks like exactly what I want:

Door: (New in v0.9i) This compile-option causes Grbl to feed hold, shut-down the spindle and coolant, and wait until the door switch has been closed and the user has issued a cycle start. Useful for OEM that need safety doors.

What I could find about that feature is:

"You need to enable it in config.h and it’ll use the feed hold pin. It assumes normally-open switches connected to ground, but you can use normally-closed connected to ground with the INVERT_CONTROL_PIN compile option.

The safety door will disable the spindle and coolant outputs and will only allow you to resume via ‘~’ once the switch is closed. It’ll repower the spindle and coolant after a configurable dwell before resuming the program."

So it looks like a custom compile of GRBL is needed and then it should control the spindle and coolant (or shop vac) when a feed hold is pressed and also give a “spin up” delay when resuming. Sweet!

Now the question is what type of switches the Xcontrollers use and if they would need to be rewired to make this work and then also making sure that a custom compile of GRBL won’t cause any issues with normal operation (I’ll be using UGS for my Gcode sender so it should be okay from what I can tell).

Hmmmmm, interesting. It appears the Inventables fork of GRBL already has Safety Door enabled.

Based on the config.h file in Inventables fork:
#define ENABLE_SAFETY_DOOR_INPUT_PIN // Default disabled. Uncomment to enable

Compared to main GRBL:
// #define ENABLE_SAFETY_DOOR_INPUT_PIN // Default disabled. Uncomment to enable.

That means that the Xcontroller should, by default, turn off the spindle and anything connected to the COOLANT pin when a Feed Hold is activated if you’re using the pins. More experimentation would need to be done to verify, once I get my machine completed and oh yea, my Xcontroller actually ships.

I guess I could have just looked this up myself but now I can share it for somebody else that may not understand looking at source code and whatnot.

I didn’t think about that as it’s new. Good catch.

Just be careful. Last I heard the X-controller uses version 1.0c of grbl which is still in development and things can/do change.

Pressing Pause/Resume on the X-Controller raises the Z axis and stops the spindle (output low of the spindle enable).
Pressing it again starts the spindle and lowers the Z-axis and resumes cutting.

1 Like