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 M999
command or by resetting the board. To enable a kill button, the following configuration is added:
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)
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
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
layout: default title: Stopping Smoothie —
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 |
M26 |
Stops SDCARD print immediately | Not affected | Aborts | Position maintained, file must be restarted | Player |
suspend |
M600 |
Stops once queue is empty | Turned off (if option enabled) | Paused, can be resumed | Yes, with resume or M601 |
Player |
Kill button | M112 |
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 | - |
abort
/ 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
suspend
/ M600
)Suspends the execution of a file being played from SDCARD or being streamed from a host.
Behavior:
resume
or M601
Use 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
Emergency stop that instantly halts all operations.
Behavior:
M999
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:
M600
/M601
) for planned interruptions like filament changesM999