Skip to content

Commit 1b31a7c

Browse files
🚸 Up to 3 MAX Thermocouples (#24898)
1 parent fd0c6fa commit 1b31a7c

File tree

6 files changed

+261
-74
lines changed

6 files changed

+261
-74
lines changed

Marlin/Configuration.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,10 @@
564564
#define MAX31865_SENSOR_OHMS_1 100
565565
#define MAX31865_CALIBRATION_OHMS_1 430
566566
#endif
567+
#if TEMP_SENSOR_IS_MAX_TC(2)
568+
#define MAX31865_SENSOR_OHMS_2 100
569+
#define MAX31865_CALIBRATION_OHMS_2 430
570+
#endif
567571

568572
#if HAS_E_TEMP_SENSOR
569573
#define TEMP_RESIDENCY_TIME 10 // (seconds) Time to wait for hotend to "settle" in M109

Marlin/Configuration_adv.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@
175175
//#define TEMP_SENSOR_FORCE_HW_SPI // Ignore SCK/MOSI/MISO pins; use CS and the default SPI bus.
176176
//#define MAX31865_SENSOR_WIRES_0 2 // (2-4) Number of wires for the probe connected to a MAX31865 board.
177177
//#define MAX31865_SENSOR_WIRES_1 2
178+
//#define MAX31865_SENSOR_WIRES_2 2
178179

179180
//#define MAX31865_50HZ_FILTER // Use a 50Hz filter instead of the default 60Hz.
180181
//#define MAX31865_USE_READ_ERROR_DETECTION // Treat value spikes (20°C delta in under 1s) as read errors.
@@ -185,6 +186,7 @@
185186

186187
//#define MAX31865_WIRE_OHMS_0 0.95f // For 2-wire, set the wire resistances for more accurate readings.
187188
//#define MAX31865_WIRE_OHMS_1 0.0f
189+
//#define MAX31865_WIRE_OHMS_2 0.0f
188190

189191
/**
190192
* Hephestos 2 24V heated bed upgrade kit.

Marlin/src/inc/Conditionals_adv.h

Lines changed: 66 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -262,26 +262,72 @@
262262
#undef HEATER_1_MAXTEMP
263263
#endif
264264

265+
#if TEMP_SENSOR_IS_MAX_TC(2)
266+
#if TEMP_SENSOR_2 == -5
267+
#define TEMP_SENSOR_2_IS_MAX31865 1
268+
#define TEMP_SENSOR_2_MAX_TC_TMIN 0
269+
#define TEMP_SENSOR_2_MAX_TC_TMAX 1024
270+
#ifndef MAX31865_SENSOR_WIRES_2
271+
#define MAX31865_SENSOR_WIRES_2 2
272+
#endif
273+
#ifndef MAX31865_WIRE_OHMS_2
274+
#define MAX31865_WIRE_OHMS_2 0.0f
275+
#endif
276+
#elif TEMP_SENSOR_2 == -3
277+
#define TEMP_SENSOR_2_IS_MAX31855 1
278+
#define TEMP_SENSOR_2_MAX_TC_TMIN -270
279+
#define TEMP_SENSOR_2_MAX_TC_TMAX 1800
280+
#elif TEMP_SENSOR_2 == -2
281+
#define TEMP_SENSOR_2_IS_MAX6675 1
282+
#define TEMP_SENSOR_2_MAX_TC_TMIN 0
283+
#define TEMP_SENSOR_2_MAX_TC_TMAX 1024
284+
#endif
285+
286+
#if TEMP_SENSOR_2 != TEMP_SENSOR_0
287+
#if TEMP_SENSOR_2 == -5
288+
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_2 then TEMP_SENSOR_0 must match."
289+
#elif TEMP_SENSOR_2 == -3
290+
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_2 then TEMP_SENSOR_0 must match."
291+
#elif TEMP_SENSOR_2 == -2
292+
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_2 then TEMP_SENSOR_0 must match."
293+
#endif
294+
#endif
295+
#elif TEMP_SENSOR_2 == -4
296+
#define TEMP_SENSOR_2_IS_AD8495 1
297+
#elif TEMP_SENSOR_2 == -1
298+
#define TEMP_SENSOR_2_IS_AD595 1
299+
#elif TEMP_SENSOR_2 > 0
300+
#define TEMP_SENSOR_2_IS_THERMISTOR 1
301+
#if TEMP_SENSOR_2 == 1000
302+
#define TEMP_SENSOR_2_IS_CUSTOM 1
303+
#elif TEMP_SENSOR_2 == 998 || TEMP_SENSOR_2 == 999
304+
#define TEMP_SENSOR_2_IS_DUMMY 1
305+
#endif
306+
#else
307+
#undef HEATER_2_MINTEMP
308+
#undef HEATER_2_MAXTEMP
309+
#endif
310+
265311
#if TEMP_SENSOR_IS_MAX_TC(REDUNDANT)
266312
#if TEMP_SENSOR_REDUNDANT == -5
267-
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
268-
#error "MAX31865 Thermocouples (-5) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
313+
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1) && !REDUNDANT_TEMP_MATCH(SOURCE, E2)
314+
#error "MAX31865 Thermocouples (-5) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 (0/1/2)."
269315
#endif
270316

271317
#define TEMP_SENSOR_REDUNDANT_IS_MAX31865 1
272318
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN 0
273319
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1024
274320
#elif TEMP_SENSOR_REDUNDANT == -3
275-
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
276-
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
321+
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1) && !REDUNDANT_TEMP_MATCH(SOURCE, E2)
322+
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 (0/1/2)."
277323
#endif
278324

279325
#define TEMP_SENSOR_REDUNDANT_IS_MAX31855 1
280326
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN -270
281327
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1800
282328
#elif TEMP_SENSOR_REDUNDANT == -2
283-
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
284-
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
329+
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1) && !REDUNDANT_TEMP_MATCH(SOURCE, E2)
330+
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 (0/1/2)."
285331
#endif
286332

287333
#define TEMP_SENSOR_REDUNDANT_IS_MAX6675 1
@@ -302,15 +348,21 @@
302348
#ifndef MAX31865_SENSOR_WIRES_1
303349
#define MAX31865_SENSOR_WIRES_1 2
304350
#endif
351+
#elif REDUNDANT_TEMP_MATCH(SOURCE, E2)
352+
#define TEMP_SENSOR_2_MAX_TC_TMIN TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN
353+
#define TEMP_SENSOR_2_MAX_TC_TMAX TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX
354+
#ifndef MAX31865_SENSOR_WIRES_2
355+
#define MAX31865_SENSOR_WIRES_2 2
356+
#endif
305357
#endif
306358

307-
#if (TEMP_SENSOR_IS_MAX_TC(0) && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_0) || (TEMP_SENSOR_IS_MAX_TC(1) && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_1)
359+
#if (TEMP_SENSOR_IS_MAX_TC(0) && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_0) || (TEMP_SENSOR_IS_MAX_TC(1) && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_1) || (TEMP_SENSOR_IS_MAX_TC(2) && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_2)
308360
#if TEMP_SENSOR_REDUNDANT == -5
309-
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
361+
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 then TEMP_SENSOR_REDUNDANT must match."
310362
#elif TEMP_SENSOR_REDUNDANT == -3
311-
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
363+
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 then TEMP_SENSOR_REDUNDANT must match."
312364
#elif TEMP_SENSOR_REDUNDANT == -2
313-
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
365+
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_0/TEMP_SENSOR_1/TEMP_SENSOR_2 then TEMP_SENSOR_REDUNDANT must match."
314366
#endif
315367
#endif
316368
#elif TEMP_SENSOR_REDUNDANT == -4
@@ -326,39 +378,19 @@
326378
#endif
327379
#endif
328380

329-
#if TEMP_SENSOR_IS_MAX_TC(0) || TEMP_SENSOR_IS_MAX_TC(1) || TEMP_SENSOR_IS_MAX_TC(REDUNDANT)
381+
#if TEMP_SENSOR_IS_MAX_TC(0) || TEMP_SENSOR_IS_MAX_TC(1) || TEMP_SENSOR_IS_MAX_TC(2) || TEMP_SENSOR_IS_MAX_TC(REDUNDANT)
330382
#define HAS_MAX_TC 1
331383
#endif
332-
#if TEMP_SENSOR_0_IS_MAX6675 || TEMP_SENSOR_1_IS_MAX6675 || TEMP_SENSOR_REDUNDANT_IS_MAX6675
384+
#if TEMP_SENSOR_0_IS_MAX6675 || TEMP_SENSOR_1_IS_MAX6675 || TEMP_SENSOR_2_IS_MAX6675 || TEMP_SENSOR_REDUNDANT_IS_MAX6675
333385
#define HAS_MAX6675 1
334386
#endif
335-
#if TEMP_SENSOR_0_IS_MAX31855 || TEMP_SENSOR_1_IS_MAX31855 || TEMP_SENSOR_REDUNDANT_IS_MAX31855
387+
#if TEMP_SENSOR_0_IS_MAX31855 || TEMP_SENSOR_1_IS_MAX31855 || TEMP_SENSOR_2_IS_MAX31855 || TEMP_SENSOR_REDUNDANT_IS_MAX31855
336388
#define HAS_MAX31855 1
337389
#endif
338-
#if TEMP_SENSOR_0_IS_MAX31865 || TEMP_SENSOR_1_IS_MAX31865 || TEMP_SENSOR_REDUNDANT_IS_MAX31865
390+
#if TEMP_SENSOR_0_IS_MAX31865 || TEMP_SENSOR_1_IS_MAX31865 || TEMP_SENSOR_2_IS_MAX31865 || TEMP_SENSOR_REDUNDANT_IS_MAX31865
339391
#define HAS_MAX31865 1
340392
#endif
341393

342-
#if TEMP_SENSOR_2 == -4
343-
#define TEMP_SENSOR_2_IS_AD8495 1
344-
#elif TEMP_SENSOR_2 == -3
345-
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_2."
346-
#elif TEMP_SENSOR_2 == -2
347-
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_2."
348-
#elif TEMP_SENSOR_2 == -1
349-
#define TEMP_SENSOR_2_IS_AD595 1
350-
#elif TEMP_SENSOR_2 > 0
351-
#define TEMP_SENSOR_2_IS_THERMISTOR 1
352-
#if TEMP_SENSOR_2 == 1000
353-
#define TEMP_SENSOR_2_IS_CUSTOM 1
354-
#elif TEMP_SENSOR_2 == 998 || TEMP_SENSOR_2 == 999
355-
#define TEMP_SENSOR_2_IS_DUMMY 1
356-
#endif
357-
#else
358-
#undef HEATER_2_MINTEMP
359-
#undef HEATER_2_MAXTEMP
360-
#endif
361-
362394
#if TEMP_SENSOR_3 == -4
363395
#define TEMP_SENSOR_3_IS_AD8495 1
364396
#elif TEMP_SENSOR_3 == -3

Marlin/src/inc/Conditionals_post.h

Lines changed: 77 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -723,19 +723,19 @@
723723
#define TEMP_0_SCK_PIN MAX31855_SCK_PIN
724724
#endif
725725

726-
#elif TEMP_SENSOR_1_IS_MAX31865
727-
#if !PIN_EXISTS(TEMP_1_MISO) // DO
726+
#elif TEMP_SENSOR_0_IS_MAX31865
727+
#if !PIN_EXISTS(TEMP_0_MISO) // DO
728728
#if PIN_EXISTS(MAX31865_MISO)
729-
#define TEMP_1_MISO_PIN MAX31865_MISO_PIN
729+
#define TEMP_0_MISO_PIN MAX31865_MISO_PIN
730730
#elif PIN_EXISTS(MAX31865_DO)
731-
#define TEMP_1_MISO_PIN MAX31865_DO_PIN
731+
#define TEMP_0_MISO_PIN MAX31865_DO_PIN
732732
#endif
733733
#endif
734-
#if !PIN_EXISTS(TEMP_1_SCK) && PIN_EXISTS(MAX31865_SCK)
735-
#define TEMP_1_SCK_PIN MAX31865_SCK_PIN
734+
#if !PIN_EXISTS(TEMP_0_SCK) && PIN_EXISTS(MAX31865_SCK)
735+
#define TEMP_0_SCK_PIN MAX31865_SCK_PIN
736736
#endif
737-
#if !PIN_EXISTS(TEMP_1_MOSI) && PIN_EXISTS(MAX31865_MOSI) // MOSI for '65 only
738-
#define TEMP_1_MOSI_PIN MAX31865_MOSI_PIN
737+
#if !PIN_EXISTS(TEMP_0_MOSI) && PIN_EXISTS(MAX31865_MOSI) // MOSI for '65 only
738+
#define TEMP_0_MOSI_PIN MAX31865_MOSI_PIN
739739
#endif
740740
#endif
741741

@@ -819,6 +819,75 @@
819819

820820
#endif // TEMP_SENSOR_IS_MAX_TC(1)
821821

822+
#if TEMP_SENSOR_IS_MAX_TC(2) || (TEMP_SENSOR_IS_MAX_TC(REDUNDANT) && REDUNDANT_TEMP_MATCH(SOURCE, E2))
823+
824+
#if !PIN_EXISTS(TEMP_2_CS) // SS3, CS3
825+
#if PIN_EXISTS(MAX6675_SS3)
826+
#define TEMP_2_CS_PIN MAX6675_SS3_PIN
827+
#elif PIN_EXISTS(MAX6675_CS)
828+
#define TEMP_2_CS_PIN MAX6675_CS3_PIN
829+
#elif PIN_EXISTS(MAX31855_SS3)
830+
#define TEMP_2_CS_PIN MAX31855_SS3_PIN
831+
#elif PIN_EXISTS(MAX31855_CS3)
832+
#define TEMP_2_CS_PIN MAX31855_CS3_PIN
833+
#elif PIN_EXISTS(MAX31865_SS3)
834+
#define TEMP_2_CS_PIN MAX31865_SS3_PIN
835+
#elif PIN_EXISTS(MAX31865_CS3)
836+
#define TEMP_2_CS_PIN MAX31865_CS3_PIN
837+
#endif
838+
#endif
839+
840+
#if TEMP_SENSOR_2_IS_MAX6675
841+
#if !PIN_EXISTS(TEMP_2_MISO) // DO
842+
#if PIN_EXISTS(MAX6675_MISO)
843+
#define TEMP_2_MISO_PIN MAX6675_MISO_PIN
844+
#elif PIN_EXISTS(MAX6675_DO)
845+
#define TEMP_2_MISO_PIN MAX6675_DO_PIN
846+
#endif
847+
#endif
848+
#if !PIN_EXISTS(TEMP_2_SCK) && PIN_EXISTS(MAX6675_SCK)
849+
#define TEMP_2_SCK_PIN MAX6675_SCK_PIN
850+
#endif
851+
852+
#elif TEMP_SENSOR_2_IS_MAX31855
853+
#if !PIN_EXISTS(TEMP_2_MISO) // DO
854+
#if PIN_EXISTS(MAX31855_MISO)
855+
#define TEMP_2_MISO_PIN MAX31855_MISO_PIN
856+
#elif PIN_EXISTS(MAX31855_DO)
857+
#define TEMP_2_MISO_PIN MAX31855_DO_PIN
858+
#endif
859+
#endif
860+
#if !PIN_EXISTS(TEMP_2_SCK) && PIN_EXISTS(MAX31855_SCK)
861+
#define TEMP_2_SCK_PIN MAX31855_SCK_PIN
862+
#endif
863+
864+
#elif TEMP_SENSOR_2_IS_MAX31865
865+
#if !PIN_EXISTS(TEMP_2_MISO) // DO
866+
#if PIN_EXISTS(MAX31865_MISO)
867+
#define TEMP_2_MISO_PIN MAX31865_MISO_PIN
868+
#elif PIN_EXISTS(MAX31865_DO)
869+
#define TEMP_2_MISO_PIN MAX31865_DO_PIN
870+
#endif
871+
#endif
872+
#if !PIN_EXISTS(TEMP_2_SCK) && PIN_EXISTS(MAX31865_SCK)
873+
#define TEMP_2_SCK_PIN MAX31865_SCK_PIN
874+
#endif
875+
#if !PIN_EXISTS(TEMP_2_MOSI) && PIN_EXISTS(MAX31865_MOSI) // MOSI for '65 only
876+
#define TEMP_2_MOSI_PIN MAX31865_MOSI_PIN
877+
#endif
878+
#endif
879+
880+
// Software SPI - enable if MISO/SCK are defined.
881+
#if PIN_EXISTS(TEMP_2_MISO) && PIN_EXISTS(TEMP_2_SCK) && DISABLED(TEMP_SENSOR_2_FORCE_HW_SPI)
882+
#if TEMP_SENSOR_2_IS_MAX31865 && !PIN_EXISTS(TEMP_2_MOSI)
883+
#error "TEMP_SENSOR_2 MAX31865 requires TEMP_2_MOSI_PIN defined for Software SPI. To use Hardware SPI instead, undefine MISO/SCK or enable TEMP_SENSOR_2_FORCE_HW_SPI."
884+
#else
885+
#define TEMP_SENSOR_2_HAS_SPI_PINS 1
886+
#endif
887+
#endif
888+
889+
#endif // TEMP_SENSOR_IS_MAX_TC(2)
890+
822891
//
823892
// User-defined thermocouple libraries
824893
//

Marlin/src/inc/SanityCheck.h

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -416,17 +416,17 @@
416416
#elif defined(CHDK)
417417
#error "CHDK is now CHDK_PIN."
418418
#elif ANY_PIN( \
419-
MAX6675_SS, MAX6675_SS2, MAX6675_CS, MAX6675_CS2, \
420-
MAX31855_SS, MAX31855_SS2, MAX31855_CS, MAX31855_CS2, \
421-
MAX31865_SS, MAX31865_SS2, MAX31865_CS, MAX31865_CS2)
422-
#warning "MAX*_SS_PIN, MAX*_SS2_PIN, MAX*_CS_PIN, and MAX*_CS2_PIN are deprecated and will be removed in a future version. Please use TEMP_0_CS_PIN/TEMP_1_CS_PIN instead."
419+
MAX6675_SS, MAX6675_SS2, MAX6675_SS3, MAX6675_CS, MAX6675_CS2, MAX6675_CS3,\
420+
MAX31855_SS, MAX31855_SS2, MAX31855_SS3, MAX31855_CS, MAX31855_CS2, MAX31855_CS3, \
421+
MAX31865_SS, MAX31865_SS2, MAX31865_SS3, MAX31865_CS, MAX31865_CS2, MAX31865_CS3)
422+
#warning "MAX*_SS_PIN, MAX*_SS2_PIN, MAX*_SS3_PIN, MAX*_CS_PIN, MAX*_CS2_PIN, and MAX*_CS3_PIN, are deprecated and will be removed in a future version. Please use TEMP_0_CS_PIN/TEMP_1_CS_PIN/TEMP_2_CS_PIN instead."
423423
#elif ANY_PIN(MAX6675_SCK, MAX31855_SCK, MAX31865_SCK)
424-
#warning "MAX*_SCK_PIN is deprecated and will be removed in a future version. Please use TEMP_0_SCK_PIN/TEMP_1_SCK_PIN instead."
424+
#warning "MAX*_SCK_PIN is deprecated and will be removed in a future version. Please use TEMP_0_SCK_PIN/TEMP_1_SCK_PIN/TEMP_2_SCK_PIN instead."
425425
#elif ANY_PIN(MAX6675_MISO, MAX6675_DO, MAX31855_MISO, MAX31855_DO, MAX31865_MISO, MAX31865_DO)
426-
#warning "MAX*_MISO_PIN and MAX*_DO_PIN are deprecated and will be removed in a future version. Please use TEMP_0_MISO_PIN/TEMP_1_MISO_PIN instead."
426+
#warning "MAX*_MISO_PIN and MAX*_DO_PIN are deprecated and will be removed in a future version. Please use TEMP_0_MISO_PIN/TEMP_1_MISO_PIN/TEMP_2_MISO_PIN instead."
427427
#elif PIN_EXISTS(MAX31865_MOSI)
428-
#warning "MAX31865_MOSI_PIN is deprecated and will be removed in a future version. Please use TEMP_0_MOSI_PIN/TEMP_1_MOSI_PIN instead."
429-
#elif ANY_PIN(THERMO_CS1_PIN, THERMO_CS2_PIN, THERMO_DO_PIN, THERMO_SCK_PIN)
428+
#warning "MAX31865_MOSI_PIN is deprecated and will be removed in a future version. Please use TEMP_0_MOSI_PIN/TEMP_1_MOSI_PIN/TEMP_2_MOSI_PIN instead."
429+
#elif ANY_PIN(THERMO_CS1_PIN, THERMO_CS2_PIN, THERMO_CS3_PIN, THERMO_DO_PIN, THERMO_SCK_PIN)
430430
#error "THERMO_*_PIN is now TEMP_n_CS_PIN, TEMP_n_SCK_PIN, TEMP_n_MOSI_PIN, TEMP_n_MISO_PIN."
431431
#elif defined(MAX31865_SENSOR_OHMS)
432432
#error "MAX31865_SENSOR_OHMS is now MAX31865_SENSOR_OHMS_0."
@@ -2340,6 +2340,13 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
23402340
#error "MAX31865_SENSOR_OHMS_1 and MAX31865_CALIBRATION_OHMS_1 must be set if TEMP_SENSOR_1/TEMP_SENSOR_REDUNDANT is MAX31865."
23412341
#endif
23422342
#endif
2343+
#if TEMP_SENSOR_2_IS_MAX31865 || (TEMP_SENSOR_REDUNDANT_IS_MAX31865 && REDUNDANT_TEMP_MATCH(SOURCE, E2))
2344+
#if !defined(MAX31865_SENSOR_WIRES_2) || !WITHIN(MAX31865_SENSOR_WIRES_2, 2, 4)
2345+
#error "MAX31865_SENSOR_WIRES_2 must be defined as an integer between 2 and 4."
2346+
#elif !defined(MAX31865_SENSOR_OHMS_2) || !defined(MAX31865_CALIBRATION_OHMS_2)
2347+
#error "MAX31865_SENSOR_OHMS_2 and MAX31865_CALIBRATION_OHMS_2 must be set if TEMP_SENSOR_2/TEMP_SENSOR_REDUNDANT is MAX31865."
2348+
#endif
2349+
#endif
23432350

23442351
/**
23452352
* Redundant temperature sensor config

0 commit comments

Comments
 (0)