From 2c61e6ba2802919ec8c2caacc34865335464098f Mon Sep 17 00:00:00 2001 From: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com> Date: Thu, 23 Jul 2020 22:27:40 -0400 Subject: [PATCH] Add CONTROLLER_FAN_IGNORE_Z (#18735) --- Marlin/Configuration_adv.h | 1 + Marlin/src/feature/controllerfan.cpp | 32 ++++++++------------ Marlin/src/feature/mmu2/mmu2.cpp | 2 +- Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h | 4 +++ buildroot/tests/mega2560-tests | 6 ++-- 5 files changed, 23 insertions(+), 22 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 0945a6c43..f27e2722c 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -375,6 +375,7 @@ #if ENABLED(USE_CONTROLLER_FAN) //#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan //#define CONTROLLER_FAN_USE_Z_ONLY // With this option only the Z axis is considered + //#define CONTROLLER_FAN_IGNORE_Z // Ignore Z stepper. Useful when stepper timeout is disabled. #define CONTROLLERFAN_SPEED_MIN 0 // (0-255) Minimum speed. (If set below this value the fan is turned off.) #define CONTROLLERFAN_SPEED_ACTIVE 255 // (0-255) Active speed, used when any motor is enabled #define CONTROLLERFAN_SPEED_IDLE 0 // (0-255) Idle speed, used when motors are disabled diff --git a/Marlin/src/feature/controllerfan.cpp b/Marlin/src/feature/controllerfan.cpp index c9a2dad03..fa5a86b01 100644 --- a/Marlin/src/feature/controllerfan.cpp +++ b/Marlin/src/feature/controllerfan.cpp @@ -55,30 +55,24 @@ void ControllerFan::update() { #define MOTOR_IS_ON(A,B) (A##_ENABLE_READ() == bool(B##_ENABLE_ON)) #define _OR_ENABLED_E(N) || MOTOR_IS_ON(E##N,E) - const bool motor_on = MOTOR_IS_ON(Z,Z) - #if HAS_Z2_ENABLE - || MOTOR_IS_ON(Z2,Z) - #endif - #if HAS_Z3_ENABLE - || MOTOR_IS_ON(Z3,Z) - #endif - #if HAS_Z4_ENABLE - || MOTOR_IS_ON(Z4,Z) - #endif - || (DISABLED(CONTROLLER_FAN_USE_Z_ONLY) && ( - MOTOR_IS_ON(X,X) || MOTOR_IS_ON(Y,Y) - #if HAS_X2_ENABLE - || MOTOR_IS_ON(X2,X) - #endif - #if HAS_Y2_ENABLE - || MOTOR_IS_ON(Y2,Y) - #endif + const bool motor_on = ( + ( DISABLED(CONTROLLER_FAN_IGNORE_Z) && + ( MOTOR_IS_ON(Z,Z) + || TERN0(HAS_Z2_ENABLE, MOTOR_IS_ON(Z2,Z)) + || TERN0(HAS_Z3_ENABLE, MOTOR_IS_ON(Z3,Z)) + || TERN0(HAS_Z4_ENABLE, MOTOR_IS_ON(Z4,Z)) + ) + ) || ( + DISABLED(CONTROLLER_FAN_USE_Z_ONLY) && + ( MOTOR_IS_ON(X,X) || MOTOR_IS_ON(Y,Y) + || TERN0(HAS_X2_ENABLE, MOTOR_IS_ON(X2,X)) + || TERN0(HAS_Y2_ENABLE, MOTOR_IS_ON(Y2,Y)) #if E_STEPPERS REPEAT(E_STEPPERS, _OR_ENABLED_E) #endif ) ) - ; + ); // If any of the drivers or the heated bed are enabled... if (motor_on || TERN0(HAS_HEATED_BED, thermalManager.temp_bed.soft_pwm_amount > 0)) diff --git a/Marlin/src/feature/mmu2/mmu2.cpp b/Marlin/src/feature/mmu2/mmu2.cpp index aeff7918d..35f2db45a 100644 --- a/Marlin/src/feature/mmu2/mmu2.cpp +++ b/Marlin/src/feature/mmu2/mmu2.cpp @@ -466,7 +466,7 @@ void MMU2::check_version() { } } -static bool mmu2_not_responding() { +static void mmu2_not_responding() { LCD_MESSAGEPGM(MSG_MMU2_NOT_RESPONDING); BUZZ(100, 659); BUZZ(200, 698); diff --git a/Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h b/Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h index 59fd1e54f..efa991642 100644 --- a/Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h +++ b/Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h @@ -197,6 +197,10 @@ #endif #endif +#ifndef CONTROLLER_FAN_PIN + #define CONTROLLER_FAN_PIN EX2_FAN_PIN +#endif + // // Misc. Functions // diff --git a/buildroot/tests/mega2560-tests b/buildroot/tests/mega2560-tests index 3a969c9cf..a3920b946 100755 --- a/buildroot/tests/mega2560-tests +++ b/buildroot/tests/mega2560-tests @@ -103,7 +103,8 @@ exec_test $1 $2 "MEGACONTROLLER | Minipanel | M100 | PWM_MOTOR_CURRENT | PRINTCO restore_configs opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO opt_set LCD_LANGUAGE el_gr -opt_enable MIXING_EXTRUDER GRADIENT_MIX GRADIENT_VTOOL CR10_STOCKDISPLAY +opt_enable MIXING_EXTRUDER GRADIENT_MIX GRADIENT_VTOOL CR10_STOCKDISPLAY \ + USE_CONTROLLER_FAN CONTROLLER_FAN_EDITABLE CONTROLLER_FAN_IGNORE_Z opt_set MIXING_STEPPERS 5 opt_set LCD_LANGUAGE ru exec_test $1 $2 "Azteeg X3 | Mixing Extruder (x5) | Gradient Mix | Greek" @@ -141,7 +142,8 @@ opt_enable COREYX USE_XMAX_PLUG MIXING_EXTRUDER GRADIENT_MIX \ FIX_MOUNTED_PROBE AUTO_BED_LEVELING_LINEAR DEBUG_LEVELING_FEATURE FILAMENT_WIDTH_SENSOR \ Z_SAFE_HOMING SHOW_TEMP_ADC_VALUES HOME_Y_BEFORE_X EMERGENCY_PARSER \ SD_ABORT_ON_ENDSTOP_HIT HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT ADVANCED_OK M114_DETAIL \ - VOLUMETRIC_DEFAULT_ON NO_WORKSPACE_OFFSETS EXTRA_FAN_SPEED FWRETRACT + VOLUMETRIC_DEFAULT_ON NO_WORKSPACE_OFFSETS EXTRA_FAN_SPEED FWRETRACT \ + USE_CONTROLLER_FAN CONTROLLER_FAN_EDITABLE CONTROLLER_FAN_USE_Z_ONLY opt_set FAN_MIN_PWM 50 opt_set FAN_KICKSTART_TIME 100 opt_set XY_FREQUENCY_LIMIT 15