diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index fe1ffbf4..fbc16b41 100755 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -1870,7 +1870,7 @@ * Requires NOZZLE_PARK_FEATURE. * This feature is required for the default FILAMENT_RUNOUT_SCRIPT. */ -//#define ADVANCED_PAUSE_FEATURE +#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_LENGTH 4 // (mm) Initial retract. diff --git a/Marlin/src/lcd/anycubic_touchscreen.cpp b/Marlin/src/lcd/anycubic_touchscreen.cpp index da7ff599..ed1d8853 100755 --- a/Marlin/src/lcd/anycubic_touchscreen.cpp +++ b/Marlin/src/lcd/anycubic_touchscreen.cpp @@ -184,6 +184,8 @@ void AnycubicTouchscreenClass::StartPrint() SERIAL_ECHOLNPGM("DEBUG: M24 Resume from regular pause"); #endif IsParked = false; // remove parked flag + wait_for_heatup = false; + wait_for_user = false; starttime = millis(); card.startFileprint(); // resume regularly TFTstate = ANYCUBIC_TFT_STATE_SDPRINT; @@ -213,6 +215,7 @@ void AnycubicTouchscreenClass::StartPrint() SERIAL_ECHOLNPGM("DEBUG: M24 Resume from Filament Runout"); #endif IsParked = false; // clear flags + wait_for_user = false; ai3m_pause_state = 0; #ifdef ANYCUBIC_TFT_DEBUG SERIAL_ECHOLNPGM("DEBUG: Filament Pause Flag cleared"); @@ -325,15 +328,15 @@ void AnycubicTouchscreenClass::StopPrint() void AnycubicTouchscreenClass::FilamentChangeResume() { + wait_for_user = false; //must be done twice, since we have a bug in marlin + wait_for_heatup = false; // call M108 to break out of M600 pause queue.inject_P(PSTR("M108")); #ifdef ANYCUBIC_TFT_DEBUG SERIAL_ECHOLNPGM("DEBUG: M108 Resume called"); #endif - - wait_for_heatup = false; wait_for_user = false; - + wait_for_heatup = false; // resume with proper progress state card.startFileprint(); #ifdef ANYCUBIC_TFT_DEBUG