瀏覽代碼

Bring chamber temp to completion (#13837)

Giuliano Zaro 5 年之前
父節點
當前提交
e2a77ed881
共有 100 個文件被更改,包括 346 次插入145 次删除
  1. 1
    0
      Marlin/Configuration.h
  2. 4
    0
      Marlin/src/feature/power.cpp
  3. 3
    3
      Marlin/src/gcode/temperature/M141_M191.cpp
  4. 1
    1
      Marlin/src/inc/Conditionals_post.h
  5. 6
    0
      Marlin/src/lcd/language/language_en.h
  6. 2
    0
      Marlin/src/lcd/language/language_it.h
  7. 219
    95
      Marlin/src/module/temperature.cpp
  8. 19
    46
      Marlin/src/module/temperature.h
  9. 1
    0
      config/default/Configuration.h
  10. 1
    0
      config/examples/3DFabXYZ/Migbot/Configuration.h
  11. 1
    0
      config/examples/AlephObjects/TAZ4/Configuration.h
  12. 1
    0
      config/examples/AliExpress/CL-260/Configuration.h
  13. 1
    0
      config/examples/AliExpress/UM2pExt/Configuration.h
  14. 1
    0
      config/examples/Anet/A2/Configuration.h
  15. 1
    0
      config/examples/Anet/A2plus/Configuration.h
  16. 1
    0
      config/examples/Anet/A6/Configuration.h
  17. 1
    0
      config/examples/Anet/A8/Configuration.h
  18. 1
    0
      config/examples/AnyCubic/i3/Configuration.h
  19. 1
    0
      config/examples/ArmEd/Configuration.h
  20. 1
    0
      config/examples/Azteeg/X5GT/Configuration.h
  21. 1
    0
      config/examples/BIBO/TouchX/cyclops/Configuration.h
  22. 1
    0
      config/examples/BIBO/TouchX/default/Configuration.h
  23. 1
    0
      config/examples/BQ/Hephestos/Configuration.h
  24. 1
    0
      config/examples/BQ/Hephestos_2/Configuration.h
  25. 1
    0
      config/examples/BQ/WITBOX/Configuration.h
  26. 1
    0
      config/examples/Cartesio/Configuration.h
  27. 1
    0
      config/examples/Creality/CR-10/Configuration.h
  28. 1
    0
      config/examples/Creality/CR-10S/Configuration.h
  29. 1
    0
      config/examples/Creality/CR-10_5S/Configuration.h
  30. 1
    0
      config/examples/Creality/CR-10mini/Configuration.h
  31. 1
    0
      config/examples/Creality/CR-8/Configuration.h
  32. 1
    0
      config/examples/Creality/Ender-2/Configuration.h
  33. 1
    0
      config/examples/Creality/Ender-3/Configuration.h
  34. 1
    0
      config/examples/Creality/Ender-4/Configuration.h
  35. 1
    0
      config/examples/Einstart-S/Configuration.h
  36. 1
    0
      config/examples/Felix/Configuration.h
  37. 1
    0
      config/examples/Felix/DUAL/Configuration.h
  38. 1
    0
      config/examples/FlashForge/CreatorPro/Configuration.h
  39. 1
    0
      config/examples/FolgerTech/i3-2020/Configuration.h
  40. 1
    0
      config/examples/Formbot/Raptor/Configuration.h
  41. 1
    0
      config/examples/Formbot/T_Rex_2+/Configuration.h
  42. 1
    0
      config/examples/Formbot/T_Rex_3/Configuration.h
  43. 1
    0
      config/examples/Geeetech/A10M/Configuration.h
  44. 1
    0
      config/examples/Geeetech/A20M/Configuration.h
  45. 1
    0
      config/examples/Geeetech/GT2560/Configuration.h
  46. 1
    0
      config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h
  47. 1
    0
      config/examples/Geeetech/MeCreator2/Configuration.h
  48. 1
    0
      config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h
  49. 1
    0
      config/examples/Geeetech/Prusa i3 Pro C/Configuration.h
  50. 1
    0
      config/examples/Geeetech/Prusa i3 Pro W/Configuration.h
  51. 1
    0
      config/examples/Infitary/i3-M508/Configuration.h
  52. 1
    0
      config/examples/JGAurora/A5/Configuration.h
  53. 1
    0
      config/examples/MakerParts/Configuration.h
  54. 1
    0
      config/examples/Malyan/M150/Configuration.h
  55. 1
    0
      config/examples/Malyan/M200/Configuration.h
  56. 1
    0
      config/examples/Micromake/C1/basic/Configuration.h
  57. 1
    0
      config/examples/Micromake/C1/enhanced/Configuration.h
  58. 1
    0
      config/examples/Mks/Robin/Configuration.h
  59. 1
    0
      config/examples/Mks/Sbase/Configuration.h
  60. 1
    0
      config/examples/Printrbot/PrintrboardG2/Configuration.h
  61. 1
    0
      config/examples/RapideLite/RL200/Configuration.h
  62. 1
    0
      config/examples/RepRapPro/Huxley/Configuration.h
  63. 1
    0
      config/examples/RepRapWorld/Megatronics/Configuration.h
  64. 1
    0
      config/examples/RigidBot/Configuration.h
  65. 1
    0
      config/examples/SCARA/Configuration.h
  66. 1
    0
      config/examples/STM32/Black_STM32F407VET6/Configuration.h
  67. 1
    0
      config/examples/STM32/STM32F10/Configuration.h
  68. 1
    0
      config/examples/STM32/STM32F4/Configuration.h
  69. 1
    0
      config/examples/STM32/stm32f103ret6/Configuration.h
  70. 1
    0
      config/examples/Sanguinololu/Configuration.h
  71. 1
    0
      config/examples/TheBorg/Configuration.h
  72. 1
    0
      config/examples/TinyBoy2/Configuration.h
  73. 1
    0
      config/examples/Tronxy/X1/Configuration.h
  74. 1
    0
      config/examples/Tronxy/X3A/Configuration.h
  75. 1
    0
      config/examples/Tronxy/X5S-2E/Configuration.h
  76. 1
    0
      config/examples/Tronxy/X5S/Configuration.h
  77. 1
    0
      config/examples/Tronxy/XY100/Configuration.h
  78. 1
    0
      config/examples/UltiMachine/Archim1/Configuration.h
  79. 1
    0
      config/examples/UltiMachine/Archim2/Configuration.h
  80. 1
    0
      config/examples/VORONDesign/Configuration.h
  81. 1
    0
      config/examples/Velleman/K8200/Configuration.h
  82. 1
    0
      config/examples/Velleman/K8400/Configuration.h
  83. 1
    0
      config/examples/Velleman/K8400/Dual-head/Configuration.h
  84. 1
    0
      config/examples/WASP/PowerWASP/Configuration.h
  85. 1
    0
      config/examples/Wanhao/Duplicator 6/Configuration.h
  86. 1
    0
      config/examples/adafruit/ST7565/Configuration.h
  87. 1
    0
      config/examples/delta/Anycubic/Kossel/Configuration.h
  88. 1
    0
      config/examples/delta/FLSUN/auto_calibrate/Configuration.h
  89. 1
    0
      config/examples/delta/FLSUN/kossel/Configuration.h
  90. 1
    0
      config/examples/delta/FLSUN/kossel_mini/Configuration.h
  91. 1
    0
      config/examples/delta/Geeetech/Rostock 301/Configuration.h
  92. 1
    0
      config/examples/delta/Hatchbox_Alpha/Configuration.h
  93. 1
    0
      config/examples/delta/MKS/SBASE/Configuration.h
  94. 1
    0
      config/examples/delta/Tevo Little Monster/Configuration.h
  95. 1
    0
      config/examples/delta/generic/Configuration.h
  96. 1
    0
      config/examples/delta/kossel_mini/Configuration.h
  97. 1
    0
      config/examples/delta/kossel_pro/Configuration.h
  98. 1
    0
      config/examples/delta/kossel_xl/Configuration.h
  99. 1
    0
      config/examples/gCreate/gMax1.5+/Configuration.h
  100. 0
    0
      config/examples/makibox/Configuration.h

+ 1
- 0
Marlin/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 4
- 0
Marlin/src/feature/power.cpp 查看文件

@@ -50,6 +50,10 @@ bool Power::is_power_needed() {
50 50
     if (controllerfan_speed) return true;
51 51
   #endif
52 52
 
53
+  #if ENABLED(AUTO_POWER_CHAMBER_FAN)
54
+    if (thermalManager.chamberfan_speed) return true;
55
+  #endif
56
+
53 57
   // If any of the drivers or the bed are enabled...
54 58
   if (X_ENABLE_READ == X_ENABLE_ON || Y_ENABLE_READ == Y_ENABLE_ON || Z_ENABLE_READ == Z_ENABLE_ON
55 59
     #if HAS_HEATED_BED

+ 3
- 3
Marlin/src/gcode/temperature/M141_M191.cpp 查看文件

@@ -60,7 +60,7 @@ void GcodeSuite::M191() {
60 60
 
61 61
   const bool no_wait_for_cooling = parser.seenval('S');
62 62
   if (no_wait_for_cooling || parser.seenval('R')) {
63
-    thermalManager.setTargetBed(parser.value_celsius());
63
+    thermalManager.setTargetChamber(parser.value_celsius());
64 64
     #if ENABLED(PRINTJOB_TIMER_AUTOSTART)
65 65
       if (parser.value_celsius() > BED_MINTEMP)
66 66
         print_job_timer.start();
@@ -68,9 +68,9 @@ void GcodeSuite::M191() {
68 68
   }
69 69
   else return;
70 70
 
71
-  lcd_setstatusPGM(thermalManager.isHeatingBed() ? PSTR(MSG_BED_HEATING) : PSTR(MSG_BED_COOLING));
71
+  lcd_setstatusPGM(thermalManager.isHeatingChamber() ? PSTR(MSG_CHAMBER_HEATING) : PSTR(MSG_CHAMBER_COOLING));
72 72
 
73
-  thermalManager.wait_for_bed(no_wait_for_cooling);
73
+  thermalManager.wait_for_chamber(no_wait_for_cooling);
74 74
 }
75 75
 */
76 76
 

+ 1
- 1
Marlin/src/inc/Conditionals_post.h 查看文件

@@ -953,7 +953,7 @@
953 953
 #define HAS_AUTO_FAN_3 (HOTENDS > 3 && PIN_EXISTS(E3_AUTO_FAN))
954 954
 #define HAS_AUTO_FAN_4 (HOTENDS > 4 && PIN_EXISTS(E4_AUTO_FAN))
955 955
 #define HAS_AUTO_FAN_5 (HOTENDS > 5 && PIN_EXISTS(E5_AUTO_FAN))
956
-#define HAS_AUTO_CHAMBER_FAN (PIN_EXISTS(CHAMBER_AUTO_FAN))
956
+#define HAS_AUTO_CHAMBER_FAN (HAS_TEMP_CHAMBER && PIN_EXISTS(CHAMBER_AUTO_FAN))
957 957
 #define HAS_AUTO_FAN (HAS_AUTO_FAN_0 || HAS_AUTO_FAN_1 || HAS_AUTO_FAN_2 || HAS_AUTO_FAN_3 || HAS_AUTO_FAN_4 || HAS_AUTO_FAN_5 || HAS_AUTO_CHAMBER_FAN)
958 958
 
959 959
 // Other fans

+ 6
- 0
Marlin/src/lcd/language/language_en.h 查看文件

@@ -1014,6 +1014,12 @@
1014 1014
 #ifndef MSG_BED_COOLING
1015 1015
   #define MSG_BED_COOLING                     _UxGT("Bed cooling...")
1016 1016
 #endif
1017
+#ifndef MSG_CHAMBER_HEATING
1018
+  #define MSG_CHAMBER_HEATING                 _UxGT("Chamber heating...")
1019
+#endif
1020
+#ifndef MSG_CHAMBER_COOLING
1021
+  #define MSG_CHAMBER_COOLING                 _UxGT("Chamber cooling...")
1022
+#endif
1017 1023
 #ifndef MSG_DELTA_CALIBRATE
1018 1024
   #define MSG_DELTA_CALIBRATE                 _UxGT("Delta Calibration")
1019 1025
 #endif

+ 2
- 0
Marlin/src/lcd/language/language_it.h 查看文件

@@ -356,6 +356,8 @@
356 356
 #define MSG_COOLING                         _UxGT("Raffreddamento..")
357 357
 #define MSG_BED_HEATING                     _UxGT("Risc. piatto...")
358 358
 #define MSG_BED_COOLING                     _UxGT("Raffr. piatto...")
359
+#define MSG_CHAMBER_HEATING                 _UxGT("Risc. camera...")
360
+#define MSG_CHAMBER_COOLING                 _UxGT("Raffr. camera...")
359 361
 #define MSG_DELTA_CALIBRATE                 _UxGT("Calibraz. Delta")
360 362
 #define MSG_DELTA_CALIBRATE_X               _UxGT("Calibra X")
361 363
 #define MSG_DELTA_CALIBRATE_Y               _UxGT("Calibra Y")

+ 219
- 95
Marlin/src/module/temperature.cpp 查看文件

@@ -110,6 +110,10 @@ hotend_info_t Temperature::temp_hotend[HOTENDS]; // = { 0 }
110 110
   uint8_t Temperature::autofan_speed[HOTENDS]; // = { 0 }
111 111
 #endif
112 112
 
113
+#if ENABLED(AUTO_POWER_CHAMBER_FAN)
114
+  uint8_t Temperature::chamberfan_speed; // = 0
115
+#endif
116
+
113 117
 #if FAN_COUNT > 0
114 118
 
115 119
   uint8_t Temperature::fan_speed[FAN_COUNT]; // = { 0 }
@@ -640,16 +644,28 @@ int16_t Temperature::getHeaterPower(const int8_t heater) {
640 644
   #define AUTO_CHAMBER_IS_3 (CHAMBER_AUTO_FAN_PIN == E3_AUTO_FAN_PIN)
641 645
   #define AUTO_CHAMBER_IS_4 (CHAMBER_AUTO_FAN_PIN == E4_AUTO_FAN_PIN)
642 646
   #define AUTO_CHAMBER_IS_5 (CHAMBER_AUTO_FAN_PIN == E5_AUTO_FAN_PIN)
647
+  #define AUTO_CHAMBER_IS_E (AUTO_CHAMBER_IS_0 || AUTO_CHAMBER_IS_1 || AUTO_CHAMBER_IS_2 || AUTO_CHAMBER_IS_3 || AUTO_CHAMBER_IS_4 || AUTO_CHAMBER_IS_5)
648
+  #define CHAMBER_FAN_INDEX HOTENDS
643 649
 
644 650
   void Temperature::checkExtruderAutoFans() {
645 651
     static const uint8_t fanBit[] PROGMEM = {
646
-                    0,
647
-      AUTO_1_IS_0 ? 0 :               1,
648
-      AUTO_2_IS_0 ? 0 : AUTO_2_IS_1 ? 1 :               2,
649
-      AUTO_3_IS_0 ? 0 : AUTO_3_IS_1 ? 1 : AUTO_3_IS_2 ? 2 :               3,
650
-      AUTO_4_IS_0 ? 0 : AUTO_4_IS_1 ? 1 : AUTO_4_IS_2 ? 2 : AUTO_4_IS_3 ? 3 :               4,
651
-      AUTO_5_IS_0 ? 0 : AUTO_5_IS_1 ? 1 : AUTO_5_IS_2 ? 2 : AUTO_5_IS_3 ? 3 : AUTO_5_IS_4 ? 4 : 5
652
-      #if HAS_TEMP_CHAMBER
652
+      0
653
+      #if HOTENDS > 1
654
+        , AUTO_1_IS_0 ? 0 : 1
655
+      #endif
656
+      #if HOTENDS > 2
657
+        , AUTO_2_IS_0 ? 0 : AUTO_2_IS_1 ? 1 : 2
658
+      #endif
659
+      #if HOTENDS > 3
660
+        , AUTO_3_IS_0 ? 0 : AUTO_3_IS_1 ? 1 : AUTO_3_IS_2 ? 2 : 3,
661
+      #endif
662
+      #if HOTENDS > 4
663
+        , AUTO_4_IS_0 ? 0 : AUTO_4_IS_1 ? 1 : AUTO_4_IS_2 ? 2 : AUTO_4_IS_3 ? 3 : 4,
664
+      #endif
665
+      #if HOTENDS > 5
666
+        , AUTO_5_IS_0 ? 0 : AUTO_5_IS_1 ? 1 : AUTO_5_IS_2 ? 2 : AUTO_5_IS_3 ? 3 : AUTO_5_IS_4 ? 4 : 5
667
+      #endif
668
+      #if HAS_AUTO_CHAMBER_FAN
653 669
         , AUTO_CHAMBER_IS_0 ? 0 : AUTO_CHAMBER_IS_1 ? 1 : AUTO_CHAMBER_IS_2 ? 2 : AUTO_CHAMBER_IS_3 ? 3 : AUTO_CHAMBER_IS_4 ? 4 : AUTO_CHAMBER_IS_5 ? 5 : 6
654 670
       #endif
655 671
     };
@@ -659,52 +675,60 @@ int16_t Temperature::getHeaterPower(const int8_t heater) {
659 675
       if (temp_hotend[e].current > EXTRUDER_AUTO_FAN_TEMPERATURE)
660 676
         SBI(fanState, pgm_read_byte(&fanBit[e]));
661 677
 
662
-    #if HAS_TEMP_CHAMBER
663
-      if (temp_chamber.current > EXTRUDER_AUTO_FAN_TEMPERATURE)
664
-        SBI(fanState, pgm_read_byte(&fanBit[6]));
678
+    #if HAS_AUTO_CHAMBER_FAN
679
+      if (temp_chamber.current > CHAMBER_AUTO_FAN_TEMPERATURE)
680
+        SBI(fanState, pgm_read_byte(&fanBit[CHAMBER_FAN_INDEX]));
665 681
     #endif
666 682
 
667
-    #define _UPDATE_AUTO_FAN(P,D,A) do{                               \
668
-      if (PWM_PIN(P##_AUTO_FAN_PIN) && EXTRUDER_AUTO_FAN_SPEED < 255) \
669
-        analogWrite(P##_AUTO_FAN_PIN, A);                             \
670
-      else                                                            \
671
-        WRITE(P##_AUTO_FAN_PIN, D);                                   \
683
+    #define _UPDATE_AUTO_FAN(P,D,A) do{             \
684
+      if (PWM_PIN(P##_AUTO_FAN_PIN) && A < 255)     \
685
+        analogWrite(P##_AUTO_FAN_PIN, D ? A : 0);   \
686
+      else                                          \
687
+        WRITE(P##_AUTO_FAN_PIN, D);                 \
672 688
     }while(0)
673 689
 
674 690
     uint8_t fanDone = 0;
675 691
     for (uint8_t f = 0; f < COUNT(fanBit); f++) {
676
-      const uint8_t bit = pgm_read_byte(&fanBit[f]);
677
-      if (TEST(fanDone, bit)) continue;
678
-      const bool fan_on = TEST(fanState, bit);
679
-      const uint8_t speed = fan_on ? EXTRUDER_AUTO_FAN_SPEED : 0;
680
-      #if ENABLED(AUTO_POWER_E_FANS)
681
-        autofan_speed[f] = speed;
682
-      #endif
692
+      const uint8_t realFan = pgm_read_byte(&fanBit[f]);
693
+      if (TEST(fanDone, realFan)) continue;
694
+      const bool fan_on = TEST(fanState, realFan);
695
+      switch (f) {
696
+        #if HAS_AUTO_CHAMBER_FAN && !AUTO_CHAMBER_IS_E
697
+          case CHAMBER_FAN_INDEX:
698
+            chamberfan_speed = fan_on ? CHAMBER_AUTO_FAN_SPEED : 0;
699
+            break;
700
+        #endif
701
+        default:
702
+          #if ENABLED(AUTO_POWER_E_FANS)
703
+            autofan_speed[realFan] = fan_on ? EXTRUDER_AUTO_FAN_SPEED : 0;
704
+          #endif
705
+          break;
706
+      }
707
+
683 708
       switch (f) {
684 709
         #if HAS_AUTO_FAN_0
685
-          case 0: _UPDATE_AUTO_FAN(E0, fan_on, speed); break;
710
+          case 0: _UPDATE_AUTO_FAN(E0, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
686 711
         #endif
687 712
         #if HAS_AUTO_FAN_1
688
-          case 1: _UPDATE_AUTO_FAN(E1, fan_on, speed); break;
713
+          case 1: _UPDATE_AUTO_FAN(E1, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
689 714
         #endif
690 715
         #if HAS_AUTO_FAN_2
691
-          case 2: _UPDATE_AUTO_FAN(E2, fan_on, speed); break;
716
+          case 2: _UPDATE_AUTO_FAN(E2, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
692 717
         #endif
693 718
         #if HAS_AUTO_FAN_3
694
-          case 3: _UPDATE_AUTO_FAN(E3, fan_on, speed); break;
719
+          case 3: _UPDATE_AUTO_FAN(E3, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
695 720
         #endif
696 721
         #if HAS_AUTO_FAN_4
697
-          case 4: _UPDATE_AUTO_FAN(E4, fan_on, speed); break;
722
+          case 4: _UPDATE_AUTO_FAN(E4, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
698 723
         #endif
699 724
         #if HAS_AUTO_FAN_5
700
-          case 5: _UPDATE_AUTO_FAN(E5, fan_on, speed); break;
725
+          case 5: _UPDATE_AUTO_FAN(E5, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
701 726
         #endif
702
-        #if HAS_AUTO_CHAMBER_FAN
703
-          case 6: _UPDATE_AUTO_FAN(CHAMBER, fan_on, speed); break;
727
+        #if HAS_AUTO_CHAMBER_FAN && !AUTO_CHAMBER_IS_E
728
+          case CHAMBER_FAN_INDEX: _UPDATE_AUTO_FAN(CHAMBER, fan_on, CHAMBER_AUTO_FAN_SPEED); break;
704 729
         #endif
705 730
       }
706
-      SBI(fanDone, bit);
707
-      UNUSED(fan_on); UNUSED(speed);
731
+      SBI(fanDone, realFan);
708 732
     }
709 733
   }
710 734
 
@@ -1086,57 +1110,53 @@ void Temperature::manage_heater() {
1086 1110
     }
1087 1111
   #endif // HAS_HEATED_BED
1088 1112
 
1089
-  #if HAS_TEMP_CHAMBER
1113
+  #if HAS_HEATED_CHAMBER
1090 1114
 
1091 1115
     #ifndef CHAMBER_CHECK_INTERVAL
1092 1116
       #define CHAMBER_CHECK_INTERVAL 1000UL
1093 1117
     #endif
1094 1118
 
1095
-    #if HAS_HEATED_CHAMBER
1096
-
1097
-      #if ENABLED(THERMAL_PROTECTION_CHAMBER)
1098
-        if (!grace_period && degChamber() > CHAMBER_MAXTEMP)
1099
-          _temp_error(-2, PSTR(MSG_T_THERMAL_RUNAWAY), TEMP_ERR_PSTR(MSG_THERMAL_RUNAWAY, -2));
1100
-      #endif
1101
-
1102
-      #if WATCH_CHAMBER
1103
-        // Make sure temperature is increasing
1104
-        if (watch_chamber.elapsed(ms)) {                  // Time to check the chamber?
1105
-          if (degChamber() < watch_chamber.target)   // Failed to increase enough?
1106
-            _temp_error(-2, PSTR(MSG_T_HEATING_FAILED), TEMP_ERR_PSTR(MSG_HEATING_FAILED_LCD, -2));
1107
-          else
1108
-            start_watching_chamber();                     // Start again if the target is still far off
1109
-        }
1110
-      #endif // WATCH_CHAMBER
1111
-
1112
-      if (PENDING(ms, next_chamber_check_ms)) return;
1113
-      next_chamber_check_ms = ms + CHAMBER_CHECK_INTERVAL;
1119
+    #if ENABLED(THERMAL_PROTECTION_CHAMBER)
1120
+      if (!grace_period && degChamber() > CHAMBER_MAXTEMP)
1121
+        _temp_error(-2, PSTR(MSG_T_THERMAL_RUNAWAY), TEMP_ERR_PSTR(MSG_THERMAL_RUNAWAY, -2));
1122
+    #endif
1114 1123
 
1115
-      if (WITHIN(temp_chamber.current, CHAMBER_MINTEMP, CHAMBER_MAXTEMP)) {
1116
-        #if ENABLED(CHAMBER_LIMIT_SWITCHING)
1117
-          if (temp_chamber.current >= temp_chamber.target + TEMP_CHAMBER_HYSTERESIS)
1118
-            temp_chamber.soft_pwm_amount = 0;
1119
-          else if (temp_chamber.current <= temp_chamber.target - (TEMP_CHAMBER_HYSTERESIS))
1120
-            temp_chamber.soft_pwm_amount = MAX_CHAMBER_POWER >> 1;
1121
-        #else
1122
-          temp_chamber.soft_pwm_amount = temp_chamber.current < temp_chamber.target ? MAX_CHAMBER_POWER >> 1 : 0;
1123
-        #endif
1124
-      }
1125
-      else {
1126
-        temp_chamber.soft_pwm_amount = 0;
1127
-        WRITE_HEATER_CHAMBER(LOW);
1124
+    #if WATCH_CHAMBER
1125
+      // Make sure temperature is increasing
1126
+      if (watch_chamber.elapsed(ms)) {                  // Time to check the chamber?
1127
+        if (degChamber() < watch_chamber.target)   // Failed to increase enough?
1128
+          _temp_error(-2, PSTR(MSG_T_HEATING_FAILED), TEMP_ERR_PSTR(MSG_HEATING_FAILED_LCD, -2));
1129
+        else
1130
+          start_watching_chamber();                     // Start again if the target is still far off
1128 1131
       }
1132
+    #endif // WATCH_CHAMBER
1133
+
1134
+    if (PENDING(ms, next_chamber_check_ms)) return;
1135
+    next_chamber_check_ms = ms + CHAMBER_CHECK_INTERVAL;
1129 1136
 
1130
-      #if ENABLED(THERMAL_PROTECTION_CHAMBER)
1131
-        thermal_runaway_protection(tr_state_machine_chamber, temp_chamber.current, temp_chamber.target, -2, THERMAL_PROTECTION_CHAMBER_PERIOD, THERMAL_PROTECTION_CHAMBER_HYSTERESIS);
1137
+    if (WITHIN(temp_chamber.current, CHAMBER_MINTEMP, CHAMBER_MAXTEMP)) {
1138
+      #if ENABLED(CHAMBER_LIMIT_SWITCHING)
1139
+        if (temp_chamber.current >= temp_chamber.target + TEMP_CHAMBER_HYSTERESIS)
1140
+          temp_chamber.soft_pwm_amount = 0;
1141
+        else if (temp_chamber.current <= temp_chamber.target - (TEMP_CHAMBER_HYSTERESIS))
1142
+          temp_chamber.soft_pwm_amount = MAX_CHAMBER_POWER >> 1;
1143
+      #else
1144
+        temp_chamber.soft_pwm_amount = temp_chamber.current < temp_chamber.target ? MAX_CHAMBER_POWER >> 1 : 0;
1132 1145
       #endif
1146
+    }
1147
+    else {
1148
+      temp_chamber.soft_pwm_amount = 0;
1149
+      WRITE_HEATER_CHAMBER(LOW);
1150
+    }
1133 1151
 
1134
-      // TODO: Implement true PID pwm
1135
-      //temp_bed.soft_pwm_amount = WITHIN(temp_chamber.current, CHAMBER_MINTEMP, CHAMBER_MAXTEMP) ? (int)get_pid_output_chamber() >> 1 : 0;
1152
+    #if ENABLED(THERMAL_PROTECTION_CHAMBER)
1153
+      thermal_runaway_protection(tr_state_machine_chamber, temp_chamber.current, temp_chamber.target, -2, THERMAL_PROTECTION_CHAMBER_PERIOD, THERMAL_PROTECTION_CHAMBER_HYSTERESIS);
1154
+    #endif
1136 1155
 
1137
-    #endif // HAS_HEATED_CHAMBER
1156
+    // TODO: Implement true PID pwm
1157
+    //temp_bed.soft_pwm_amount = WITHIN(temp_chamber.current, CHAMBER_MINTEMP, CHAMBER_MAXTEMP) ? (int)get_pid_output_chamber() >> 1 : 0;
1138 1158
 
1139
-  #endif // HAS_TEMP_CHAMBER
1159
+  #endif // HAS_HEATED_CHAMBER
1140 1160
 }
1141 1161
 
1142 1162
 #define TEMP_AD595(RAW)  ((RAW) * 5.0 * 100.0 / 1024.0 / (OVERSAMPLENR) * (TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET)
@@ -1353,11 +1373,17 @@ void Temperature::updateTemperaturesFromRawValues() {
1353 1373
 #endif
1354 1374
 #define INIT_FAN_PIN(P) do{ _INIT_FAN_PIN(P); SET_FAST_PWM_FREQ(P); }while(0)
1355 1375
 #if EXTRUDER_AUTO_FAN_SPEED != 255
1356
-  #define INIT_AUTO_FAN_PIN(P) do{ if (P == FAN1_PIN || P == FAN2_PIN) { SET_PWM(P); SET_FAST_PWM_FREQ(FAST_PWM_FAN_FREQUENCY); } else SET_OUTPUT(P); }while(0)
1376
+  #define INIT_E_AUTO_FAN_PIN(P) do{ if (P == FAN1_PIN || P == FAN2_PIN) { SET_PWM(P); SET_FAST_PWM_FREQ(FAST_PWM_FAN_FREQUENCY); } else SET_OUTPUT(P); }while(0)
1377
+#else
1378
+  #define INIT_E_AUTO_FAN_PIN(P) SET_OUTPUT(P)
1379
+#endif
1380
+#if CHAMBER_AUTO_FAN_SPEED != 255
1381
+  #define INIT_CHAMBER_AUTO_FAN_PIN(P) do{ if (P == FAN1_PIN || P == FAN2_PIN) { SET_PWM(P); SET_FAST_PWM_FREQ(FAST_PWM_FAN_FREQUENCY); } else SET_OUTPUT(P); }while(0)
1357 1382
 #else
1358
-  #define INIT_AUTO_FAN_PIN(P) SET_OUTPUT(P)
1383
+  #define INIT_CHAMBER_AUTO_FAN_PIN(P) SET_OUTPUT(P)
1359 1384
 #endif
1360 1385
 
1386
+
1361 1387
 /**
1362 1388
  * Initialize the temperature manager
1363 1389
  * The manager is implemented by periodic calls to manage_heater()
@@ -1472,25 +1498,25 @@ void Temperature::init() {
1472 1498
   ENABLE_TEMPERATURE_INTERRUPT();
1473 1499
 
1474 1500
   #if HAS_AUTO_FAN_0
1475
-    INIT_AUTO_FAN_PIN(E0_AUTO_FAN_PIN);
1501
+    INIT_E_AUTO_FAN_PIN(E0_AUTO_FAN_PIN);
1476 1502
   #endif
1477 1503
   #if HAS_AUTO_FAN_1 && !AUTO_1_IS_0
1478
-    INIT_AUTO_FAN_PIN(E1_AUTO_FAN_PIN);
1504
+    INIT_E_AUTO_FAN_PIN(E1_AUTO_FAN_PIN);
1479 1505
   #endif
1480 1506
   #if HAS_AUTO_FAN_2 && !(AUTO_2_IS_0 || AUTO_2_IS_1)
1481
-    INIT_AUTO_FAN_PIN(E2_AUTO_FAN_PIN);
1507
+    INIT_E_AUTO_FAN_PIN(E2_AUTO_FAN_PIN);
1482 1508
   #endif
1483 1509
   #if HAS_AUTO_FAN_3 && !(AUTO_3_IS_0 || AUTO_3_IS_1 || AUTO_3_IS_2)
1484
-    INIT_AUTO_FAN_PIN(E3_AUTO_FAN_PIN);
1510
+    INIT_E_AUTO_FAN_PIN(E3_AUTO_FAN_PIN);
1485 1511
   #endif
1486 1512
   #if HAS_AUTO_FAN_4 && !(AUTO_4_IS_0 || AUTO_4_IS_1 || AUTO_4_IS_2 || AUTO_4_IS_3)
1487
-    INIT_AUTO_FAN_PIN(E4_AUTO_FAN_PIN);
1513
+    INIT_E_AUTO_FAN_PIN(E4_AUTO_FAN_PIN);
1488 1514
   #endif
1489 1515
   #if HAS_AUTO_FAN_5 && !(AUTO_5_IS_0 || AUTO_5_IS_1 || AUTO_5_IS_2 || AUTO_5_IS_3 || AUTO_5_IS_4)
1490
-    INIT_AUTO_FAN_PIN(E5_AUTO_FAN_PIN);
1516
+    INIT_E_AUTO_FAN_PIN(E5_AUTO_FAN_PIN);
1491 1517
   #endif
1492
-  #if HAS_AUTO_CHAMBER_FAN && !(AUTO_CHAMBER_IS_0 || AUTO_CHAMBER_IS_1 || AUTO_CHAMBER_IS_2 || AUTO_CHAMBER_IS_3 || AUTO_CHAMBER_IS_4 || AUTO_CHAMBER_IS_5)
1493
-    INIT_AUTO_FAN_PIN(CHAMBER_AUTO_FAN_PIN);
1518
+  #if HAS_AUTO_CHAMBER_FAN && !AUTO_CHAMBER_IS_E
1519
+    INIT_CHAMBER_AUTO_FAN_PIN(CHAMBER_AUTO_FAN_PIN);
1494 1520
   #endif
1495 1521
 
1496 1522
   // Wait for temperature measurement to settle
@@ -2615,22 +2641,18 @@ void Temperature::isr() {
2615 2641
       );
2616 2642
     #endif
2617 2643
     #if HAS_TEMP_CHAMBER
2618
-      #if HAS_HEATED_CHAMBER
2619
-        print_heater_state(degChamber(), degTargetChamber()
2620
-          #if ENABLED(SHOW_TEMP_ADC_VALUES)
2621
-            , rawChamberTemp()
2622
-          #endif
2644
+      print_heater_state(degChamber()
2645
+        #if HAS_HEATED_CHAMBER
2646
+          , degTargetChamber()
2647
+        #else
2648
+          , 0
2649
+        #endif
2650
+        #if ENABLED(SHOW_TEMP_ADC_VALUES)
2651
+          , rawChamberTemp()
2652
+        #endif
2623 2653
         , -2 // CHAMBER
2624 2654
       );
2625
-      #else
2626
-        print_heater_state(degChamber(), 0
2627
-          #if ENABLED(SHOW_TEMP_ADC_VALUES)
2628
-            , rawChamberTemp()
2629
-          #endif
2630
-          , -2 // CHAMBER
2631
-        );
2632
-      #endif // HAS_HEATED_CHAMBER
2633
-    #endif
2655
+    #endif // HAS_TEMP_CHAMBER
2634 2656
     #if HOTENDS > 1
2635 2657
       HOTEND_LOOP() print_heater_state(degHotend(e), degTargetHotend(e)
2636 2658
         #if ENABLED(SHOW_TEMP_ADC_VALUES)
@@ -2935,4 +2957,106 @@ void Temperature::isr() {
2935 2957
 
2936 2958
   #endif // HAS_HEATED_BED
2937 2959
 
2960
+  #if 0 && HAS_HEATED_CHAMBER
2961
+
2962
+    #ifndef MIN_COOLING_SLOPE_DEG_CHAMBER
2963
+      #define MIN_COOLING_SLOPE_DEG_CHAMBER 1.50
2964
+    #endif
2965
+    #ifndef MIN_COOLING_SLOPE_TIME_CHAMBER
2966
+      #define MIN_COOLING_SLOPE_TIME_CHAMBER 60
2967
+    #endif
2968
+
2969
+    bool Temperature::wait_for_chamber(const bool no_wait_for_cooling/*=true*/) {
2970
+      #if TEMP_CHAMBER_RESIDENCY_TIME > 0
2971
+        millis_t residency_start_ms = 0;
2972
+        // Loop until the temperature has stabilized
2973
+        #define TEMP_CHAMBER_CONDITIONS (!residency_start_ms || PENDING(now, residency_start_ms + (TEMP_CHAMBER_RESIDENCY_TIME) * 1000UL))
2974
+      #else
2975
+        // Loop until the temperature is very close target
2976
+        #define TEMP_CHAMBER_CONDITIONS (wants_to_cool ? isCoolingChamber() : isHeatingChamber())
2977
+      #endif
2978
+
2979
+      float target_temp = -1, old_temp = 9999;
2980
+      bool wants_to_cool = false, first_loop = true;
2981
+      wait_for_heatup = true;
2982
+      millis_t now, next_temp_ms = 0, next_cool_check_ms = 0;
2983
+
2984
+      #if DISABLED(BUSY_WHILE_HEATING) && ENABLED(HOST_KEEPALIVE_FEATURE)
2985
+        const GcodeSuite::MarlinBusyState old_busy_state = gcode.busy_state;
2986
+        KEEPALIVE_STATE(NOT_BUSY);
2987
+      #endif
2988
+
2989
+      do {
2990
+        // Target temperature might be changed during the loop
2991
+        if (target_temp != degTargetChamber()) {
2992
+          wants_to_cool = isCoolingChamber();
2993
+          target_temp = degTargetChamber();
2994
+
2995
+          // Exit if S<lower>, continue if S<higher>, R<lower>, or R<higher>
2996
+          if (no_wait_for_cooling && wants_to_cool) break;
2997
+        }
2998
+
2999
+        now = millis();
3000
+        if (ELAPSED(now, next_temp_ms)) { //Print Temp Reading every 1 second while heating up.
3001
+          next_temp_ms = now + 1000UL;
3002
+          print_heater_states(active_extruder);
3003
+          #if TEMP_CHAMBER_RESIDENCY_TIME > 0
3004
+            SERIAL_ECHOPGM(" W:");
3005
+            if (residency_start_ms)
3006
+              SERIAL_ECHO(long((((TEMP_CHAMBER_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL));
3007
+            else
3008
+              SERIAL_CHAR('?');
3009
+          #endif
3010
+          SERIAL_EOL();
3011
+        }
3012
+
3013
+        idle();
3014
+        gcode.reset_stepper_timeout(); // Keep steppers powered
3015
+
3016
+        const float temp = degChamber();
3017
+
3018
+        #if TEMP_CHAMBER_RESIDENCY_TIME > 0
3019
+
3020
+          const float temp_diff = ABS(target_temp - temp);
3021
+
3022
+          if (!residency_start_ms) {
3023
+            // Start the TEMP_CHAMBER_RESIDENCY_TIME timer when we reach target temp for the first time.
3024
+            if (temp_diff < TEMP_CHAMBER_WINDOW) {
3025
+              residency_start_ms = now;
3026
+              if (first_loop) residency_start_ms += (TEMP_CHAMBER_RESIDENCY_TIME) * 1000UL;
3027
+            }
3028
+          }
3029
+          else if (temp_diff > TEMP_CHAMBER_HYSTERESIS) {
3030
+            // Restart the timer whenever the temperature falls outside the hysteresis.
3031
+            residency_start_ms = now;
3032
+          }
3033
+
3034
+        #endif // TEMP_CHAMBER_RESIDENCY_TIME > 0
3035
+
3036
+        // Prevent a wait-forever situation if R is misused i.e. M191 R0
3037
+        if (wants_to_cool) {
3038
+          // Break after MIN_COOLING_SLOPE_TIME_CHAMBER seconds
3039
+          // if the temperature did not drop at least MIN_COOLING_SLOPE_DEG_CHAMBER
3040
+          if (!next_cool_check_ms || ELAPSED(now, next_cool_check_ms)) {
3041
+            if (old_temp - temp < float(MIN_COOLING_SLOPE_DEG_CHAMBER)) break;
3042
+            next_cool_check_ms = now + 1000UL * MIN_COOLING_SLOPE_TIME_CHAMBER;
3043
+            old_temp = temp;
3044
+          }
3045
+        }
3046
+
3047
+        first_loop = false;
3048
+
3049
+      } while (wait_for_heatup && TEMP_CHAMBER_CONDITIONS);
3050
+
3051
+      if (wait_for_heatup) ui.reset_status();
3052
+
3053
+      #if DISABLED(BUSY_WHILE_HEATING) && ENABLED(HOST_KEEPALIVE_FEATURE)
3054
+        gcode.busy_state = old_busy_state;
3055
+      #endif
3056
+
3057
+      return wait_for_heatup;
3058
+    }
3059
+
3060
+  #endif // HAS_HEATED_CHAMBER
3061
+
2938 3062
 #endif // HAS_TEMP_SENSOR

+ 19
- 46
Marlin/src/module/temperature.h 查看文件

@@ -147,34 +147,6 @@ enum ADCSensorState : char {
147 147
 
148 148
 #define G26_CLICK_CAN_CANCEL (HAS_LCD_MENU && ENABLED(G26_MESH_VALIDATION))
149 149
 
150
-enum TempIndex : uint8_t {
151
-  #if HOTENDS > 0
152
-    TEMP_E0,
153
-    #if HOTENDS > 1
154
-      TEMP_E1,
155
-      #if HOTENDS > 2
156
-        TEMP_E2,
157
-        #if HOTENDS > 3
158
-          TEMP_E3,
159
-          #if HOTENDS > 4
160
-            TEMP_E4,
161
-            #if HOTENDS > 5
162
-              TEMP_E5,
163
-            #endif
164
-          #endif
165
-        #endif
166
-      #endif
167
-    #endif
168
-  #endif
169
-  #if HAS_HEATED_BED
170
-    TEMP_BED,
171
-  #endif
172
-  #if HAS_HEATED_CHAMBER
173
-    TEMP_CHAMBER,
174
-  #endif
175
-  tempCOUNT
176
-};
177
-
178 150
 // A temperature sensor
179 151
 typedef struct TempInfo {
180 152
   uint16_t acc;
@@ -255,6 +227,10 @@ class Temperature {
255 227
       static uint8_t autofan_speed[HOTENDS];
256 228
     #endif
257 229
 
230
+    #if ENABLED(AUTO_POWER_CHAMBER_FAN)
231
+      static uint8_t chamberfan_speed;
232
+    #endif
233
+
258 234
     #if ENABLED(FAN_SOFT_PWM)
259 235
       static uint8_t soft_pwm_amount_fan[FAN_COUNT],
260 236
                      soft_pwm_count_fan[FAN_COUNT];
@@ -554,20 +530,18 @@ class Temperature {
554 530
       static inline void start_watching_chamber() {}
555 531
     #endif
556 532
 
557
-    #if HAS_TEMP_CHAMBER
533
+    #if HAS_HEATED_CHAMBER
558 534
       static void setTargetChamber(const int16_t celsius) {
559
-        #if HAS_HEATED_CHAMBER
560
-          temp_chamber.target =
561
-            #ifdef CHAMBER_MAXTEMP
562
-              MIN(celsius, CHAMBER_MAXTEMP)
563
-            #else
564
-              celsius
565
-            #endif
566
-          ;
567
-          start_watching_chamber();
568
-        #endif // HAS_HEATED_CHAMBER
535
+        temp_chamber.target =
536
+          #ifdef CHAMBER_MAXTEMP
537
+            MIN(celsius, CHAMBER_MAXTEMP)
538
+          #else
539
+            celsius
540
+          #endif
541
+        ;
542
+        start_watching_chamber();
569 543
       }
570
-    #endif // HAS_TEMP_CHAMBER
544
+    #endif // HAS_HEATED_CHAMBER
571 545
 
572 546
     FORCE_INLINE static bool isHeatingHotend(const uint8_t e) {
573 547
       E_UNUSED();
@@ -627,13 +601,15 @@ class Temperature {
627 601
 
628 602
     #if HAS_TEMP_CHAMBER
629 603
       #if ENABLED(SHOW_TEMP_ADC_VALUES)
630
-        FORCE_INLINE static int16_t rawChamberTemp() { return temp_chamber.raw; }
604
+        FORCE_INLINE static int16_t rawChamberTemp()    { return temp_chamber.raw; }
631 605
       #endif
632
-      FORCE_INLINE static float degChamber() { return temp_chamber.current; }
606
+      FORCE_INLINE static float degChamber()            { return temp_chamber.current; }
633 607
       #if HAS_HEATED_CHAMBER
608
+        FORCE_INLINE static int16_t degTargetChamber()  { return temp_chamber.target; }
634 609
         FORCE_INLINE static bool isHeatingChamber()     { return temp_chamber.target > temp_chamber.current; }
635 610
         FORCE_INLINE static bool isCoolingChamber()     { return temp_chamber.target < temp_chamber.current; }
636
-        FORCE_INLINE static int16_t degTargetChamber() {return temp_chamber.target; }
611
+
612
+        static bool wait_for_chamber(const bool no_wait_for_cooling=true);
637 613
       #endif
638 614
     #endif // HAS_TEMP_CHAMBER
639 615
 
@@ -754,9 +730,6 @@ class Temperature {
754 730
     static void _temp_error(const int8_t e, PGM_P const serial_msg, PGM_P const lcd_msg);
755 731
     static void min_temp_error(const int8_t e);
756 732
     static void max_temp_error(const int8_t e);
757
-    #if HAS_TEMP_CHAMBER
758
-      static void chamber_temp_error(const bool max);
759
-    #endif
760 733
 
761 734
     #if ENABLED(THERMAL_PROTECTION_HOTENDS) || HAS_THERMALLY_PROTECTED_BED || ENABLED(THERMAL_PROTECTION_CHAMBER)
762 735
 

+ 1
- 0
config/default/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/3DFabXYZ/Migbot/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/AlephObjects/TAZ4/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/AliExpress/CL-260/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/AliExpress/UM2pExt/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Anet/A2/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Anet/A2plus/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Anet/A6/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Anet/A8/Configuration.h 查看文件

@@ -322,6 +322,7 @@
322 322
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
323 323
     #define AUTO_POWER_E_FANS
324 324
     #define AUTO_POWER_CONTROLLERFAN
325
+    #define AUTO_POWER_CHAMBER_FAN
325 326
     #define POWER_TIMEOUT 30
326 327
   #endif
327 328
 

+ 1
- 0
config/examples/AnyCubic/i3/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/ArmEd/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Azteeg/X5GT/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/BIBO/TouchX/cyclops/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/BIBO/TouchX/default/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/BQ/Hephestos/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/BQ/Hephestos_2/Configuration.h 查看文件

@@ -329,6 +329,7 @@
329 329
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
330 330
     #define AUTO_POWER_E_FANS
331 331
     #define AUTO_POWER_CONTROLLERFAN
332
+    #define AUTO_POWER_CHAMBER_FAN
332 333
     #define POWER_TIMEOUT 30
333 334
   #endif
334 335
 

+ 1
- 0
config/examples/BQ/WITBOX/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Cartesio/Configuration.h 查看文件

@@ -322,6 +322,7 @@
322 322
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
323 323
     #define AUTO_POWER_E_FANS
324 324
     #define AUTO_POWER_CONTROLLERFAN
325
+    #define AUTO_POWER_CHAMBER_FAN
325 326
     #define POWER_TIMEOUT 30
326 327
   #endif
327 328
 

+ 1
- 0
config/examples/Creality/CR-10/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Creality/CR-10S/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Creality/CR-10_5S/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Creality/CR-10mini/Configuration.h 查看文件

@@ -330,6 +330,7 @@
330 330
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
331 331
     #define AUTO_POWER_E_FANS
332 332
     #define AUTO_POWER_CONTROLLERFAN
333
+    #define AUTO_POWER_CHAMBER_FAN
333 334
     #define POWER_TIMEOUT 30
334 335
   #endif
335 336
 

+ 1
- 0
config/examples/Creality/CR-8/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Creality/Ender-2/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Creality/Ender-3/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Creality/Ender-4/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Einstart-S/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Felix/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Felix/DUAL/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/FlashForge/CreatorPro/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/FolgerTech/i3-2020/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Formbot/Raptor/Configuration.h 查看文件

@@ -362,6 +362,7 @@
362 362
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
363 363
     #define AUTO_POWER_E_FANS
364 364
     #define AUTO_POWER_CONTROLLERFAN
365
+    #define AUTO_POWER_CHAMBER_FAN
365 366
     #define POWER_TIMEOUT 30
366 367
   #endif
367 368
 

+ 1
- 0
config/examples/Formbot/T_Rex_2+/Configuration.h 查看文件

@@ -330,6 +330,7 @@
330 330
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
331 331
     #define AUTO_POWER_E_FANS
332 332
     #define AUTO_POWER_CONTROLLERFAN
333
+    #define AUTO_POWER_CHAMBER_FAN
333 334
     #define POWER_TIMEOUT 30
334 335
   #endif
335 336
 

+ 1
- 0
config/examples/Formbot/T_Rex_3/Configuration.h 查看文件

@@ -325,6 +325,7 @@
325 325
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
326 326
     #define AUTO_POWER_E_FANS
327 327
     #define AUTO_POWER_CONTROLLERFAN
328
+    #define AUTO_POWER_CHAMBER_FAN
328 329
     #define POWER_TIMEOUT 30
329 330
   #endif
330 331
 

+ 1
- 0
config/examples/Geeetech/A10M/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Geeetech/A20M/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Geeetech/GT2560/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Geeetech/MeCreator2/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Geeetech/Prusa i3 Pro C/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Geeetech/Prusa i3 Pro W/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Infitary/i3-M508/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/JGAurora/A5/Configuration.h 查看文件

@@ -326,6 +326,7 @@
326 326
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
327 327
     #define AUTO_POWER_E_FANS
328 328
     #define AUTO_POWER_CONTROLLERFAN
329
+    #define AUTO_POWER_CHAMBER_FAN
329 330
     #define POWER_TIMEOUT 30
330 331
   #endif
331 332
 

+ 1
- 0
config/examples/MakerParts/Configuration.h 查看文件

@@ -341,6 +341,7 @@
341 341
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
342 342
     #define AUTO_POWER_E_FANS
343 343
     #define AUTO_POWER_CONTROLLERFAN
344
+    #define AUTO_POWER_CHAMBER_FAN
344 345
     #define POWER_TIMEOUT 30
345 346
   #endif
346 347
 

+ 1
- 0
config/examples/Malyan/M150/Configuration.h 查看文件

@@ -326,6 +326,7 @@
326 326
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
327 327
     #define AUTO_POWER_E_FANS
328 328
     #define AUTO_POWER_CONTROLLERFAN
329
+    #define AUTO_POWER_CHAMBER_FAN
329 330
     #define POWER_TIMEOUT 30
330 331
   #endif
331 332
 

+ 1
- 0
config/examples/Malyan/M200/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Micromake/C1/basic/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Micromake/C1/enhanced/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Mks/Robin/Configuration.h 查看文件

@@ -322,6 +322,7 @@
322 322
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
323 323
     #define AUTO_POWER_E_FANS
324 324
     #define AUTO_POWER_CONTROLLERFAN
325
+    #define AUTO_POWER_CHAMBER_FAN
325 326
     #define POWER_TIMEOUT 30
326 327
   #endif
327 328
 

+ 1
- 0
config/examples/Mks/Sbase/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Printrbot/PrintrboardG2/Configuration.h 查看文件

@@ -322,6 +322,7 @@
322 322
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
323 323
     #define AUTO_POWER_E_FANS
324 324
     #define AUTO_POWER_CONTROLLERFAN
325
+    #define AUTO_POWER_CHAMBER_FAN
325 326
     #define POWER_TIMEOUT 30
326 327
   #endif
327 328
 

+ 1
- 0
config/examples/RapideLite/RL200/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/RepRapPro/Huxley/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/RepRapWorld/Megatronics/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/RigidBot/Configuration.h 查看文件

@@ -324,6 +324,7 @@
324 324
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
325 325
     #define AUTO_POWER_E_FANS
326 326
     #define AUTO_POWER_CONTROLLERFAN
327
+    #define AUTO_POWER_CHAMBER_FAN
327 328
     #define POWER_TIMEOUT 30
328 329
   #endif
329 330
 

+ 1
- 0
config/examples/SCARA/Configuration.h 查看文件

@@ -352,6 +352,7 @@
352 352
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
353 353
     #define AUTO_POWER_E_FANS
354 354
     #define AUTO_POWER_CONTROLLERFAN
355
+    #define AUTO_POWER_CHAMBER_FAN
355 356
     #define POWER_TIMEOUT 30
356 357
   #endif
357 358
 

+ 1
- 0
config/examples/STM32/Black_STM32F407VET6/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/STM32/STM32F10/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/STM32/STM32F4/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/STM32/stm32f103ret6/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Sanguinololu/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/TheBorg/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/TinyBoy2/Configuration.h 查看文件

@@ -343,6 +343,7 @@
343 343
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
344 344
     #define AUTO_POWER_E_FANS
345 345
     #define AUTO_POWER_CONTROLLERFAN
346
+    #define AUTO_POWER_CHAMBER_FAN
346 347
     #define POWER_TIMEOUT 30
347 348
   #endif
348 349
 

+ 1
- 0
config/examples/Tronxy/X1/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Tronxy/X3A/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Tronxy/X5S-2E/Configuration.h 查看文件

@@ -323,6 +323,7 @@
323 323
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
324 324
     #define AUTO_POWER_E_FANS
325 325
     #define AUTO_POWER_CONTROLLERFAN
326
+    #define AUTO_POWER_CHAMBER_FAN
326 327
     #define POWER_TIMEOUT 30
327 328
   #endif
328 329
 

+ 1
- 0
config/examples/Tronxy/X5S/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Tronxy/XY100/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/UltiMachine/Archim1/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/UltiMachine/Archim2/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/VORONDesign/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Velleman/K8200/Configuration.h 查看文件

@@ -341,6 +341,7 @@
341 341
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
342 342
     #define AUTO_POWER_E_FANS
343 343
     #define AUTO_POWER_CONTROLLERFAN
344
+    #define AUTO_POWER_CHAMBER_FAN
344 345
     #define POWER_TIMEOUT 30
345 346
   #endif
346 347
 

+ 1
- 0
config/examples/Velleman/K8400/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/Velleman/K8400/Dual-head/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/WASP/PowerWASP/Configuration.h 查看文件

@@ -340,6 +340,7 @@
340 340
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
341 341
     #define AUTO_POWER_E_FANS
342 342
     #define AUTO_POWER_CONTROLLERFAN
343
+    #define AUTO_POWER_CHAMBER_FAN
343 344
     #define POWER_TIMEOUT 30
344 345
   #endif
345 346
 

+ 1
- 0
config/examples/Wanhao/Duplicator 6/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/adafruit/ST7565/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/delta/Anycubic/Kossel/Configuration.h 查看文件

@@ -336,6 +336,7 @@
336 336
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
337 337
     #define AUTO_POWER_E_FANS
338 338
     #define AUTO_POWER_CONTROLLERFAN
339
+    #define AUTO_POWER_CHAMBER_FAN
339 340
     #define POWER_TIMEOUT 30
340 341
   #endif
341 342
 

+ 1
- 0
config/examples/delta/FLSUN/auto_calibrate/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/delta/FLSUN/kossel/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/delta/FLSUN/kossel_mini/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/delta/Geeetech/Rostock 301/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/delta/Hatchbox_Alpha/Configuration.h 查看文件

@@ -326,6 +326,7 @@
326 326
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
327 327
     #define AUTO_POWER_E_FANS
328 328
     #define AUTO_POWER_CONTROLLERFAN
329
+    #define AUTO_POWER_CHAMBER_FAN
329 330
     #define POWER_TIMEOUT 30
330 331
   #endif
331 332
 

+ 1
- 0
config/examples/delta/MKS/SBASE/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/delta/Tevo Little Monster/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/delta/generic/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/delta/kossel_mini/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/delta/kossel_pro/Configuration.h 查看文件

@@ -325,6 +325,7 @@
325 325
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
326 326
     #define AUTO_POWER_E_FANS
327 327
     #define AUTO_POWER_CONTROLLERFAN
328
+    #define AUTO_POWER_CHAMBER_FAN
328 329
     #define POWER_TIMEOUT 30
329 330
   #endif
330 331
 

+ 1
- 0
config/examples/delta/kossel_xl/Configuration.h 查看文件

@@ -321,6 +321,7 @@
321 321
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
322 322
     #define AUTO_POWER_E_FANS
323 323
     #define AUTO_POWER_CONTROLLERFAN
324
+    #define AUTO_POWER_CHAMBER_FAN
324 325
     #define POWER_TIMEOUT 30
325 326
   #endif
326 327
 

+ 1
- 0
config/examples/gCreate/gMax1.5+/Configuration.h 查看文件

@@ -326,6 +326,7 @@
326 326
     #define AUTO_POWER_FANS           // Turn on PSU if fans need power
327 327
     #define AUTO_POWER_E_FANS
328 328
     #define AUTO_POWER_CONTROLLERFAN
329
+    #define AUTO_POWER_CHAMBER_FAN
329 330
     #define POWER_TIMEOUT 30
330 331
   #endif
331 332
 

+ 0
- 0
config/examples/makibox/Configuration.h 查看文件


部分文件因文件數量過多而無法顯示

Loading…
取消
儲存