So one of the first things I decided I’d add on to my X-Carve is an E-Stop. I ran the hot 120VAC wire from the wall through the normal closed switch on my E-Stop switch, then to an outlet that my 24VDC power supply and Dewalt DWP611 router are plugged into. The issue I’ve run into is that the 24VDC power supply apparently has a rather significant input capacitance. What this means for non-electronics guys is that the 24VDC power supply does not stop supplying power to the Arduino controller for about half of a second.
So, my improvement is to make use of the FEED HOLD input function in GRBL. The input A1, which is held high with an internal pull up resistor, must be pulled down to 0V to trigger an immediate feed hold command. This causes the stepper motors to stop stepping much faster than they would if you waited for the power supply’s input capacitance to run dry.
Luckily, many E-Stop buttons come with both a normal closed and normal open switch actuated by the one button. I went with this E-Stop. I’ve now wired the A1 input to a terminal on the normal open to be connected with ground upon an E-Stop press. So, now the logical flow is: Program is told to stop immediately. A half second later all power is killed. My machine responds instantly to an E-Stop signal and the risk of breaking bits has been greatly reduced.
I’m not entirely sure about the stock electronics, but every time I’ve hit the Estop on the X-Controller, the result has been instantaneous and total. There’s enough power in the capacitance to keep the LEDs lit and a little fan running for a couple seconds, but I suspect there’s not enough to move the steppers a significant amount…
Significant, no. But my first cut ever was into a block of wood and my Z axis didn’t retract before zipping over to the next spot. So my end mill went flying through this particle board at like an inch per second. I hit the E stop and it traveled a good inch after I hit the button. Like I said, it’s like a few hundred milliseconds for the power supply to finally cut out. But a few hundred milliseconds might be all it takes to snap your bit.
That’s very interesting… I’ve used it under similar circumstances, and without fail the time it takes me to extend my arm and slam the button has taken massively longer than the cutter has taken to come to a stop once the switch has been tripped. You had a full SECOND of full powered motion after engaging the Estop? Dang, that’s a LOT more than me.
No, no, the few hundred milliseconds is what I observe after hitting the E-Stop. Maybe in my panic the adrenaline made it seem like half a second when really it was 100ms. The point is, the stepper motors will stop the very instant you pull the feed hold input low. The power supply has capacitances inherent all all power supplies that cause the arduino’s program to continue running for some short time after the E-Stop is pressed.
This would risk exceeding the 24V supply’s maximum current output, even if it is for a fraction of a second. I don’t want to pop an internal fuse or something. Letting the supply’s output voltage fall off slowly isn’t a problem if the program is halted the moment the E stop is pressed.
Wait, Dan- do you know if the E-Stop on the X-Controller cuts the 24V between the supply and the Arduino? If that’s the case it would make sense for the E-Stop to hault all movement instantaneously. My E-Stop cuts 120 from the input of the power supply because I wanted to kill everything in the system.
That would make the 24V output fall more quickly, but it still wouldn’t be instantaneous. And the Arduino and stepper motors would still be using current, so you couldn’t know that current peaks weren’t exceeding 17A. It’s just not the best idea, Angus. Letting the power supply output fall off slowly is safe and won’t harm the power supply. Connecting the NO E-Stop switch to the feed hold to ground will halt the stepper motors movement instantly. With that as an option, putting that stress on your power supply really isn’t necessary.
I believe from what I’ve heard that it’s a 120v interrupt. I’m not entirely sure if they’ve added any other interrupts into the circuit as well. It actuates VERY quickly, though.
I guess as a practical standpoint, the long time-lag will be the idiot behind the keyboard realizing that something’s wrong and lunging for the button, not the circuit itself going through shutdown. And most stuff where I’m looking for a crash, my hand is already poised over the button and I can kill it even if there is a bit of a delay. It’s sure saved me a few times!
you may have observed machine inertia as part of that delay. I would advise against relying on feed hold, or any other software equivalent, as an E-stop. Software has bugs and bazillion things that can cause it to not respond the way it was intended. An E-Stop should be something above all the software and hardware that in all circumstances makes things safe. A fuse is another example of something that lives outside of all the designed equipment as a backstop to make sure things don’t get unsafe.
So, when that moment comes, and you absolutely need the machine to shut off, you don’t want to worry about the version of GRBL on your controller working perfectly well and the GCODE you are sending not having some unplanned interaction because you were in some work coordinate system that wasn’t tested with cutting arcs instead of straight lines… or whatever. E-stop should stop… no matter what.
Ok, I’ll get off my old-man pedestal. If you want to read more about why you shouldn’t trust software as the final control measure of a safety system, read this great article about the Therac-25 incidents: http://hackaday.com/2015/10/26/killed-by-a-machine-the-therac-25/
Cut the power! If you really want feed-hold, resume, reset buttons, add them as separate buttons on a control panel - there are pins already on the controller that you can wire each switch to. But keep the e-stop cutting spindle and motor power both.
I never meant to suggest not cutting power to the 24V power supply when the E stop is actuated. I completely agree, power needs to be removed from the entire system when you hit the E-Stop. The wiring of the softwarw feed hold to the normal open (NO) contacts on the E-Stop will only quicken the stopping of movement. The normal closed (NC) should absolutely remain in series with the live 120V wire to the 24VDC supply input.
Having both live 120V on NC and feed hold on NO is the configuration I’ve gone with. As others have pointed out, putting the 24V output into the NC on its way to the controller is a second possibility. This would instantly cut power to the controller and motors, thus stopping them, but would leave the supply enabled and powered.
I suppose ultimately, the ideal E-Stop would have two normal closed contacts to break both of these currents.