Skip to content

Commit ec87905

Browse files
thinkyheadDarred
authored andcommitted
1 parent c96a3a0 commit ec87905

19 files changed

+824
-518
lines changed

Marlin/Configuration.h

+6-10
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,7 @@ G1 F200 E3 ;подать в экструдер 5мм филамента.
481481
* 67 : 500kΩ SliceEngineering 450°C Thermistor
482482
* 70 : 100kΩ bq Hephestos 2
483483
* 75 : 100kΩ Generic Silicon Heat Pad with NTC100K MGB18-104F39050L32
484+
* 2000 : 100kΩ Ultimachine Rambo TDK NTCG104LH104KT1 NTC100K motherboard Thermistor
484485
*
485486
* Analog Thermistors - 1kΩ pullup - Atypical, and requires changing out the 4.7kΩ pullup for 1kΩ.
486487
* ------- (but gives greater accuracy and more stable PID)
@@ -504,7 +505,7 @@ G1 F200 E3 ;подать в экструдер 5мм филамента.
504505
* NOTE: ADC pins are not 5V tolerant. Not recommended because it's possible to damage the CPU by going over 500°C.
505506
* 201 : Pt100 with circuit in Overlord, similar to Ultimainboard V2.x
506507
*
507-
* Custom/Dummy/Other Thermos
508+
* Custom/Dummy/Other Thermal Sensors
508509
* ------
509510
* 0 : not used
510511
* 1000 : Custom - Specify parameters in Configuration_adv.h
@@ -526,6 +527,7 @@ G1 F200 E3 ;подать в экструдер 5мм филамента.
526527
#define TEMP_SENSOR_PROBE 0
527528
#define TEMP_SENSOR_CHAMBER 0
528529
#define TEMP_SENSOR_COOLER 0
530+
#define TEMP_SENSOR_BOARD 0
529531
#define TEMP_SENSOR_REDUNDANT 0
530532

531533
// Dummy thermistor constant temperature readings, for use with 998 and 999
@@ -558,17 +560,11 @@ G1 F200 E3 ;подать в экструдер 5мм филамента.
558560
* the print will be aborted. Whichever sensor is selected will have its normal functions disabled; i.e. selecting
559561
* the Bed sensor (-1) will disable bed heating/monitoring.
560562
*
561-
* Use the following to select temp sensors:
562-
* -5 : Cooler
563-
* -4 : Probe
564-
* -3 : not used
565-
* -2 : Chamber
566-
* -1 : Bed
567-
* 0-7 : E0 through E7
563+
* For selecting source/target use: COOLER, PROBE, BOARD, CHAMBER, BED, E0, E1, E2, E3, E4, E5, E6, E7
568564
*/
569565
#if TEMP_SENSOR_REDUNDANT
570-
#define TEMP_SENSOR_REDUNDANT_SOURCE 1 // The sensor that will provide the redundant reading.
571-
#define TEMP_SENSOR_REDUNDANT_TARGET 0 // The sensor that we are providing a redundant reading for.
566+
#define TEMP_SENSOR_REDUNDANT_SOURCE E1 // The sensor that will provide the redundant reading.
567+
#define TEMP_SENSOR_REDUNDANT_TARGET E0 // The sensor that we are providing a redundant reading for.
572568
#define TEMP_SENSOR_REDUNDANT_MAX_DIFF 10 // (°C) Temperature difference that will trigger a print abort.
573569
#endif
574570

Marlin/Configuration_adv.h

+19-1
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
//
@@ -489,7 +507,7 @@
489507
#define CONTROLLERFAN_IDLE_TIME 60 // (seconds) Extra time to keep the fan running after disabling motors
490508
//#define CONTROLLER_FAN_EDITABLE // Enable M710 configurable settings
491509
#if ENABLED(CONTROLLER_FAN_EDITABLE)
492-
#define CONTROLLER_FAN_MENU // Enable the Controller Fan submenu
510+
#define CONTROLLER_FAN_MENU // Enable the Controller Fan submenu
493511
#endif
494512
#endif
495513

Marlin/src/MarlinCore.cpp

+2-2
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

+3
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

+8-3
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)