Support Emergency Stop

Hallo,

I just stumbled across the fact, that Smoothie currently doesn’t support an emergency stop - so it’s difficult to use this board for more complex projects than just hobby machines where you don’t have to care about safety so much.

Currently you can send the M84 command to turn off power supply to the motors, but that command only does get executed at the end of a current move - which might be way to late. So I’d like to see Smoothie to support an immediate emergency stop for the whole machine, so breaking all the motors and setting all outputs to a defined (safe) state.

Realisation of this feature could be done with following steps:
Step 1: Basic Support

  • Switch of power supply to motors immediately

Step 2: Enhanced Basic Support

  • additionally set outputs (mosfets) to configurable defined states (heating off, breaks on, …)

Step 3: Full Suppport

  • leave power supply to motors on, and decelerate with maximum possible deceleration
  • maybe (configurable) switch off power supply to motors now

Enabling Emergency Stop function would use one/two microcontroller input pins.
It would be nice if it would also be possible to enable Emergency Stop with a G-Code, if it’s possible and would meet time requirements.

Thanks’s in advance

Imported from wikidot

The pause button will in fact stop it immediately, did you try that?

Setting all mosfets and decelerating is a good idea, but is very hard to implement. It is planned for but not any time soon.

I have a big red Estop button which cuts the motor and mosfet power, this seems the safest way to do it as a software estop would not work if the smoothie had crashed for instance.

The pause button will in fact stop it immediately, did you try that?

No I didn’t try that, as it’s not an “pause” button, but a “play/pause” button. So in case of emergency if you hit the button twice it will do “nothing” which is worse than an emergency switch that just cuts off power.

In theory, you need an meergency switch (locking switch) and a separate acknowledge button. If your emergency ends, you turn off the emergency switch and acknlwledge this by pressing the seperate button.

Setting all mosfets and decelerating is a good idea, but is very hard to implement. It is planned for but not any time soon.

Difficulty depends on the cleverness of the software design of Smoothie. I can’t judge this. Would be sad if this only would be possible with many work.

I have a big red Estop button which cuts the motor and mosfet power, this seems the safest way to do it

It currently is the “best” solution you can do, but doesn’t fit requirements in any way. You are not setting your machine to a defined safe state, you just cutting off power - any moving parts will move further until friction or gravity takes over, wich could lead to more dangerous situations than necessary.
Once you remove the Estop, the machine will immediately resume moving and software state and hardware state of the machine aren’t consistent anymore - another very dangerous situation

as a software estop would not work if the smoothie had crashed for instance.

  • if Smoothie has crashed, anything won’t work
  • we have to have one “trusted part” of the machine, and Smoothie should be one real time capable part of it. If something in this machine could stop the machine safely, Smoothie is the only part that can do it - and so it should do it.

I don’t think it is realistic to expect a brand new open hardware board that sales for $150 USD to compete with commercial or industrial CNC controllers.

More concerning though is the tone of your post seems very belligerent and condescending.