Skip to content

Commit

Permalink
add power off confirm and beep feature
Browse files Browse the repository at this point in the history
  • Loading branch information
cytown committed Jun 21, 2021
1 parent a006752 commit dadf9c9
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 1 deletion.
2 changes: 2 additions & 0 deletions Marlin/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,8 @@
//#define PSU_NAME "Power Supply"

#if ENABLED(PSU_CONTROL)
//#define PS_OFF_CONFIRM // Confirm dialog when power off
//#define PS_OFF_SOUND // Beep 1s when power off
#define PSU_ACTIVE_STATE LOW // Set 'LOW' for ATX, 'HIGH' for X-Box

//#define PSU_DEFAULT_OFF // Keep power off until enabled directly with M80
Expand Down
4 changes: 4 additions & 0 deletions Marlin/src/gcode/control/M80_M81.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,10 @@ void GcodeSuite::M81() {
#endif
#endif

#if ENABLED(PS_OFF_SOUND)
BUZZ(1000, 659);
#endif

safe_delay(1000); // Wait 1 second before switching off

#if HAS_SUICIDE
Expand Down
7 changes: 7 additions & 0 deletions Marlin/src/lcd/marlinui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1494,6 +1494,13 @@ void MarlinUI::update() {
TERN_(HAS_LCD_MENU, return_to_status());
}

#if BOTH(PSU_CONTROL, PS_OFF_CONFIRM)
void MarlinUI::poweroff() {
queue.inject_P(PSTR("M81"));
goto_previous_screen();
}
#endif

void MarlinUI::flow_fault() {
LCD_ALERTMESSAGEPGM(MSG_FLOWMETER_FAULT);
TERN_(HAS_BUZZER, buzz(1000, 440));
Expand Down
4 changes: 4 additions & 0 deletions Marlin/src/lcd/marlinui.h
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,10 @@ class MarlinUI {
static void resume_print();
static void flow_fault();

#if BOTH(PSU_CONTROL, PS_OFF_CONFIRM)
static void poweroff();
#endif

#if HAS_WIRED_LCD

static millis_t next_button_update_ms;
Expand Down
10 changes: 9 additions & 1 deletion Marlin/src/lcd/menu/menu_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,15 @@ void menu_main() {
//
#if ENABLED(PSU_CONTROL)
if (powersupply_on)
GCODES_ITEM(MSG_SWITCH_PS_OFF, PSTR("M81"));
#if ENABLED(PS_OFF_CONFIRM)
CONFIRM_ITEM(MSG_SWITCH_PS_OFF,
MSG_YES, MSG_NO,
ui.poweroff, ui.goto_previous_screen,
GET_TEXT(MSG_SWITCH_PS_OFF), (const char *)nullptr, PSTR("?")
);
#else
GCODES_ITEM(MSG_SWITCH_PS_OFF, PSTR("M81"));
#endif
else
GCODES_ITEM(MSG_SWITCH_PS_ON, PSTR("M80"));
#endif
Expand Down

0 comments on commit dadf9c9

Please sign in to comment.