diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 1537d3199a..8993ca6955 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3065,7 +3065,7 @@ void controllerFan() { lastMotorCheck = millis(); - if(!READ(X_ENABLE_PIN) || !READ(Y_ENABLE_PIN) || !READ(Z_ENABLE_PIN) + if(!READ(X_ENABLE_PIN) || !READ(Y_ENABLE_PIN) || !READ(Z_ENABLE_PIN) || (soft_pwm_bed > 0) #if EXTRUDERS > 2 || !READ(E2_ENABLE_PIN) #endif diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 48960488b8..29050b84f5 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -65,6 +65,8 @@ float current_temperature_bed = 0.0; #ifdef FAN_SOFT_PWM unsigned char fanSpeedSoftPwm; #endif + +unsigned char soft_pwm_bed; #ifdef BABYSTEPPING volatile int babystepsTodo[3]={0,0,0}; @@ -105,7 +107,7 @@ static volatile bool temp_meas_ready = false; static unsigned long previous_millis_bed_heater; #endif //PIDTEMPBED static unsigned char soft_pwm[EXTRUDERS]; - static unsigned char soft_pwm_bed; + #ifdef FAN_SOFT_PWM static unsigned char soft_pwm_fan; #endif diff --git a/Marlin/temperature.h b/Marlin/temperature.h index 1bf47e02ed..82de2402f0 100644 --- a/Marlin/temperature.h +++ b/Marlin/temperature.h @@ -45,6 +45,10 @@ extern float current_temperature_bed; extern float redundant_temperature; #endif +#if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1 + extern unsigned char soft_pwm_bed; +#endif + #ifdef PIDTEMP extern float Kp,Ki,Kd,Kc; float scalePID_i(float i);