Skip to content

Commit 4e4e9be

Browse files
ladismrkoljmh-dm
authored andcommitted
🔧 Chamber Fan index option (MarlinFirmware#23262)
1 parent c95a296 commit 4e4e9be

4 files changed

Lines changed: 11 additions & 4 deletions

File tree

‎Marlin/Configuration_adv.h‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,8 @@
186186

187187
//#define CHAMBER_FAN // Enable a fan on the chamber
188188
#if ENABLED(CHAMBER_FAN)
189-
#define CHAMBER_FAN_MODE 2 // Fan control mode: 0=Static; 1=Linear increase when temp is higher than target; 2=V-shaped curve; 3=similar to 1 but fan is always on.
189+
//#define CHAMBER_FAN_INDEX 2 // Index of a fan to repurpose as the chamber fan. (Default: first unused fan)
190+
#define CHAMBER_FAN_MODE 2 // Fan control mode: 0=Static; 1=Linear increase when temp is higher than target; 2=V-shaped curve; 3=similar to 1 but fan is always on.
190191
#if CHAMBER_FAN_MODE == 0
191192
#define CHAMBER_FAN_BASE 255 // Chamber fan PWM (0-255)
192193
#elif CHAMBER_FAN_MODE == 1

‎Marlin/src/inc/SanityCheck.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2270,8 +2270,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
22702270
#error "LASER_COOLANT_FLOW_METER requires FLOWMETER_PIN and LASER_FEATURE."
22712271
#endif
22722272

2273-
#if ENABLED(CHAMBER_FAN) && !(defined(CHAMBER_FAN_MODE) && WITHIN(CHAMBER_FAN_MODE, 0, 2))
2274-
#error "CHAMBER_FAN_MODE must be between 0 and 2."
2273+
#if ENABLED(CHAMBER_FAN) && !(defined(CHAMBER_FAN_MODE) && WITHIN(CHAMBER_FAN_MODE, 0, 3))
2274+
#error "CHAMBER_FAN_MODE must be between 0 and 3."
22752275
#endif
22762276

22772277
#if ENABLED(CHAMBER_VENT)

‎Marlin/src/inc/Warnings.cpp‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,10 @@
524524
#endif
525525
#endif
526526

527+
#if ENABLED(CHAMBER_FAN) && !defined(CHAMBER_FAN_INDEX)
528+
#warning "Auto-assigned CHAMBER_FAN_INDEX to the first free FAN pin."
529+
#endif
530+
527531
#if IS_LEGACY_TFT
528532
#warning "Don't forget to update your TFT settings in Configuration.h."
529533
#endif

‎Marlin/src/module/temperature.cpp‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -865,7 +865,9 @@ int16_t Temperature::getHeaterPower(const heater_id_t heater_id) {
865865
#define INIT_CHAMBER_AUTO_FAN_PIN(P) SET_OUTPUT(P)
866866
#endif
867867

868-
#define CHAMBER_FAN_INDEX HOTENDS
868+
#ifndef CHAMBER_FAN_INDEX
869+
#define CHAMBER_FAN_INDEX HOTENDS
870+
#endif
869871

870872
void Temperature::update_autofans() {
871873
#define _EFAN(B,A) _EFANOVERLAP(A,B) ? B :

0 commit comments

Comments
 (0)