diff --git a/Marlin/language_en.h b/Marlin/language_en.h index 8812de9b82..1dd12a4325 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -789,6 +789,9 @@ #ifndef MSG_THERMAL_RUNAWAY #define MSG_THERMAL_RUNAWAY _UxGT("THERMAL RUNAWAY") #endif +#ifndef MSG_THERMAL_RUNAWAY_BED + #define MSG_THERMAL_RUNAWAY_BED _UxGT("BED THERMAL RUNAWAY") +#endif #ifndef MSG_ERR_MAXTEMP #define MSG_ERR_MAXTEMP _UxGT("Err: MAXTEMP") #endif diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 9c6c9890bf..2c00db9759 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -433,7 +433,9 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS], _temp_error(hotend, PSTR(MSG_T_HEATING_FAILED), PSTR(MSG_HEATING_FAILED_LCD)); } else if (current < target - (MAX_OVERSHOOT_PID_AUTOTUNE)) // Heated, then temperature fell too far? - _temp_error(hotend, PSTR(MSG_T_THERMAL_RUNAWAY), PSTR(MSG_THERMAL_RUNAWAY)); + _temp_error(hotend, PSTR(MSG_T_THERMAL_RUNAWAY), + hotend >= 0 ? PSTR(MSG_THERMAL_RUNAWAY) : PSTR(MSG_THERMAL_RUNAWAY_BED) + ); #endif } // every 2 seconds @@ -465,7 +467,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS], bedKp = workKp; \ bedKi = scalePID_i(workKi); \ bedKd = scalePID_d(workKd); \ - }while(0) + }while(0) #define _SET_EXTRUDER_PID() do { \ PID_PARAM(Kp, hotend) = workKp; \ @@ -1410,7 +1412,9 @@ void Temperature::init() { else if (PENDING(millis(), *timer)) break; *state = TRRunaway; case TRRunaway: - _temp_error(heater_id, PSTR(MSG_T_THERMAL_RUNAWAY), PSTR(MSG_THERMAL_RUNAWAY)); + _temp_error(heater_id, PSTR(MSG_T_THERMAL_RUNAWAY), + heater_id >= 0 ? PSTR(MSG_THERMAL_RUNAWAY) : PSTR(MSG_THERMAL_RUNAWAY_BED) + ); } }