diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 291757d1..80bcf2c4 100644 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -468,14 +468,20 @@ void checkFanSpeed() fans_check_enabled = (eeprom_read_byte((uint8_t*)EEPROM_FAN_CHECK_ENABLED) > 0); static unsigned char fan_speed_errors[2] = { 0,0 }; - if (fan_speed[0] == 0 && (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE)) fan_speed_errors[0]++; + if ((fan_speed[0] == 0) && (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE)) fan_speed_errors[0]++; else fan_speed_errors[0] = 0; - if ((fan_speed[1] == 0)&& (fanSpeed > MIN_PRINT_FAN_SPEED)) fan_speed_errors[1]++; + if ((fan_speed[1] == 0) && (block_buffer[block_buffer_tail].fan_speed > MIN_PRINT_FAN_SPEED)) fan_speed_errors[1]++; else fan_speed_errors[1] = 0; - if ((fan_speed_errors[0] > 5) && fans_check_enabled) fanSpeedError(0); //extruder fan - if ((fan_speed_errors[1] > 15) && fans_check_enabled) fanSpeedError(1); //print fan + if ((fan_speed_errors[0] > 5) && fans_check_enabled) { + fan_speed_errors[0] = 0; + fanSpeedError(0); //extruder fan + } + if ((fan_speed_errors[1] > 15) && fans_check_enabled) { + fan_speed_errors[1] = 0; + fanSpeedError(1); //print fan + } } extern void stop_and_save_print_to_ram(float z_move, float e_move);