Skip to content

Commit dfd8866

Browse files
thinkyheadpull[bot]
authored andcommitted
1 parent b0379c8 commit dfd8866

19 files changed

+836
-526
lines changed

Marlin/Configuration.h

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,7 @@
452452
* 67 : 500kΩ SliceEngineering 450°C Thermistor
453453
* 70 : 100kΩ bq Hephestos 2
454454
* 75 : 100kΩ Generic Silicon Heat Pad with NTC100K MGB18-104F39050L32
455+
* 2000 : 100kΩ Ultimachine Rambo TDK NTCG104LH104KT1 NTC100K motherboard Thermistor
455456
*
456457
* Analog Thermistors - 1kΩ pullup - Atypical, and requires changing out the 4.7kΩ pullup for 1kΩ.
457458
* ------- (but gives greater accuracy and more stable PID)
@@ -475,7 +476,7 @@
475476
* NOTE: ADC pins are not 5V tolerant. Not recommended because it's possible to damage the CPU by going over 500°C.
476477
* 201 : Pt100 with circuit in Overlord, similar to Ultimainboard V2.x
477478
*
478-
* Custom/Dummy/Other Thermos
479+
* Custom/Dummy/Other Thermal Sensors
479480
* ------
480481
* 0 : not used
481482
* 1000 : Custom - Specify parameters in Configuration_adv.h
@@ -497,6 +498,7 @@
497498
#define TEMP_SENSOR_PROBE 0
498499
#define TEMP_SENSOR_CHAMBER 0
499500
#define TEMP_SENSOR_COOLER 0
501+
#define TEMP_SENSOR_BOARD 0
500502
#define TEMP_SENSOR_REDUNDANT 0
501503

502504
// Dummy thermistor constant temperature readings, for use with 998 and 999
@@ -529,17 +531,11 @@
529531
* the print will be aborted. Whichever sensor is selected will have its normal functions disabled; i.e. selecting
530532
* the Bed sensor (-1) will disable bed heating/monitoring.
531533
*
532-
* Use the following to select temp sensors:
533-
* -5 : Cooler
534-
* -4 : Probe
535-
* -3 : not used
536-
* -2 : Chamber
537-
* -1 : Bed
538-
* 0-7 : E0 through E7
534+
* For selecting source/target use: COOLER, PROBE, BOARD, CHAMBER, BED, E0, E1, E2, E3, E4, E5, E6, E7
539535
*/
540536
#if TEMP_SENSOR_REDUNDANT
541-
#define TEMP_SENSOR_REDUNDANT_SOURCE 1 // The sensor that will provide the redundant reading.
542-
#define TEMP_SENSOR_REDUNDANT_TARGET 0 // The sensor that we are providing a redundant reading for.
537+
#define TEMP_SENSOR_REDUNDANT_SOURCE E1 // The sensor that will provide the redundant reading.
538+
#define TEMP_SENSOR_REDUNDANT_TARGET E0 // The sensor that we are providing a redundant reading for.
543539
#define TEMP_SENSOR_REDUNDANT_MAX_DIFF 10 // (°C) Temperature difference that will trigger a print abort.
544540
#endif
545541

Marlin/Configuration_adv.h

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,12 @@
125125
#define PROBE_BETA 3950 // Beta value
126126
#endif
127127

128+
#if TEMP_SENSOR_BOARD == 1000
129+
#define BOARD_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
130+
#define BOARD_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
131+
#define BOARD_BETA 3950 // Beta value
132+
#endif
133+
128134
#if TEMP_SENSOR_REDUNDANT == 1000
129135
#define REDUNDANT_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
130136
#define REDUNDANT_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
@@ -224,6 +230,18 @@
224230
#endif
225231
#endif
226232

233+
//
234+
// Motherboard Sensor options
235+
//
236+
#if TEMP_SENSOR_BOARD
237+
#define THERMAL_PROTECTION_BOARD // Halt the printer if the board sensor leaves the temp range below.
238+
#define BOARD_MINTEMP 8 // (°C)
239+
#define BOARD_MAXTEMP 70 // (°C)
240+
#ifndef TEMP_BOARD_PIN
241+
//#define TEMP_BOARD_PIN -1 // Board temp sensor pin, if not set in pins file.
242+
#endif
243+
#endif
244+
227245
//
228246
// Laser Coolant Flow Meter
229247
//
@@ -480,16 +498,20 @@
480498
*/
481499
//#define USE_CONTROLLER_FAN
482500
#if ENABLED(USE_CONTROLLER_FAN)
483-
//#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan
484-
//#define CONTROLLER_FAN_USE_Z_ONLY // With this option only the Z axis is considered
485-
//#define CONTROLLER_FAN_IGNORE_Z // Ignore Z stepper. Useful when stepper timeout is disabled.
486-
#define CONTROLLERFAN_SPEED_MIN 0 // (0-255) Minimum speed. (If set below this value the fan is turned off.)
487-
#define CONTROLLERFAN_SPEED_ACTIVE 255 // (0-255) Active speed, used when any motor is enabled
488-
#define CONTROLLERFAN_SPEED_IDLE 0 // (0-255) Idle speed, used when motors are disabled
489-
#define CONTROLLERFAN_IDLE_TIME 60 // (seconds) Extra time to keep the fan running after disabling motors
490-
//#define CONTROLLER_FAN_EDITABLE // Enable M710 configurable settings
501+
//#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan
502+
//#define CONTROLLER_FAN_USE_Z_ONLY // With this option only the Z axis is considered
503+
//#define CONTROLLER_FAN_IGNORE_Z // Ignore Z stepper. Useful when stepper timeout is disabled.
504+
#define CONTROLLERFAN_SPEED_MIN 0 // (0-255) Minimum speed. (If set below this value the fan is turned off.)
505+
#define CONTROLLERFAN_SPEED_ACTIVE 255 // (0-255) Active speed, used when any motor is enabled
506+
#define CONTROLLERFAN_SPEED_IDLE 0 // (0-255) Idle speed, used when motors are disabled
507+
#define CONTROLLERFAN_IDLE_TIME 60 // (seconds) Extra time to keep the fan running after disabling motors
508+
509+
// Use TEMP_SENSOR_BOARD as a trigger for enabling the controller fan
510+
//#define CONTROLLER_FAN_MIN_BOARD_TEMP 40 // (°C) Turn on the fan if the board reaches this temperature
511+
512+
//#define CONTROLLER_FAN_EDITABLE // Enable M710 configurable settings
491513
#if ENABLED(CONTROLLER_FAN_EDITABLE)
492-
#define CONTROLLER_FAN_MENU // Enable the Controller Fan submenu
514+
#define CONTROLLER_FAN_MENU // Enable the Controller Fan submenu
493515
#endif
494516
#endif
495517

Marlin/src/MarlinCore.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,10 +1218,10 @@ void setup() {
12181218
SETUP_RUN(HAL_init());
12191219

12201220
// Init and disable SPI thermocouples; this is still needed
1221-
#if TEMP_SENSOR_0_IS_MAX_TC || (TEMP_SENSOR_REDUNDANT_IS_MAX_TC && TEMP_SENSOR_REDUNDANT_SOURCE == 0)
1221+
#if TEMP_SENSOR_0_IS_MAX_TC || (TEMP_SENSOR_REDUNDANT_IS_MAX_TC && REDUNDANT_TEMP_MATCH(SOURCE, E0))
12221222
OUT_WRITE(TEMP_0_CS_PIN, HIGH); // Disable
12231223
#endif
1224-
#if TEMP_SENSOR_1_IS_MAX_TC || (TEMP_SENSOR_REDUNDANT_IS_MAX_TC && TEMP_SENSOR_REDUNDANT_SOURCE == 1)
1224+
#if TEMP_SENSOR_1_IS_MAX_TC || (TEMP_SENSOR_REDUNDANT_IS_MAX_TC && REDUNDANT_TEMP_MATCH(SOURCE, E1))
12251225
OUT_WRITE(TEMP_1_CS_PIN, HIGH);
12261226
#endif
12271227

Marlin/src/core/language.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,9 @@
231231
#define STR_HEATER_BED "bed"
232232
#define STR_HEATER_CHAMBER "chamber"
233233
#define STR_COOLER "cooler"
234+
#define STR_MOTHERBOARD "motherboard"
235+
#define STR_PROBE "probe"
236+
#define STR_REDUNDANT "redundant "
234237
#define STR_LASER_TEMP "laser temperature"
235238

236239
#define STR_STOPPED_HEATER ", system stopped! Heater_ID: "

Marlin/src/feature/controllerfan.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,14 @@ void ControllerFan::update() {
7676
)
7777
);
7878

79-
// If any of the drivers or the heated bed are enabled...
80-
if (motor_on || TERN0(HAS_HEATED_BED, thermalManager.temp_bed.soft_pwm_amount > 0))
81-
lastMotorOn = ms; //... set time to NOW so the fan will turn on
79+
// If any triggers for the controller fan are true...
80+
// - At least one stepper driver is enabled
81+
// - The heated bed is enabled
82+
// - TEMP_SENSOR_BOARD is reporting >= CONTROLLER_FAN_MIN_BOARD_TEMP
83+
if ( motor_on
84+
|| TERN0(HAS_HEATED_BED, thermalManager.temp_bed.soft_pwm_amount > 0)
85+
|| TERN0(HAS_CONTROLLER_FAN_MIN_BOARD_TEMP, thermalManager.wholeDegBoard() >= CONTROLLER_FAN_MIN_BOARD_TEMP)
86+
) lastMotorOn = ms; //... set time to NOW so the fan will turn on
8287

8388
// Fan Settings. Set fan > 0:
8489
// - If AutoMode is on and steppers have been enabled for CONTROLLERFAN_IDLE_TIME seconds.

0 commit comments

Comments
 (0)