Skip to content

Commit 7d53ea3

Browse files
committed
move fan config/sanity
1 parent 2789cfe commit 7d53ea3

File tree

3 files changed

+48
-44
lines changed

3 files changed

+48
-44
lines changed

Marlin/src/inc/Conditionals_adv.h

-32
Original file line numberDiff line numberDiff line change
@@ -1238,38 +1238,6 @@
12381238
#define FAN_KICKSTART_POWER 180
12391239
#endif
12401240

1241-
/**
1242-
* MIN/MAX fan PWM scaling
1243-
*/
1244-
#ifndef FAN_OFF_PWM
1245-
#define FAN_OFF_PWM 0
1246-
#endif
1247-
#ifndef FAN_MIN_PWM
1248-
#if FAN_OFF_PWM > 0
1249-
#define FAN_MIN_PWM (FAN_OFF_PWM + 1)
1250-
#else
1251-
#define FAN_MIN_PWM 0
1252-
#endif
1253-
#endif
1254-
#ifndef FAN_MAX_PWM
1255-
#define FAN_MAX_PWM 255
1256-
#endif
1257-
#if FAN_MIN_PWM < 0 || FAN_MIN_PWM > 255
1258-
#error "FAN_MIN_PWM must be a value from 0 to 255."
1259-
#elif FAN_MAX_PWM < 0 || FAN_MAX_PWM > 255
1260-
#error "FAN_MAX_PWM must be a value from 0 to 255."
1261-
#elif FAN_MIN_PWM > FAN_MAX_PWM
1262-
#error "FAN_MIN_PWM must be less than or equal to FAN_MAX_PWM."
1263-
#elif FAN_OFF_PWM > FAN_MIN_PWM
1264-
#error "FAN_OFF_PWM must be less than or equal to FAN_MIN_PWM."
1265-
#endif
1266-
1267-
#if FAN_MIN_PWM == 0 && FAN_MAX_PWM == 255
1268-
#define CALC_FAN_SPEED(f) (f ?: FAN_OFF_PWM)
1269-
#else
1270-
#define CALC_FAN_SPEED(f) (f ? map(f, 1, 255, FAN_MIN_PWM, FAN_MAX_PWM) : FAN_OFF_PWM)
1271-
#endif
1272-
12731241
// Input shaping
12741242
#if EITHER(INPUT_SHAPING_X, INPUT_SHAPING_Y)
12751243
#define HAS_ZV_SHAPING 1

Marlin/src/inc/Conditionals_post.h

+25-4
Original file line numberDiff line numberDiff line change
@@ -2719,11 +2719,8 @@
27192719
#define HAS_FAN 1
27202720
#endif
27212721

2722-
/**
2723-
* Part Cooling fan multipliexer
2724-
*/
27252722
#if PIN_EXISTS(FANMUX0)
2726-
#define HAS_FANMUX 1
2723+
#define HAS_FANMUX 1 // Part Cooling fan multipliexer
27272724
#endif
27282725

27292726
/**
@@ -2747,6 +2744,30 @@
27472744
#endif
27482745
#endif
27492746

2747+
/**
2748+
* MIN/MAX fan PWM scaling
2749+
*/
2750+
#if EITHER(HAS_FAN, USE_CONTROLLER_FAN)
2751+
#ifndef FAN_OFF_PWM
2752+
#define FAN_OFF_PWM 0
2753+
#endif
2754+
#ifndef FAN_MIN_PWM
2755+
#if FAN_OFF_PWM > 0
2756+
#define FAN_MIN_PWM (FAN_OFF_PWM + 1)
2757+
#else
2758+
#define FAN_MIN_PWM 0
2759+
#endif
2760+
#endif
2761+
#ifndef FAN_MAX_PWM
2762+
#define FAN_MAX_PWM 255
2763+
#endif
2764+
#if FAN_MIN_PWM == 0 && FAN_MAX_PWM == 255
2765+
#define CALC_FAN_SPEED(f) (f ?: FAN_OFF_PWM)
2766+
#else
2767+
#define CALC_FAN_SPEED(f) (f ? map(f, 1, 255, FAN_MIN_PWM, FAN_MAX_PWM) : FAN_OFF_PWM)
2768+
#endif
2769+
#endif
2770+
27502771
// Servos
27512772
#if PIN_EXISTS(SERVO0) && NUM_SERVOS > 0
27522773
#define HAS_SERVO_0 1

Marlin/src/inc/SanityCheck.h

+23-8
Original file line numberDiff line numberDiff line change
@@ -1560,11 +1560,11 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE, "Movement bounds (X_MIN_POS, X_MAX_POS
15601560
/**
15611561
* Part-Cooling Fan Multiplexer requirements
15621562
*/
1563-
#if PIN_EXISTS(FANMUX1)
1564-
#if !HAS_FANMUX
1565-
#error "FANMUX0_PIN must be set before FANMUX1_PIN can be set."
1566-
#endif
1567-
#elif PIN_EXISTS(FANMUX2)
1563+
#if HAS_FANMUX && !HAS_FAN0
1564+
#error "FAN0_PIN must be defined to use Fan Multiplexing."
1565+
#elif PIN_EXISTS(FANMUX1) && !PIN_EXISTS(FANMUX0)
1566+
#error "FANMUX0_PIN must be set before FANMUX1_PIN can be set."
1567+
#elif PIN_EXISTS(FANMUX2) && !PINS_EXIST(FANMUX0, FANMUX1)
15681568
#error "FANMUX0_PIN and FANMUX1_PIN must be set before FANMUX2_PIN can be set."
15691569
#endif
15701570

@@ -1608,7 +1608,7 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE, "Movement bounds (X_MIN_POS, X_MAX_POS
16081608
#endif
16091609

16101610
#if ENABLED(MPC_INCLUDE_FAN)
1611-
#if FAN_COUNT < 1
1611+
#if !HAS_FAN
16121612
#error "MPC_INCLUDE_FAN requires at least one fan."
16131613
#endif
16141614
#if FAN_COUNT < HOTENDS
@@ -1627,8 +1627,8 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE, "Movement bounds (X_MIN_POS, X_MAX_POS
16271627
#error "To use BED_LIMIT_SWITCHING you must disable PIDTEMPBED."
16281628
#endif
16291629

1630-
// Fan Kickstart
1631-
#if FAN_KICKSTART_TIME && defined(FAN_KICKSTART_POWER) && !WITHIN(FAN_KICKSTART_POWER, 64, 255)
1630+
// Fan Kickstart power
1631+
#if FAN_KICKSTART_TIME && !WITHIN(FAN_KICKSTART_POWER, 64, 255)
16321632
#error "FAN_KICKSTART_POWER must be an integer from 64 to 255."
16331633
#endif
16341634

@@ -2454,6 +2454,21 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE, "Movement bounds (X_MIN_POS, X_MAX_POS
24542454
#endif
24552455
#endif
24562456

2457+
/**
2458+
* Make sure FAN_*_PWM values are sensible
2459+
*/
2460+
#if EITHER(HAS_FAN, USE_CONTROLLER_FAN)
2461+
#if !WITHIN(FAN_MIN_PWM, 0, 255)
2462+
#error "FAN_MIN_PWM must be a value from 0 to 255."
2463+
#elif !WITHIN(FAN_MAX_PWM, 0, 255)
2464+
#error "FAN_MAX_PWM must be a value from 0 to 255."
2465+
#elif FAN_MIN_PWM > FAN_MAX_PWM
2466+
#error "FAN_MIN_PWM must be less than or equal to FAN_MAX_PWM."
2467+
#elif FAN_OFF_PWM > FAN_MIN_PWM
2468+
#error "FAN_OFF_PWM must be less than or equal to FAN_MIN_PWM."
2469+
#endif
2470+
#endif
2471+
24572472
#ifdef REDUNDANT_PART_COOLING_FAN
24582473
#if FAN_COUNT < 2
24592474
#error "REDUNDANT_PART_COOLING_FAN requires a board with at least two PWM fans."

0 commit comments

Comments
 (0)