There are two solutions for implementing a kill button on the Smoothieboard:
Solder an LED Tactile Button on the Smoothieboard.
Wire a simple button on two pins.
The button may be configured as a kill switch, which will halt all operations, turn off heaters, and pause the host. It can be cleared with a
kill_button_enable true # set to true to enable a kill button
kill_button_pin 2.12 # kill button pin. default is same as pause button 2.12 (Add ^ for external buttons)
[kill button]
enable = true # set to true to enable a kill button
pin = 2.12 # kill button pin (Add ^ for external buttons)
When in the halted state (after the kill button is pressed), the play LED will flash rapidly. The kill state can be cleared by holding down the kill button for 2 seconds or more.
Alternatively, a latching E-Stop button can be hooked up to the kill button header (usually normally open). Then use this config:
kill_button_toggle_enable true # allows for latching estop button
[kill button]
toggle_enable = true # allows for latching estop button
When the E-Stop button is hit and latched on, it will halt the system. When it is unlatched and released, the system will exit the halt condition.
If you do not want the halt to exit when it is released, then set this:
unkill_enable false # do not unkill when button held or released
[kill button]
unkill_enable = false # do not unkill when button held or released
There are several different ways to stop Smoothie during operation, each with different behaviors and use cases.
Understanding these methods is important for safe operation and troubleshooting.
| Command | G-code | Movement | Heaters | File playing | Recoverable | Documentation |
|---|---|---|---|---|---|---|
| abort | Stops SDCARD print immediately | Not affected | Aborts | Position maintained, file must be restarted | Player | |
| suspend | Stops once queue is empty | Turned off (if option enabled) | Paused, can be resumed | Yes, with resume or |
Player | |
| Kill button | Stops instantly (if button), waits for buffer (if host) | Turned off | Aborted | No, position lost, home required | supported-g-codes | |
| Control-X | - | Stops instantly, works during streaming | Turned off | Aborted | No, position lost, home required | - |
M26)Stops the execution of a file being played from SDCARD.
Behavior:
Use Case: Quick stop of a print job while preserving position and keeping heaters on.
Recovery: Position is maintained, but the file must be restarted from the beginning.
Documentation: Player module
M600)Suspends the execution of a file being played from SDCARD or being streamed from a host.
Behavior:
M601Use Case: Mid-print filament change or filament out detection.
Host Support: Requires upstream support. Currently Pronterface and OctoPrint support it. Other hosts need to be manually paused.
Recovery: Yes, fully recoverable with position maintained.
Documentation: Player module
M112Emergency stop that instantly halts all operations.
Behavior:
M112 issued from host: Has to wait for the receive buffer to have roomM999 is sentUse Case: Emergency situations requiring immediate stop.
Recovery: No, position is lost. Homing will be required.
Documentation: Supported G-codes, Kill Button
Sends a control character to stop Smoothie instantly.
Behavior:
M999 or $X is sentUse Case: Emergency stop from terminal/console when streaming G-code.
Recovery: No, position is lost. Homing will be required.
When the kill button is pressed (or there is a temperature fault, M112 is issued, a limit switch is hit, or other error), the system enters the Halt state.
!! response (with a few exceptions)The Halt state can be cleared by:
M999 from the hostM600/M601) for planned interruptions like filament changesM999