From dbac603128996085f7bead0e8dcc8eef8061613f Mon Sep 17 00:00:00 2001 From: InsanityAutomation Date: Sat, 12 Jan 2019 17:09:22 -0500 Subject: [PATCH 1/8] Update menu_main.cpp --- Marlin/src/lcd/menu/menu_main.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index 4e419d84ab..6c230474de 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -43,7 +43,14 @@ void lcd_pause() { #endif #if ENABLED(PARK_HEAD_ON_PAUSE) - pause_print(PAUSE_PARK_RETRACT_LENGTH, NOZZLE_PARK_POINT, 0, true); + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT, active_extruder); + if (pause_print(PAUSE_PARK_RETRACT_LENGTH, NOZZLE_PARK_POINT, 0, true) ) { + wait_for_confirmation(false, 0); + resume_print(0, 0, ADVANCED_PAUSE_PURGE_LENGTH, 0); + ui.defer_status_screen(false); + ui.return_to_status(); + ui.refresh(); + } #elif ENABLED(SDSUPPORT) enqueue_and_echo_commands_P(PSTR("M25")); #elif defined(ACTION_ON_PAUSE) From acbe72c239dda9a6fe7838a78a84b32860c17004 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 12 Jan 2019 17:00:53 -0600 Subject: [PATCH 2/8] Remove extra defer_status_screen(false), refresh() --- Marlin/src/lcd/menu/menu_main.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index 6c230474de..ec8cb2f6b6 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -47,9 +47,7 @@ void lcd_pause() { if (pause_print(PAUSE_PARK_RETRACT_LENGTH, NOZZLE_PARK_POINT, 0, true) ) { wait_for_confirmation(false, 0); resume_print(0, 0, ADVANCED_PAUSE_PURGE_LENGTH, 0); - ui.defer_status_screen(false); ui.return_to_status(); - ui.refresh(); } #elif ENABLED(SDSUPPORT) enqueue_and_echo_commands_P(PSTR("M25")); From a7a65039176e081eed820d50b2f9c4d13b6cd1a6 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 12 Jan 2019 17:04:00 -0600 Subject: [PATCH 3/8] Update menu_main.cpp --- Marlin/src/lcd/menu/menu_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index ec8cb2f6b6..127f751ea1 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -44,7 +44,7 @@ void lcd_pause() { #if ENABLED(PARK_HEAD_ON_PAUSE) lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT, active_extruder); - if (pause_print(PAUSE_PARK_RETRACT_LENGTH, NOZZLE_PARK_POINT, 0, true) ) { + if (pause_print(PAUSE_PARK_RETRACT_LENGTH, NOZZLE_PARK_POINT, 0, true)) { wait_for_confirmation(false, 0); resume_print(0, 0, ADVANCED_PAUSE_PURGE_LENGTH, 0); ui.return_to_status(); From 3358333e22026cf2b1437339545d6ae5f6471fdd Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 12 Jan 2019 17:14:33 -0600 Subject: [PATCH 4/8] Remove extra lcd_advanced_pause_show_message call --- Marlin/src/lcd/menu/menu_main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index 127f751ea1..1e05de5a7a 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -43,7 +43,6 @@ void lcd_pause() { #endif #if ENABLED(PARK_HEAD_ON_PAUSE) - lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT, active_extruder); if (pause_print(PAUSE_PARK_RETRACT_LENGTH, NOZZLE_PARK_POINT, 0, true)) { wait_for_confirmation(false, 0); resume_print(0, 0, ADVANCED_PAUSE_PURGE_LENGTH, 0); From 57e51e0d7d15d406920a6bf5d67d9d97ba7c75b4 Mon Sep 17 00:00:00 2001 From: InsanityAutomation Date: Sat, 12 Jan 2019 19:00:23 -0500 Subject: [PATCH 5/8] Bump --- Marlin/src/gcode/feature/pause/M125.cpp | 19 +++++++++++++++---- Marlin/src/lcd/menu/menu_main.cpp | 22 ++++++++++++---------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/Marlin/src/gcode/feature/pause/M125.cpp b/Marlin/src/gcode/feature/pause/M125.cpp index 5794f6af33..6bb1b72fa5 100644 --- a/Marlin/src/gcode/feature/pause/M125.cpp +++ b/Marlin/src/gcode/feature/pause/M125.cpp @@ -31,6 +31,10 @@ #include "../../../sd/cardreader.h" #include "../../../module/printcounter.h" +#if HAS_LCD_MENU + #include "../../../lcd/ultralcd.h" +#endif + /** * M125: Store current position and move to filament change position. * Called on pause (by M25) to prevent material leaking onto the @@ -74,10 +78,17 @@ void GcodeSuite::M125() { constexpr bool sd_printing = false; #endif - if (pause_print(retract, park_point)) { - if (!sd_printing) { - wait_for_confirmation(); - resume_print(); + #if HAS_LCD_MENU + const bool show_lcd = parser.seenval('P'); + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT, active_extruder); + #else + constexpr bool show_lcd = false; + #endif + + if (pause_print(retract, park_point, 0, show_lcd)) { + if (!sd_printing || show_lcd ) { + wait_for_confirmation(false, 0); + resume_print(0, 0, PAUSE_PARK_RETRACT_LENGTH, 0); } } } diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index 1e05de5a7a..c871d71d13 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -32,6 +32,7 @@ #include "../../module/temperature.h" #include "../../gcode/queue.h" #include "../../module/printcounter.h" +#include "../../module/stepper.h" #if ENABLED(POWER_LOSS_RECOVERY) #include "../../feature/power_loss_recovery.h" @@ -43,16 +44,14 @@ void lcd_pause() { #endif #if ENABLED(PARK_HEAD_ON_PAUSE) - if (pause_print(PAUSE_PARK_RETRACT_LENGTH, NOZZLE_PARK_POINT, 0, true)) { - wait_for_confirmation(false, 0); - resume_print(0, 0, ADVANCED_PAUSE_PURGE_LENGTH, 0); - ui.return_to_status(); - } + enqueue_and_echo_commands_P(PSTR("M25 P")); #elif ENABLED(SDSUPPORT) enqueue_and_echo_commands_P(PSTR("M25")); #elif defined(ACTION_ON_PAUSE) SERIAL_ECHOLNPGM("//action:" ACTION_ON_PAUSE); #endif + ui.return_to_status(); + planner.synchronize(); } void lcd_resume() { @@ -101,14 +100,15 @@ void menu_main() { if (busy) { MENU_ITEM(function, MSG_PAUSE_PRINT, lcd_pause); - MENU_ITEM(submenu, MSG_TUNE, menu_tune); - } - else { - MENU_ITEM(function, MSG_RESUME_PRINT, lcd_resume); #if ENABLED(SDSUPPORT) if (card.isFileOpen()) MENU_ITEM(submenu, MSG_STOP_PRINT, menu_sdcard_abort_confirm); #endif + MENU_ITEM(submenu, MSG_TUNE, menu_tune); + } + else { + MENU_ITEM(function, MSG_RESUME_PRINT, lcd_resume); + MENU_ITEM(submenu, MSG_MOTION, menu_motion); MENU_ITEM(submenu, MSG_TEMPERATURE, menu_temperature); } @@ -157,11 +157,13 @@ void menu_main() { #endif #if ENABLED(SDSUPPORT) - if (card.isDetected() && !card.isFileOpen()) { + if (card.isDetected()) { + if(!card.isFileOpen()) { MENU_ITEM(submenu, MSG_CARD_MENU, menu_sdcard); #if !PIN_EXISTS(SD_DETECT) MENU_ITEM(gcode, MSG_CHANGE_SDCARD, PSTR("M21")); // SD-card changed by user #endif + } } else { MENU_ITEM(function, MSG_NO_CARD, NULL); From eb0bf22d09b0fa89bb75b75afdad1b0753a0ee9b Mon Sep 17 00:00:00 2001 From: InsanityAutomation Date: Sat, 12 Jan 2019 19:32:52 -0500 Subject: [PATCH 6/8] Update menu_main.cpp --- Marlin/src/lcd/menu/menu_main.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index c871d71d13..239d7232ee 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -43,8 +43,13 @@ void lcd_pause() { if (recovery.enabled) recovery.save(true, false); #endif + // Set initial pause flag to prevent more commands from landing in the queue while we try to pause + #if ENABLED(SDSUPPORT) + if (IS_SD_PRINTING()) { card.pauseSDPrint(); } + #endif + #if ENABLED(PARK_HEAD_ON_PAUSE) - enqueue_and_echo_commands_P(PSTR("M25 P")); + enqueue_and_echo_commands_P(PSTR("M25 P; \n M24")); #elif ENABLED(SDSUPPORT) enqueue_and_echo_commands_P(PSTR("M25")); #elif defined(ACTION_ON_PAUSE) From 5094b167d4dc2e6b309b5a90f82f2506036a6aa8 Mon Sep 17 00:00:00 2001 From: InsanityAutomation Date: Sat, 12 Jan 2019 19:40:20 -0500 Subject: [PATCH 7/8] Update menu_main.cpp --- Marlin/src/lcd/menu/menu_main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index 239d7232ee..6c45b3990c 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -55,7 +55,6 @@ void lcd_pause() { #elif defined(ACTION_ON_PAUSE) SERIAL_ECHOLNPGM("//action:" ACTION_ON_PAUSE); #endif - ui.return_to_status(); planner.synchronize(); } From 6284eaf17d5dab7ce193b6be7ba1402a00b46355 Mon Sep 17 00:00:00 2001 From: InsanityAutomation Date: Sat, 12 Jan 2019 23:36:12 -0500 Subject: [PATCH 8/8] Make M25 work as well --- Marlin/src/gcode/sdcard/M20-M30_M32-M34_M524_M928.cpp | 10 ++++++---- Marlin/src/lcd/menu/menu_main.cpp | 6 +----- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Marlin/src/gcode/sdcard/M20-M30_M32-M34_M524_M928.cpp b/Marlin/src/gcode/sdcard/M20-M30_M32-M34_M524_M928.cpp index f1cdaa1078..c54b56763c 100644 --- a/Marlin/src/gcode/sdcard/M20-M30_M32-M34_M524_M928.cpp +++ b/Marlin/src/gcode/sdcard/M20-M30_M32-M34_M524_M928.cpp @@ -114,13 +114,15 @@ void GcodeSuite::M24() { * M25: Pause SD Print */ void GcodeSuite::M25() { + + // Set initial pause flag to prevent more commands from landing in the queue while we try to pause + #if ENABLED(SDSUPPORT) + if (IS_SD_PRINTING()) { card.pauseSDPrint(); } + #endif + #if ENABLED(PARK_HEAD_ON_PAUSE) M125(); #else - #if ENABLED(SDSUPPORT) - if (IS_SD_PRINTING()) card.pauseSDPrint(); - #endif - print_job_timer.pause(); ui.reset_status(); diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index 6c45b3990c..639403ead1 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -43,12 +43,8 @@ void lcd_pause() { if (recovery.enabled) recovery.save(true, false); #endif - // Set initial pause flag to prevent more commands from landing in the queue while we try to pause - #if ENABLED(SDSUPPORT) - if (IS_SD_PRINTING()) { card.pauseSDPrint(); } - #endif - #if ENABLED(PARK_HEAD_ON_PAUSE) + lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INIT, ADVANCED_PAUSE_MODE_PAUSE_PRINT, active_extruder); enqueue_and_echo_commands_P(PSTR("M25 P; \n M24")); #elif ENABLED(SDSUPPORT) enqueue_and_echo_commands_P(PSTR("M25"));