From 6285951eacffd16ebb20069645aa5a4749fd362b Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Fri, 23 Dec 2022 20:16:23 +0100 Subject: [PATCH] Simplify altfan override initialization --- Firmware/Marlin_main.cpp | 13 ++++++++----- Firmware/fancheck.cpp | 14 +++++--------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 16185e172..f34efb28c 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1266,11 +1266,14 @@ void setup() temp_mgr_init(); #ifdef EXTRUDER_ALTFAN_DETECT - SERIAL_ECHORPGM(_n("Hotend fan type: ")); - if (extruder_altfan_detect()) - SERIAL_ECHOLNRPGM(PSTR("ALTFAN")); - else - SERIAL_ECHOLNRPGM(PSTR("NOCTUA")); + if (eeprom_read_byte((uint8_t*)EEPROM_ALTFAN_OVERRIDE) == EEPROM_EMPTY_VALUE) { + eeprom_update_byte((uint8_t*)EEPROM_ALTFAN_OVERRIDE, 0); + SERIAL_ECHORPGM(_n("Hotend fan type: ")); + if (extruder_altfan_detect()) + SERIAL_ECHOLNRPGM(PSTR("ALTFAN")); + else + SERIAL_ECHOLNRPGM(PSTR("NOCTUA")); + } #endif //EXTRUDER_ALTFAN_DETECT plan_init(); // Initialize planner; diff --git a/Firmware/fancheck.cpp b/Firmware/fancheck.cpp index d681e6622..12724582d 100755 --- a/Firmware/fancheck.cpp +++ b/Firmware/fancheck.cpp @@ -162,18 +162,11 @@ ISR(INT6_vect) { bool extruder_altfan_detect() { + // override isAltFan setting for detection + altfanStatus.isAltfan = 0; setExtruderAutoFanState(3); SET_INPUT(TACH_0); - - uint8_t overrideVal = eeprom_read_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE); - if (overrideVal == EEPROM_EMPTY_VALUE) - { - overrideVal = (calibration_status() == CALIBRATION_STATUS_CALIBRATED) ? 1 : 0; - eeprom_update_byte((uint8_t *)EEPROM_ALTFAN_OVERRIDE, overrideVal); - } - altfanStatus.altfanOverride = overrideVal; - CRITICAL_SECTION_START; EICRB &= ~(1 << ISC61); EICRB |= (1 << ISC60); @@ -187,8 +180,11 @@ bool extruder_altfan_detect() EIMSK &= ~(1 << INT6); countFanSpeed(); + + // restore fan state altfanStatus.isAltfan = fan_speed[0] > 100; setExtruderAutoFanState(1); + return altfanStatus.isAltfan; }