diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 17d51f06ff..eac4acf108 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4464,6 +4464,8 @@ inline void gcode_M109() { #define TEMP_CONDITIONS (wants_to_cool ? isCoolingHotend(target_extruder) : isHeatingHotend(target_extruder)) #endif //TEMP_RESIDENCY_TIME > 0 + KEEPALIVE_STATE(NOT_BUSY); + cancel_heatup = false; millis_t now, next_temp_ms = 0; do { @@ -4508,6 +4510,7 @@ inline void gcode_M109() { } while (!cancel_heatup && TEMP_CONDITIONS); LCD_MESSAGEPGM(MSG_HEATING_COMPLETE); + KEEPALIVE_STATE(IN_HANDLER); } #if HAS_TEMP_BED @@ -4541,6 +4544,7 @@ inline void gcode_M109() { millis_t now, next_temp_ms = 0; // Wait for temperature to come close enough + KEEPALIVE_STATE(NOT_BUSY); do { now = millis(); if (ELAPSED(now, next_temp_ms)) { //Print Temp Reading every 1 second while heating up. @@ -4580,6 +4584,7 @@ inline void gcode_M109() { } while (!cancel_heatup && TEMP_BED_CONDITIONS); LCD_MESSAGEPGM(MSG_BED_DONE); + KEEPALIVE_STATE(IN_HANDLER); } #endif // HAS_TEMP_BED