From 454e99dbb54086e2ce4a1ea7c1cb9317671c4668 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Tue, 3 Dec 2019 15:50:21 +0100 Subject: [PATCH] Use lcd_print_stop() in M603, fix octoprint regression M603 shouldn't report a fatal error state. Use lcd_print_stop(). Regression introduced in PR #2274 --- Firmware/Marlin_main.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index fe94fab5..4dc5e2d3 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -7271,7 +7271,7 @@ Sigma_Exit: //! ### M603 - Stop print // ------------------------------- case 603: { - Stop(); + lcd_print_stop(); } break; @@ -8745,6 +8745,16 @@ void kill(const char *full_screen_message, unsigned char id) } // Wait for reset } +// Stop: Emergency stop used by overtemp functions which allows recovery +// +// In addition to stopping the print, this prevents subsequent G[0-3] commands to be +// processed via USB (using "Stopped") until the print is resumed via M999 or +// manually started from scratch with the LCD. +// +// Note that the current instruction is completely discarded, so resuming from Stop() +// will introduce either over/under extrusion on the current segment, and will not +// survive a power panic. Switching Stop() to use the pause machinery instead (with +// the addition of disabling the headers) could allow true recovery in the future. void Stop() { disable_heater();