Zat German wrote:An E-stop is different from a Reset, which is what you are describing. In the case of an emergency stop, you need to reliably kill everything without depending on the CPU to do it(it might not be in any state to process such a command or input), that means it has to be hardwired. An E-stop could also be tied directly to the CPU's reset pin but then you lose state(even if it is a crazy one) which interferes with trying to debug stuff. An emergency stop is an emergency, recovering the build or losing sync is secondary to to getting the machine off and in a safe(ish, since we are dealing with hot things here too) state.
Ok i hear what your saying -
I'm just wondering which is safer - letting the motors coast, or doing a hard stop (motors coils need to stay driven for this ) and possibly retracting to a "safe" home position immediately after that. Personally, i would vote for the latter.
Here's what the Allegro datasheet says about the enable inputs:
"Enable Input . This input turns on or off all of the FET outputs.
When set to a logic high, the outputs are disabled.
When set to a logic low, the internal control enables the outputs as required.
The translator inputs STEP, DIR, MS1, and MS2, as well as the internal sequencing logic, all remain active, independent of the Enable input state."So my feeling is if you want to do this in a way that directly bypasses the CPU, the best way would be to override the STEP input instead, so the motors immediately and forcefully lock up with their full holding torque to instantly stop all movement.
And if i was to really get fancy, after that i'd drive the printer to a safe home position (or at least kill the enables, lock down reset, (or more likely the main power), so you could then do it by hand) when the E-stop button is released - and then automatically shut off the power source. which would need a little more circuitry to accomplish.
Considering that the current RAMPS and ilk don't have any E-stop connection at all (as far as i know), this would likely be the first ever Arduino derivative 3D printer controller that supports any kind of E-stop function. I''d like to believe others would find this desirable, but there cant be that much demand for it, otherwise current controllers would already include it. Its certainly not nearly as hazardous a system as a large CNC or laser cutter.
So i'm not really convinced how much of this, if any, is really called for in a 3D printer.
Whats the worst case scenario you envision where such an E-stop would make a difference?
Do you envision using this on a laser too? why not i suppose!
Anyone else want to chime in on this?