From 5e460143593f20fd6c369fab775f9a1cf5709232 Mon Sep 17 00:00:00 2001 From: haarp <781030+haarp@users.noreply.github.com> Date: Tue, 30 Jul 2019 20:46:49 +0200 Subject: [PATCH 1/2] Make M109 S not wait for cooldown fixes #1474 --- Firmware/Marlin_main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index f3c722e52a..fd509cdc36 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9722,6 +9722,7 @@ static void wait_for_heater(long codenum, uint8_t extruder) { cancel_heatup = false; while ((!cancel_heatup) && ((residencyStart == -1) || (residencyStart >= 0 && (((unsigned int)(_millis() - residencyStart)) < (TEMP_RESIDENCY_TIME * 1000UL))))) { + if ((CooldownNoWait == true) && !target_direction) break; #else while (target_direction ? (isHeatingHotend(tmp_extruder)) : (isCoolingHotend(tmp_extruder) && (CooldownNoWait == false))) { #endif //TEMP_RESIDENCY_TIME From f23e5e57dc85cf53d81e87b2b291bffcffcaf7e1 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Mon, 4 Jul 2022 18:55:14 +0200 Subject: [PATCH 2/2] Sync with upstream Fix rebase issues --- Firmware/Marlin_main.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index fd509cdc36..65174d29a9 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -235,6 +235,7 @@ uint8_t newFanSpeed = 0; #endif static bool cancel_heatup = false; +bool CooldownNoWait; int8_t busy_state = NOT_BUSY; static long prev_busy_signal_ms = -1; @@ -6046,17 +6047,19 @@ SERIAL_PROTOCOLPGM("\n\n"); */ case 109: { + CooldownNoWait = false; LCD_MESSAGERPGM(_T(MSG_HEATING)); - heating_status = HeatingStatus::EXTRUDER_HEATING; + heating_status = HeatingStatus::EXTRUDER_HEATING; prusa_statistics(1); #ifdef AUTOTEMP autotemp_enabled=false; - #endif +#endif if (code_seen('S')) { - setTargetHotend(code_value()); - } else if (code_seen('R')) { - setTargetHotend(code_value()); + setTargetHotend(code_value()); + CooldownNoWait = true; + } else if (code_seen('R')) { + setTargetHotend(code_value()); } #ifdef AUTOTEMP if (code_seen('S')) autotemp_min=code_value(); @@ -6078,7 +6081,7 @@ SERIAL_PROTOCOLPGM("\n\n"); wait_for_heater(codenum, active_extruder); //loops until target temperature is reached LCD_MESSAGERPGM(_T(MSG_HEATING_COMPLETE)); - heating_status = HeatingStatus::EXTRUDER_HEATING_COMPLETE; + heating_status = HeatingStatus::EXTRUDER_HEATING_COMPLETE; prusa_statistics(2); //starttime=_millis(); @@ -6102,7 +6105,7 @@ SERIAL_PROTOCOLPGM("\n\n"); case 190: #if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1 { - bool CooldownNoWait = false; + CooldownNoWait = false; LCD_MESSAGERPGM(_T(MSG_BED_HEATING)); heating_status = HeatingStatus::BED_HEATING; prusa_statistics(1);