diff --git a/Marlin/src/module/planner.cpp b/Marlin/src/module/planner.cpp index e8213917c6..ba0565407e 100644 --- a/Marlin/src/module/planner.cpp +++ b/Marlin/src/module/planner.cpp @@ -1184,7 +1184,7 @@ void Planner::recalculate(const_float_t safe_exit_speed_sqr) { void Planner::sync_fan_speeds(uint8_t (&fan_speed)[FAN_COUNT]) { #if defined(FAN_MULTIPLIER) - #define _CALC_FAN_SPEED(f) CALC_FAN_SPEED(thermalManager.compute_multiplied_fan(f)) + #define _CALC_FAN_SPEED(f) CALC_FAN_SPEED(thermalManager.compute_multiplied_fan(f)) #else #define _CALC_FAN_SPEED(f) CALC_FAN_SPEED(f) #endif diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp index 221d1e9047..1c93326fb2 100644 --- a/Marlin/src/module/temperature.cpp +++ b/Marlin/src/module/temperature.cpp @@ -291,7 +291,9 @@ PGMSTR(str_t_heating_failed, STR_T_HEATING_FAILED); } uint8_t Temperature::compute_multiplied_fan(uint8_t speed){ - return constrain(speed * fan_multiplier, 1, 255); + if (!speed) return 0; + float new_speed = speed * fan_multiplier; + return constrain(new_speed, 1, 255); } float Temperature::get_fan_multiplier(){