From 06d46a0ef96a766b114db5902beccb86829ba57c Mon Sep 17 00:00:00 2001 From: "Alexey D. Filimonov" <alexey@filimonic.net> Date: Sat, 5 Aug 2023 03:07:56 +0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20AUTO=5FPOWER=5FSPINDLE=5FLASER=20(#?= =?UTF-8?q?25739)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Marlin/Configuration.h | 11 ++++++----- Marlin/src/feature/power.cpp | 8 ++++++++ Marlin/src/inc/Conditionals_post.h | 3 +++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 4dbc2a8c11e..22b060dcb22 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -412,11 +412,12 @@ //#define AUTO_POWER_CONTROL // Enable automatic control of the PS_ON pin #if ENABLED(AUTO_POWER_CONTROL) - #define AUTO_POWER_FANS // Turn on PSU if fans need power - #define AUTO_POWER_E_FANS - #define AUTO_POWER_CONTROLLERFAN - #define AUTO_POWER_CHAMBER_FAN - #define AUTO_POWER_COOLER_FAN + #define AUTO_POWER_FANS // Turn on PSU for fans + #define AUTO_POWER_E_FANS // Turn on PSU for E Fans + #define AUTO_POWER_CONTROLLERFAN // Turn on PSU for Controller Fan + #define AUTO_POWER_CHAMBER_FAN // Turn on PSU for Chamber Fan + #define AUTO_POWER_COOLER_FAN // Turn on PSU for Cooler Fan + #define AUTO_POWER_SPINDLE_LASER // Turn on PSU for Spindle/Laser #define POWER_TIMEOUT 30 // (s) Turn off power if the machine is idle for this duration //#define POWER_OFF_DELAY 60 // (s) Delay of poweroff after M81 command. Useful to let fans run for extra time. #endif diff --git a/Marlin/src/feature/power.cpp b/Marlin/src/feature/power.cpp index d0f8a66fec3..e908c8292fd 100644 --- a/Marlin/src/feature/power.cpp +++ b/Marlin/src/feature/power.cpp @@ -53,6 +53,10 @@ bool Power::psu_on; #include "controllerfan.h" #endif + #if ANY(LASER_FEATURE, SPINDLE_FEATURE) + #include "spindle_laser.h" + #endif + millis_t Power::lastPowerOn; #endif @@ -196,6 +200,10 @@ void Power::power_off() { if (controllerFan.state()) return true; #endif + #if ANY(LASER_FEATURE, SPINDLE_FEATURE) + if (TERN0(AUTO_POWER_SPINDLE_LASER, cutter.enabled())) return true; + #endif + if (TERN0(AUTO_POWER_CHAMBER_FAN, thermalManager.chamberfan_speed)) return true; diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index 13f20114e50..8f3a2eee27b 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -2623,6 +2623,9 @@ #if !HAS_AUTO_COOLER_FAN || AUTO_COOLER_IS_E #undef AUTO_POWER_COOLER_FAN #endif +#if !HAS_CUTTER + #undef AUTO_POWER_SPINDLE_LASER +#endif /** * Controller Fan Settings