From 7ecb7cbd46d03f6326c0f89adb0c5c8afcd0f9e9 Mon Sep 17 00:00:00 2001
From: Greg Rebholz <gregrebholz@gmail.com>
Date: Tue, 23 Dec 2014 23:35:54 -0500
Subject: [PATCH] Added "auto fan" checks to PID_autotune

---
 Marlin/temperature.cpp | 16 ++++++++++++++++
 Marlin/temperature.h   |  3 +++
 2 files changed, 19 insertions(+)

diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index a3fedbf986..8aa39cb254 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -188,6 +188,12 @@ void PID_autotune(float temp, int extruder, int ncycles)
   float Kp, Ki, Kd;
   float max = 0, min = 10000;
 
+#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \
+    (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \
+    (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
+  unsigned long extruder_autofan_last_check = millis();
+#endif
+
   if ((extruder >= EXTRUDERS)
   #if (TEMP_BED_PIN <= -1)
        ||(extruder < 0)
@@ -224,6 +230,16 @@ void PID_autotune(float temp, int extruder, int ncycles)
 
       max=max(max,input);
       min=min(min,input);
+
+      #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \
+          (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \
+          (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
+      if(millis() - extruder_autofan_last_check > 2500) {
+        checkExtruderAutoFans();
+        extruder_autofan_last_check = millis();
+      }
+      #endif
+
       if(heating == true && input > temp) {
         if(millis() - t2 > 5000) { 
           heating=false;
diff --git a/Marlin/temperature.h b/Marlin/temperature.h
index 962e048a58..95c3514890 100644
--- a/Marlin/temperature.h
+++ b/Marlin/temperature.h
@@ -186,5 +186,8 @@ FORCE_INLINE void autotempShutdown(){
 
 void PID_autotune(float temp, int extruder, int ncycles);
 
+void setExtruderAutoFanState(int pin, bool state);
+void checkExtruderAutoFans();
+
 #endif
 
-- 
GitLab