Browse Source

Bring chamber temp to completion (#13837)

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

1
Marlin/Configuration.h

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

4
Marlin/src/feature/power.cpp

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

6
Marlin/src/gcode/temperature/M141_M191.cpp

@ -60,7 +60,7 @@ void GcodeSuite::M191() {
const bool no_wait_for_cooling = parser.seenval('S');
if (no_wait_for_cooling || parser.seenval('R')) {
thermalManager.setTargetBed(parser.value_celsius());
thermalManager.setTargetChamber(parser.value_celsius());
#if ENABLED(PRINTJOB_TIMER_AUTOSTART)
if (parser.value_celsius() > BED_MINTEMP)
print_job_timer.start();
@ -68,9 +68,9 @@ void GcodeSuite::M191() {
}
else return;
lcd_setstatusPGM(thermalManager.isHeatingBed() ? PSTR(MSG_BED_HEATING) : PSTR(MSG_BED_COOLING));
lcd_setstatusPGM(thermalManager.isHeatingChamber() ? PSTR(MSG_CHAMBER_HEATING) : PSTR(MSG_CHAMBER_COOLING));
thermalManager.wait_for_bed(no_wait_for_cooling);
thermalManager.wait_for_chamber(no_wait_for_cooling);
}
*/

2
Marlin/src/inc/Conditionals_post.h

@ -953,7 +953,7 @@
#define HAS_AUTO_FAN_3 (HOTENDS > 3 && PIN_EXISTS(E3_AUTO_FAN))
#define HAS_AUTO_FAN_4 (HOTENDS > 4 && PIN_EXISTS(E4_AUTO_FAN))
#define HAS_AUTO_FAN_5 (HOTENDS > 5 && PIN_EXISTS(E5_AUTO_FAN))
#define HAS_AUTO_CHAMBER_FAN (PIN_EXISTS(CHAMBER_AUTO_FAN))
#define HAS_AUTO_CHAMBER_FAN (HAS_TEMP_CHAMBER && PIN_EXISTS(CHAMBER_AUTO_FAN))
#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)
// Other fans

6
Marlin/src/lcd/language/language_en.h

@ -1014,6 +1014,12 @@
#ifndef MSG_BED_COOLING
#define MSG_BED_COOLING _UxGT("Bed cooling...")
#endif
#ifndef MSG_CHAMBER_HEATING
#define MSG_CHAMBER_HEATING _UxGT("Chamber heating...")
#endif
#ifndef MSG_CHAMBER_COOLING
#define MSG_CHAMBER_COOLING _UxGT("Chamber cooling...")
#endif
#ifndef MSG_DELTA_CALIBRATE
#define MSG_DELTA_CALIBRATE _UxGT("Delta Calibration")
#endif

2
Marlin/src/lcd/language/language_it.h

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

314
Marlin/src/module/temperature.cpp

@ -110,6 +110,10 @@ hotend_info_t Temperature::temp_hotend[HOTENDS]; // = { 0 }
uint8_t Temperature::autofan_speed[HOTENDS]; // = { 0 }
#endif
#if ENABLED(AUTO_POWER_CHAMBER_FAN)
uint8_t Temperature::chamberfan_speed; // = 0
#endif
#if FAN_COUNT > 0
uint8_t Temperature::fan_speed[FAN_COUNT]; // = { 0 }
@ -640,16 +644,28 @@ int16_t Temperature::getHeaterPower(const int8_t heater) {
#define AUTO_CHAMBER_IS_3 (CHAMBER_AUTO_FAN_PIN == E3_AUTO_FAN_PIN)
#define AUTO_CHAMBER_IS_4 (CHAMBER_AUTO_FAN_PIN == E4_AUTO_FAN_PIN)
#define AUTO_CHAMBER_IS_5 (CHAMBER_AUTO_FAN_PIN == E5_AUTO_FAN_PIN)
#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)
#define CHAMBER_FAN_INDEX HOTENDS
void Temperature::checkExtruderAutoFans() {
static const uint8_t fanBit[] PROGMEM = {
0,
AUTO_1_IS_0 ? 0 : 1,
AUTO_2_IS_0 ? 0 : AUTO_2_IS_1 ? 1 : 2,
AUTO_3_IS_0 ? 0 : AUTO_3_IS_1 ? 1 : AUTO_3_IS_2 ? 2 : 3,
AUTO_4_IS_0 ? 0 : AUTO_4_IS_1 ? 1 : AUTO_4_IS_2 ? 2 : AUTO_4_IS_3 ? 3 : 4,
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
#if HAS_TEMP_CHAMBER
0
#if HOTENDS > 1
, AUTO_1_IS_0 ? 0 : 1
#endif
#if HOTENDS > 2
, AUTO_2_IS_0 ? 0 : AUTO_2_IS_1 ? 1 : 2
#endif
#if HOTENDS > 3
, AUTO_3_IS_0 ? 0 : AUTO_3_IS_1 ? 1 : AUTO_3_IS_2 ? 2 : 3,
#endif
#if HOTENDS > 4
, AUTO_4_IS_0 ? 0 : AUTO_4_IS_1 ? 1 : AUTO_4_IS_2 ? 2 : AUTO_4_IS_3 ? 3 : 4,
#endif
#if HOTENDS > 5
, 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
#endif
#if HAS_AUTO_CHAMBER_FAN
, 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
#endif
};
@ -659,52 +675,60 @@ int16_t Temperature::getHeaterPower(const int8_t heater) {
if (temp_hotend[e].current > EXTRUDER_AUTO_FAN_TEMPERATURE)
SBI(fanState, pgm_read_byte(&fanBit[e]));
#if HAS_TEMP_CHAMBER
if (temp_chamber.current > EXTRUDER_AUTO_FAN_TEMPERATURE)
SBI(fanState, pgm_read_byte(&fanBit[6]));
#if HAS_AUTO_CHAMBER_FAN
if (temp_chamber.current > CHAMBER_AUTO_FAN_TEMPERATURE)
SBI(fanState, pgm_read_byte(&fanBit[CHAMBER_FAN_INDEX]));
#endif
#define _UPDATE_AUTO_FAN(P,D,A) do{ \
if (PWM_PIN(P##_AUTO_FAN_PIN) && EXTRUDER_AUTO_FAN_SPEED < 255) \
analogWrite(P##_AUTO_FAN_PIN, A); \
else \
WRITE(P##_AUTO_FAN_PIN, D); \
#define _UPDATE_AUTO_FAN(P,D,A) do{ \
if (PWM_PIN(P##_AUTO_FAN_PIN) && A < 255) \
analogWrite(P##_AUTO_FAN_PIN, D ? A : 0); \
else \
WRITE(P##_AUTO_FAN_PIN, D); \
}while(0)
uint8_t fanDone = 0;
for (uint8_t f = 0; f < COUNT(fanBit); f++) {
const uint8_t bit = pgm_read_byte(&fanBit[f]);
if (TEST(fanDone, bit)) continue;
const bool fan_on = TEST(fanState, bit);
const uint8_t speed = fan_on ? EXTRUDER_AUTO_FAN_SPEED : 0;
#if ENABLED(AUTO_POWER_E_FANS)
autofan_speed[f] = speed;
#endif
const uint8_t realFan = pgm_read_byte(&fanBit[f]);
if (TEST(fanDone, realFan)) continue;
const bool fan_on = TEST(fanState, realFan);
switch (f) {
#if HAS_AUTO_CHAMBER_FAN && !AUTO_CHAMBER_IS_E
case CHAMBER_FAN_INDEX:
chamberfan_speed = fan_on ? CHAMBER_AUTO_FAN_SPEED : 0;
break;
#endif
default:
#if ENABLED(AUTO_POWER_E_FANS)
autofan_speed[realFan] = fan_on ? EXTRUDER_AUTO_FAN_SPEED : 0;
#endif
break;
}
switch (f) {
#if HAS_AUTO_FAN_0
case 0: _UPDATE_AUTO_FAN(E0, fan_on, speed); break;
case 0: _UPDATE_AUTO_FAN(E0, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
#endif
#if HAS_AUTO_FAN_1
case 1: _UPDATE_AUTO_FAN(E1, fan_on, speed); break;
case 1: _UPDATE_AUTO_FAN(E1, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
#endif
#if HAS_AUTO_FAN_2
case 2: _UPDATE_AUTO_FAN(E2, fan_on, speed); break;
case 2: _UPDATE_AUTO_FAN(E2, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
#endif
#if HAS_AUTO_FAN_3
case 3: _UPDATE_AUTO_FAN(E3, fan_on, speed); break;
case 3: _UPDATE_AUTO_FAN(E3, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
#endif
#if HAS_AUTO_FAN_4
case 4: _UPDATE_AUTO_FAN(E4, fan_on, speed); break;
case 4: _UPDATE_AUTO_FAN(E4, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
#endif
#if HAS_AUTO_FAN_5
case 5: _UPDATE_AUTO_FAN(E5, fan_on, speed); break;
case 5: _UPDATE_AUTO_FAN(E5, fan_on, EXTRUDER_AUTO_FAN_SPEED); break;
#endif
#if HAS_AUTO_CHAMBER_FAN
case 6: _UPDATE_AUTO_FAN(CHAMBER, fan_on, speed); break;
#if HAS_AUTO_CHAMBER_FAN && !AUTO_CHAMBER_IS_E
case CHAMBER_FAN_INDEX: _UPDATE_AUTO_FAN(CHAMBER, fan_on, CHAMBER_AUTO_FAN_SPEED); break;
#endif
}
SBI(fanDone, bit);
UNUSED(fan_on); UNUSED(speed);
SBI(fanDone, realFan);
}
}
@ -1086,57 +1110,53 @@ void Temperature::manage_heater() {
}
#endif // HAS_HEATED_BED
#if HAS_TEMP_CHAMBER
#if HAS_HEATED_CHAMBER
#ifndef CHAMBER_CHECK_INTERVAL
#define CHAMBER_CHECK_INTERVAL 1000UL
#endif
#if HAS_HEATED_CHAMBER
#if ENABLED(THERMAL_PROTECTION_CHAMBER)
if (!grace_period && degChamber() > CHAMBER_MAXTEMP)
_temp_error(-2, PSTR(MSG_T_THERMAL_RUNAWAY), TEMP_ERR_PSTR(MSG_THERMAL_RUNAWAY, -2));
#endif
#if WATCH_CHAMBER
// Make sure temperature is increasing
if (watch_chamber.elapsed(ms)) { // Time to check the chamber?
if (degChamber() < watch_chamber.target) // Failed to increase enough?
_temp_error(-2, PSTR(MSG_T_HEATING_FAILED), TEMP_ERR_PSTR(MSG_HEATING_FAILED_LCD, -2));
else
start_watching_chamber(); // Start again if the target is still far off
}
#endif // WATCH_CHAMBER
if (PENDING(ms, next_chamber_check_ms)) return;
next_chamber_check_ms = ms + CHAMBER_CHECK_INTERVAL;
#if ENABLED(THERMAL_PROTECTION_CHAMBER)
if (!grace_period && degChamber() > CHAMBER_MAXTEMP)
_temp_error(-2, PSTR(MSG_T_THERMAL_RUNAWAY), TEMP_ERR_PSTR(MSG_THERMAL_RUNAWAY, -2));
#endif
if (WITHIN(temp_chamber.current, CHAMBER_MINTEMP, CHAMBER_MAXTEMP)) {
#if ENABLED(CHAMBER_LIMIT_SWITCHING)
if (temp_chamber.current >= temp_chamber.target + TEMP_CHAMBER_HYSTERESIS)
temp_chamber.soft_pwm_amount = 0;
else if (temp_chamber.current <= temp_chamber.target - (TEMP_CHAMBER_HYSTERESIS))
temp_chamber.soft_pwm_amount = MAX_CHAMBER_POWER >> 1;
#else
temp_chamber.soft_pwm_amount = temp_chamber.current < temp_chamber.target ? MAX_CHAMBER_POWER >> 1 : 0;
#endif
}
else {
temp_chamber.soft_pwm_amount = 0;
WRITE_HEATER_CHAMBER(LOW);
#if WATCH_CHAMBER
// Make sure temperature is increasing
if (watch_chamber.elapsed(ms)) { // Time to check the chamber?
if (degChamber() < watch_chamber.target) // Failed to increase enough?
_temp_error(-2, PSTR(MSG_T_HEATING_FAILED), TEMP_ERR_PSTR(MSG_HEATING_FAILED_LCD, -2));
else
start_watching_chamber(); // Start again if the target is still far off
}
#endif // WATCH_CHAMBER
if (PENDING(ms, next_chamber_check_ms)) return;
next_chamber_check_ms = ms + CHAMBER_CHECK_INTERVAL;
#if ENABLED(THERMAL_PROTECTION_CHAMBER)
thermal_runaway_protection(tr_state_machine_chamber, temp_chamber.current, temp_chamber.target, -2, THERMAL_PROTECTION_CHAMBER_PERIOD, THERMAL_PROTECTION_CHAMBER_HYSTERESIS);
if (WITHIN(temp_chamber.current, CHAMBER_MINTEMP, CHAMBER_MAXTEMP)) {
#if ENABLED(CHAMBER_LIMIT_SWITCHING)
if (temp_chamber.current >= temp_chamber.target + TEMP_CHAMBER_HYSTERESIS)
temp_chamber.soft_pwm_amount = 0;
else if (temp_chamber.current <= temp_chamber.target - (TEMP_CHAMBER_HYSTERESIS))
temp_chamber.soft_pwm_amount = MAX_CHAMBER_POWER >> 1;
#else
temp_chamber.soft_pwm_amount = temp_chamber.current < temp_chamber.target ? MAX_CHAMBER_POWER >> 1 : 0;
#endif
}
else {
temp_chamber.soft_pwm_amount = 0;
WRITE_HEATER_CHAMBER(LOW);
}
// TODO: Implement true PID pwm
//temp_bed.soft_pwm_amount = WITHIN(temp_chamber.current, CHAMBER_MINTEMP, CHAMBER_MAXTEMP) ? (int)get_pid_output_chamber() >> 1 : 0;
#if ENABLED(THERMAL_PROTECTION_CHAMBER)
thermal_runaway_protection(tr_state_machine_chamber, temp_chamber.current, temp_chamber.target, -2, THERMAL_PROTECTION_CHAMBER_PERIOD, THERMAL_PROTECTION_CHAMBER_HYSTERESIS);
#endif
#endif // HAS_HEATED_CHAMBER
// TODO: Implement true PID pwm
//temp_bed.soft_pwm_amount = WITHIN(temp_chamber.current, CHAMBER_MINTEMP, CHAMBER_MAXTEMP) ? (int)get_pid_output_chamber() >> 1 : 0;
#endif // HAS_TEMP_CHAMBER
#endif // HAS_HEATED_CHAMBER
}
#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() {
#endif
#define INIT_FAN_PIN(P) do{ _INIT_FAN_PIN(P); SET_FAST_PWM_FREQ(P); }while(0)
#if EXTRUDER_AUTO_FAN_SPEED != 255
#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)
#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)
#else
#define INIT_E_AUTO_FAN_PIN(P) SET_OUTPUT(P)
#endif
#if CHAMBER_AUTO_FAN_SPEED != 255
#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)
#else
#define INIT_AUTO_FAN_PIN(P) SET_OUTPUT(P)
#define INIT_CHAMBER_AUTO_FAN_PIN(P) SET_OUTPUT(P)
#endif
/**
* Initialize the temperature manager
* The manager is implemented by periodic calls to manage_heater()
@ -1472,25 +1498,25 @@ void Temperature::init() {
ENABLE_TEMPERATURE_INTERRUPT();
#if HAS_AUTO_FAN_0
INIT_AUTO_FAN_PIN(E0_AUTO_FAN_PIN);
INIT_E_AUTO_FAN_PIN(E0_AUTO_FAN_PIN);
#endif
#if HAS_AUTO_FAN_1 && !AUTO_1_IS_0
INIT_AUTO_FAN_PIN(E1_AUTO_FAN_PIN);
INIT_E_AUTO_FAN_PIN(E1_AUTO_FAN_PIN);
#endif
#if HAS_AUTO_FAN_2 && !(AUTO_2_IS_0 || AUTO_2_IS_1)
INIT_AUTO_FAN_PIN(E2_AUTO_FAN_PIN);
INIT_E_AUTO_FAN_PIN(E2_AUTO_FAN_PIN);
#endif
#if HAS_AUTO_FAN_3 && !(AUTO_3_IS_0 || AUTO_3_IS_1 || AUTO_3_IS_2)
INIT_AUTO_FAN_PIN(E3_AUTO_FAN_PIN);
INIT_E_AUTO_FAN_PIN(E3_AUTO_FAN_PIN);
#endif
#if HAS_AUTO_FAN_4 && !(AUTO_4_IS_0 || AUTO_4_IS_1 || AUTO_4_IS_2 || AUTO_4_IS_3)
INIT_AUTO_FAN_PIN(E4_AUTO_FAN_PIN);
INIT_E_AUTO_FAN_PIN(E4_AUTO_FAN_PIN);
#endif
#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)
INIT_AUTO_FAN_PIN(E5_AUTO_FAN_PIN);
INIT_E_AUTO_FAN_PIN(E5_AUTO_FAN_PIN);
#endif
#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)
INIT_AUTO_FAN_PIN(CHAMBER_AUTO_FAN_PIN);
#if HAS_AUTO_CHAMBER_FAN && !AUTO_CHAMBER_IS_E
INIT_CHAMBER_AUTO_FAN_PIN(CHAMBER_AUTO_FAN_PIN);
#endif
// Wait for temperature measurement to settle
@ -2615,22 +2641,18 @@ void Temperature::isr() {
);
#endif
#if HAS_TEMP_CHAMBER
#if HAS_HEATED_CHAMBER
print_heater_state(degChamber(), degTargetChamber()
#if ENABLED(SHOW_TEMP_ADC_VALUES)
, rawChamberTemp()
#endif
print_heater_state(degChamber()
#if HAS_HEATED_CHAMBER
, degTargetChamber()
#else
, 0
#endif
#if ENABLED(SHOW_TEMP_ADC_VALUES)
, rawChamberTemp()
#endif
, -2 // CHAMBER
);
#else
print_heater_state(degChamber(), 0
#if ENABLED(SHOW_TEMP_ADC_VALUES)
, rawChamberTemp()
#endif
, -2 // CHAMBER
);
#endif // HAS_HEATED_CHAMBER
#endif
#endif // HAS_TEMP_CHAMBER
#if HOTENDS > 1
HOTEND_LOOP() print_heater_state(degHotend(e), degTargetHotend(e)
#if ENABLED(SHOW_TEMP_ADC_VALUES)
@ -2935,4 +2957,106 @@ void Temperature::isr() {
#endif // HAS_HEATED_BED
#if 0 && HAS_HEATED_CHAMBER
#ifndef MIN_COOLING_SLOPE_DEG_CHAMBER
#define MIN_COOLING_SLOPE_DEG_CHAMBER 1.50
#endif
#ifndef MIN_COOLING_SLOPE_TIME_CHAMBER
#define MIN_COOLING_SLOPE_TIME_CHAMBER 60
#endif
bool Temperature::wait_for_chamber(const bool no_wait_for_cooling/*=true*/) {
#if TEMP_CHAMBER_RESIDENCY_TIME > 0
millis_t residency_start_ms = 0;
// Loop until the temperature has stabilized
#define TEMP_CHAMBER_CONDITIONS (!residency_start_ms || PENDING(now, residency_start_ms + (TEMP_CHAMBER_RESIDENCY_TIME) * 1000UL))
#else
// Loop until the temperature is very close target
#define TEMP_CHAMBER_CONDITIONS (wants_to_cool ? isCoolingChamber() : isHeatingChamber())
#endif
float target_temp = -1, old_temp = 9999;
bool wants_to_cool = false, first_loop = true;
wait_for_heatup = true;
millis_t now, next_temp_ms = 0, next_cool_check_ms = 0;
#if DISABLED(BUSY_WHILE_HEATING) && ENABLED(HOST_KEEPALIVE_FEATURE)
const GcodeSuite::MarlinBusyState old_busy_state = gcode.busy_state;
KEEPALIVE_STATE(NOT_BUSY);
#endif
do {
// Target temperature might be changed during the loop
if (target_temp != degTargetChamber()) {
wants_to_cool = isCoolingChamber();
target_temp = degTargetChamber();
// Exit if S<lower>, continue if S<higher>, R<lower>, or R<higher>
if (no_wait_for_cooling && wants_to_cool) break;
}
now = millis();
if (ELAPSED(now, next_temp_ms)) { //Print Temp Reading every 1 second while heating up.
next_temp_ms = now + 1000UL;
print_heater_states(active_extruder);
#if TEMP_CHAMBER_RESIDENCY_TIME > 0
SERIAL_ECHOPGM(" W:");
if (residency_start_ms)
SERIAL_ECHO(long((((TEMP_CHAMBER_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL));
else
SERIAL_CHAR('?');
#endif
SERIAL_EOL();
}
idle();
gcode.reset_stepper_timeout(); // Keep steppers powered
const float temp = degChamber();
#if TEMP_CHAMBER_RESIDENCY_TIME > 0
const float temp_diff = ABS(target_temp - temp);
if (!residency_start_ms) {
// Start the TEMP_CHAMBER_RESIDENCY_TIME timer when we reach target temp for the first time.
if (temp_diff < TEMP_CHAMBER_WINDOW) {
residency_start_ms = now;
if (first_loop) residency_start_ms += (TEMP_CHAMBER_RESIDENCY_TIME) * 1000UL;
}
}
else if (temp_diff > TEMP_CHAMBER_HYSTERESIS) {
// Restart the timer whenever the temperature falls outside the hysteresis.
residency_start_ms = now;
}
#endif // TEMP_CHAMBER_RESIDENCY_TIME > 0
// Prevent a wait-forever situation if R is misused i.e. M191 R0
if (wants_to_cool) {
// Break after MIN_COOLING_SLOPE_TIME_CHAMBER seconds
// if the temperature did not drop at least MIN_COOLING_SLOPE_DEG_CHAMBER
if (!next_cool_check_ms || ELAPSED(now, next_cool_check_ms)) {
if (old_temp - temp < float(MIN_COOLING_SLOPE_DEG_CHAMBER)) break;
next_cool_check_ms = now + 1000UL * MIN_COOLING_SLOPE_TIME_CHAMBER;
old_temp = temp;
}
}
first_loop = false;
} while (wait_for_heatup && TEMP_CHAMBER_CONDITIONS);
if (wait_for_heatup) ui.reset_status();
#if DISABLED(BUSY_WHILE_HEATING) && ENABLED(HOST_KEEPALIVE_FEATURE)
gcode.busy_state = old_busy_state;
#endif
return wait_for_heatup;
}
#endif // HAS_HEATED_CHAMBER
#endif // HAS_TEMP_SENSOR

65
Marlin/src/module/temperature.h

@ -147,34 +147,6 @@ enum ADCSensorState : char {
#define G26_CLICK_CAN_CANCEL (HAS_LCD_MENU && ENABLED(G26_MESH_VALIDATION))
enum TempIndex : uint8_t {
#if HOTENDS > 0
TEMP_E0,
#if HOTENDS > 1
TEMP_E1,
#if HOTENDS > 2
TEMP_E2,
#if HOTENDS > 3
TEMP_E3,
#if HOTENDS > 4
TEMP_E4,
#if HOTENDS > 5
TEMP_E5,
#endif
#endif
#endif
#endif
#endif
#endif
#if HAS_HEATED_BED
TEMP_BED,
#endif
#if HAS_HEATED_CHAMBER
TEMP_CHAMBER,
#endif
tempCOUNT
};
// A temperature sensor
typedef struct TempInfo {
uint16_t acc;
@ -255,6 +227,10 @@ class Temperature {
static uint8_t autofan_speed[HOTENDS];
#endif
#if ENABLED(AUTO_POWER_CHAMBER_FAN)
static uint8_t chamberfan_speed;
#endif
#if ENABLED(FAN_SOFT_PWM)
static uint8_t soft_pwm_amount_fan[FAN_COUNT],
soft_pwm_count_fan[FAN_COUNT];
@ -554,20 +530,18 @@ class Temperature {
static inline void start_watching_chamber() {}
#endif
#if HAS_TEMP_CHAMBER
#if HAS_HEATED_CHAMBER
static void setTargetChamber(const int16_t celsius) {
#if HAS_HEATED_CHAMBER
temp_chamber.target =
#ifdef CHAMBER_MAXTEMP
MIN(celsius, CHAMBER_MAXTEMP)
#else
celsius
#endif
;
start_watching_chamber();
#endif // HAS_HEATED_CHAMBER
temp_chamber.target =
#ifdef CHAMBER_MAXTEMP
MIN(celsius, CHAMBER_MAXTEMP)
#else
celsius
#endif
;
start_watching_chamber();
}
#endif // HAS_TEMP_CHAMBER
#endif // HAS_HEATED_CHAMBER
FORCE_INLINE static bool isHeatingHotend(const uint8_t e) {
E_UNUSED();
@ -627,13 +601,15 @@ class Temperature {
#if HAS_TEMP_CHAMBER
#if ENABLED(SHOW_TEMP_ADC_VALUES)
FORCE_INLINE static int16_t rawChamberTemp() { return temp_chamber.raw; }
FORCE_INLINE static int16_t rawChamberTemp() { return temp_chamber.raw; }
#endif
FORCE_INLINE static float degChamber() { return temp_chamber.current; }
FORCE_INLINE static float degChamber() { return temp_chamber.current; }
#if HAS_HEATED_CHAMBER
FORCE_INLINE static int16_t degTargetChamber() { return temp_chamber.target; }
FORCE_INLINE static bool isHeatingChamber() { return temp_chamber.target > temp_chamber.current; }
FORCE_INLINE static bool isCoolingChamber() { return temp_chamber.target < temp_chamber.current; }
FORCE_INLINE static int16_t degTargetChamber() {return temp_chamber.target; }
static bool wait_for_chamber(const bool no_wait_for_cooling=true);
#endif
#endif // HAS_TEMP_CHAMBER
@ -754,9 +730,6 @@ class Temperature {
static void _temp_error(const int8_t e, PGM_P const serial_msg, PGM_P const lcd_msg);
static void min_temp_error(const int8_t e);
static void max_temp_error(const int8_t e);
#if HAS_TEMP_CHAMBER
static void chamber_temp_error(const bool max);
#endif
#if ENABLED(THERMAL_PROTECTION_HOTENDS) || HAS_THERMALLY_PROTECTED_BED || ENABLED(THERMAL_PROTECTION_CHAMBER)

1
config/default/Configuration.h

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

1
config/examples/3DFabXYZ/Migbot/Configuration.h

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

1
config/examples/AlephObjects/TAZ4/Configuration.h

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

1
config/examples/AliExpress/CL-260/Configuration.h

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

1
config/examples/AliExpress/UM2pExt/Configuration.h

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

1
config/examples/Anet/A2/Configuration.h

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

1
config/examples/Anet/A2plus/Configuration.h

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

1
config/examples/Anet/A6/Configuration.h

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

1
config/examples/Anet/A8/Configuration.h

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

1
config/examples/AnyCubic/i3/Configuration.h

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

1
config/examples/ArmEd/Configuration.h

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

1
config/examples/Azteeg/X5GT/Configuration.h

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

1
config/examples/BIBO/TouchX/cyclops/Configuration.h

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

1
config/examples/BIBO/TouchX/default/Configuration.h

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

1
config/examples/BQ/Hephestos/Configuration.h

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

1
config/examples/BQ/Hephestos_2/Configuration.h

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

1
config/examples/BQ/WITBOX/Configuration.h

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

1
config/examples/Cartesio/Configuration.h

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

1
config/examples/Creality/CR-10/Configuration.h

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

1
config/examples/Creality/CR-10S/Configuration.h

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

1
config/examples/Creality/CR-10_5S/Configuration.h

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

1
config/examples/Creality/CR-10mini/Configuration.h

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

1
config/examples/Creality/CR-8/Configuration.h

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

1
config/examples/Creality/Ender-2/Configuration.h

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

1
config/examples/Creality/Ender-3/Configuration.h

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

1
config/examples/Creality/Ender-4/Configuration.h

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

1
config/examples/Einstart-S/Configuration.h

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

1
config/examples/Felix/Configuration.h

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

1
config/examples/Felix/DUAL/Configuration.h

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

1
config/examples/FlashForge/CreatorPro/Configuration.h

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

1
config/examples/FolgerTech/i3-2020/Configuration.h

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

1
config/examples/Formbot/Raptor/Configuration.h

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

1
config/examples/Formbot/T_Rex_2+/Configuration.h

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

1
config/examples/Formbot/T_Rex_3/Configuration.h

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

1
config/examples/Geeetech/A10M/Configuration.h

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

1
config/examples/Geeetech/A20M/Configuration.h

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

1
config/examples/Geeetech/GT2560/Configuration.h

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

1
config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h

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

1
config/examples/Geeetech/MeCreator2/Configuration.h

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

1
config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h

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

1
config/examples/Geeetech/Prusa i3 Pro C/Configuration.h

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

1
config/examples/Geeetech/Prusa i3 Pro W/Configuration.h

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

1
config/examples/Infitary/i3-M508/Configuration.h

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

1
config/examples/JGAurora/A5/Configuration.h

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

1
config/examples/MakerParts/Configuration.h

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

1
config/examples/Malyan/M150/Configuration.h

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

1
config/examples/Malyan/M200/Configuration.h

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

1
config/examples/Micromake/C1/basic/Configuration.h

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

1
config/examples/Micromake/C1/enhanced/Configuration.h

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

1
config/examples/Mks/Robin/Configuration.h

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

1
config/examples/Mks/Sbase/Configuration.h

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

1
config/examples/Printrbot/PrintrboardG2/Configuration.h

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

1
config/examples/RapideLite/RL200/Configuration.h

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

1
config/examples/RepRapPro/Huxley/Configuration.h

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

1
config/examples/RepRapWorld/Megatronics/Configuration.h

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

1
config/examples/RigidBot/Configuration.h

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

1
config/examples/SCARA/Configuration.h

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

1
config/examples/STM32/Black_STM32F407VET6/Configuration.h

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

1
config/examples/STM32/STM32F10/Configuration.h

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

1
config/examples/STM32/STM32F4/Configuration.h

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

1
config/examples/STM32/stm32f103ret6/Configuration.h

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

1
config/examples/Sanguinololu/Configuration.h

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

1
config/examples/TheBorg/Configuration.h

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

1
config/examples/TinyBoy2/Configuration.h

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

1
config/examples/Tronxy/X1/Configuration.h

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

1
config/examples/Tronxy/X3A/Configuration.h

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

1
config/examples/Tronxy/X5S-2E/Configuration.h

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

1
config/examples/Tronxy/X5S/Configuration.h

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

1
config/examples/Tronxy/XY100/Configuration.h

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

1
config/examples/UltiMachine/Archim1/Configuration.h

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

1
config/examples/UltiMachine/Archim2/Configuration.h

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

1
config/examples/VORONDesign/Configuration.h

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

1
config/examples/Velleman/K8200/Configuration.h

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

1
config/examples/Velleman/K8400/Configuration.h

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

1
config/examples/Velleman/K8400/Dual-head/Configuration.h

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

1
config/examples/WASP/PowerWASP/Configuration.h

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

1
config/examples/Wanhao/Duplicator 6/Configuration.h

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

1
config/examples/adafruit/ST7565/Configuration.h

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

1
config/examples/delta/Anycubic/Kossel/Configuration.h

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

1
config/examples/delta/FLSUN/auto_calibrate/Configuration.h

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

1
config/examples/delta/FLSUN/kossel/Configuration.h

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

1
config/examples/delta/FLSUN/kossel_mini/Configuration.h

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

1
config/examples/delta/Geeetech/Rostock 301/Configuration.h

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

1
config/examples/delta/Hatchbox_Alpha/Configuration.h

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

1
config/examples/delta/MKS/SBASE/Configuration.h

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

1
config/examples/delta/Tevo Little Monster/Configuration.h

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

1
config/examples/delta/generic/Configuration.h

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

1
config/examples/delta/kossel_mini/Configuration.h

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

1
config/examples/delta/kossel_pro/Configuration.h

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

1
config/examples/delta/kossel_xl/Configuration.h

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

1
config/examples/gCreate/gMax1.5+/Configuration.h

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

1
config/examples/makibox/Configuration.h

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

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save