From c01193bf401ba9f64fa1cfed5a5732910b088daa Mon Sep 17 00:00:00 2001 From: Knutwurst <36196269+knutwurst@users.noreply.github.com> Date: Wed, 24 May 2023 14:42:09 +0200 Subject: [PATCH] Finally fix print/pause/resume and M600 filament change. --- Marlin/Configuration_adv.h | 4 ++-- Marlin/src/feature/pause.cpp | 12 +----------- Marlin/src/inc/Version.h | 2 +- .../lcd/extui/knutwurst/anycubic_touchscreen.cpp | 13 +++++-------- 4 files changed, 9 insertions(+), 22 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 3a192525..2e131097 100755 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -2675,7 +2675,7 @@ #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 538 // (mm) Load length of filament, from extruder gear to nozzle. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. - // #define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. + #define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. #define ADVANCED_PAUSE_PURGE_FEEDRATE 2 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. #define ADVANCED_PAUSE_PURGE_LENGTH 2 // (mm) Length to extrude after loading. // Set to 0 for manual extrusion. @@ -2690,7 +2690,7 @@ #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. #define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload - #define PAUSE_PARK_NOZZLE_TIMEOUT 60 // (seconds) Time limit before the nozzle is turned off for safety. + #define PAUSE_PARK_NOZZLE_TIMEOUT 300 // (seconds) Time limit before the nozzle is turned off for safety. #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. // #define FILAMENT_CHANGE_RESUME_ON_INSERT // Automatically continue / load filament when runout sensor is triggered again. diff --git a/Marlin/src/feature/pause.cpp b/Marlin/src/feature/pause.cpp index 09f74d36..350aaacc 100644 --- a/Marlin/src/feature/pause.cpp +++ b/Marlin/src/feature/pause.cpp @@ -576,17 +576,7 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep IF_DISABLED(PAUSE_REHEAT_FAST_RESUME, wait_for_user = true); nozzle_timed_out = false; -/* - #ifdef ANYCUBIC_TOUCHSCREEN - if (AnycubicTouchscreen.ai3m_pause_state > 3) { - AnycubicTouchscreen.ai3m_pause_state -= 3; - #ifdef ANYCUBIC_TFT_DEBUG - SERIAL_ECHOPGM(" DEBUG: NTO - AI3M Pause State set to: ", AnycubicTouchscreen.ai3m_pause_state); - SERIAL_EOL(); - #endif - } - #endif -*/ + first_impatient_beep(max_beep_count); } idle_no_sleep(); diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index dc7f4cd4..a96dcd37 100755 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -44,7 +44,7 @@ #define CUSTOM_BUILD_VERSION "1.5.0-b4" #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2023-05-22" + #define STRING_DISTRIBUTION_DATE "2023-05-24" #endif /** diff --git a/Marlin/src/lcd/extui/knutwurst/anycubic_touchscreen.cpp b/Marlin/src/lcd/extui/knutwurst/anycubic_touchscreen.cpp index 7edaf7f5..45c557a0 100755 --- a/Marlin/src/lcd/extui/knutwurst/anycubic_touchscreen.cpp +++ b/Marlin/src/lcd/extui/knutwurst/anycubic_touchscreen.cpp @@ -363,12 +363,14 @@ // reheat the nozzle setUserConfirmed(); } + else if (mediaPauseState == AMPAUSESTATE_FILAMENT_PURGING) { + setUserConfirmed(); + } else { mediaPrintingState = AMPRINTSTATE_PRINTING; mediaPauseState = AMPAUSESTATE_NOT_PAUSED; SENDLINE_DBG_PGM("J04", "TFT Serial Debug: SD print resumed... J04"); // J04 printing form sd card now - setPauseMenuResponse(PAUSE_RESPONSE_RESUME_PRINT); resumePrint(); } #endif @@ -1148,7 +1150,8 @@ } else if (strcmp_P(msg, PSTR("Filament Purging...")) == 0) { mediaPrintingState = AMPRINTSTATE_PAUSED; - mediaPauseState = AMPAUSESTATE_PARKING; + mediaPauseState = AMPAUSESTATE_FILAMENT_PURGING; + // TODO: JBA I don't think J05 just disables the continue button, i think it injects a rogue M25. So taking this out // disable continue button // SENDLINE_DBG_PGM("J05", "TFT Serial Debug: UserConfirm SD Filament Purging... J05"); // J05 printing pause @@ -1168,12 +1171,6 @@ // enable continue button SENDLINE_DBG_PGM("J18", "TFT Serial Debug: UserConfirm SD Reheat done... J18"); } - else if (strcmp_P(msg, PSTR("Paused")) == 0) { - mediaPrintingState = AMPRINTSTATE_PAUSED; - mediaPauseState = AMPAUSESTATE_PAUSED; - // enable continue button - SENDLINE_DBG_PGM("J18", "TFT Serial Debug: UserConfirm SD Reheat done... J18"); - } #endif }