diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index a5ee27313..7043eeda0 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -620,6 +620,7 @@ void manage_heater() { // Check if the temperature is failing to increase #ifdef THERMAL_PROTECTION_HOTENDS + // Is it time to check this extruder's heater? if (watch_heater_next_ms[e] && ms > watch_heater_next_ms[e]) { // Has it failed to increase enough? @@ -629,10 +630,11 @@ void manage_heater() { _temp_error(e, PSTR(MSG_HEATING_FAILED), PSTR(MSG_HEATING_FAILED_LCD)); } else { - // Only check once per M104/M109 - watch_heater_next_ms[e] = 0; + // Start again if the target is still far off + start_watching_heater(e); } } + #endif // THERMAL_PROTECTION_HOTENDS #ifdef TEMP_SENSOR_1_AS_REDUNDANT