diff --git a/Marlin/Conditionals_post.h b/Marlin/Conditionals_post.h index 95054af1e0..5dc5abc482 100644 --- a/Marlin/Conditionals_post.h +++ b/Marlin/Conditionals_post.h @@ -509,6 +509,7 @@ #define HAS_E4_STEP (PIN_EXISTS(E4_STEP)) #define HAS_DIGIPOTSS (PIN_EXISTS(DIGIPOTSS)) #define HAS_BUZZER (PIN_EXISTS(BEEPER) || ENABLED(LCD_USE_I2C_BUZZER)) + #define HAS_CASE_LIGHT (PIN_EXISTS(CASE_LIGHT)) #define HAS_MOTOR_CURRENT_PWM (PIN_EXISTS(MOTOR_CURRENT_PWM_XY) || PIN_EXISTS(MOTOR_CURRENT_PWM_Z) || PIN_EXISTS(MOTOR_CURRENT_PWM_E)) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 067d86c485..95eb0c4b0f 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 918bae1a0d..a0f2b900df 100755 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -867,6 +867,18 @@ void setup_photpin() { #endif } +#if HAS_CASE_LIGHT + + void setup_case_light() { + #if ENABLED(CASE_LIGHT_DEFAULT_ON) + OUT_WRITE(CASE_LIGHT_PIN, HIGH); + #else + OUT_WRITE(CASE_LIGHT_PIN, LOW); + #endif + } + +#endif + void setup_powerhold() { #if HAS_SUICIDE OUT_WRITE(SUICIDE_PIN, HIGH); @@ -7087,6 +7099,38 @@ inline void gcode_M907() { #endif // HAS_MICROSTEPS +#if HAS_CASE_LIGHT + /** + * M355: Turn case lights on/off + * + * S change state on/off or sets PWM + * + */ + inline void gcode_M355() { + if (code_seen('S')) { + SERIAL_ECHO_START; + SERIAL_ECHOPGM("Case lights "); + byte light_pwm = code_value_byte(); + switch (light_pwm) { + case 0: // Disable lights + SERIAL_ECHOPGM("off"); + break; + case 1: // Enable lights + light_pwm = 255; + SERIAL_ECHOPGM("on"); + break; + default: // Enable lights PWM + SERIAL_ECHOPAIR("set to: ", (int)map(light_pwm, 0, 255, 0, 100)); + SERIAL_CHAR('%'); + break; + } + analogWrite(CASE_LIGHT_PIN, light_pwm); + SERIAL_EOL; + } + } + +#endif // HAS_CASE_LIGHT + #if ENABLED(MIXING_EXTRUDER) /** @@ -8195,6 +8239,14 @@ void process_next_command() { #endif // HAS_MICROSTEPS + #if HAS_CASE_LIGHT + + case 355: // M355 Turn case lights on/off + gcode_M355(); + break; + + #endif // HAS_CASE_LIGHT + case 999: // M999: Restart after being Stopped gcode_M999(); break; @@ -9696,6 +9748,10 @@ void setup() { setup_photpin(); servo_init(); + #if HAS_CASE_LIGHT + setup_case_light(); + #endif + #if HAS_BED_PROBE endstops.enable_z_probe(false); #endif diff --git a/Marlin/example_configurations/Cartesio/Configuration_adv.h b/Marlin/example_configurations/Cartesio/Configuration_adv.h index 0cef74a093..dc8b7823d0 100644 --- a/Marlin/example_configurations/Cartesio/Configuration_adv.h +++ b/Marlin/example_configurations/Cartesio/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 35 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/Felix/Configuration_adv.h b/Marlin/example_configurations/Felix/Configuration_adv.h index 7139ac135c..c3d24860ab 100644 --- a/Marlin/example_configurations/Felix/Configuration_adv.h +++ b/Marlin/example_configurations/Felix/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/Hephestos/Configuration_adv.h b/Marlin/example_configurations/Hephestos/Configuration_adv.h index 8f04e5ea3c..e86bcbe443 100644 --- a/Marlin/example_configurations/Hephestos/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h index b221ab74c8..4ab583e3b2 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/K8200/Configuration_adv.h b/Marlin/example_configurations/K8200/Configuration_adv.h index 8ea34fc927..8bc63b84a2 100644 --- a/Marlin/example_configurations/K8200/Configuration_adv.h +++ b/Marlin/example_configurations/K8200/Configuration_adv.h @@ -230,6 +230,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/K8400/Configuration_adv.h b/Marlin/example_configurations/K8400/Configuration_adv.h index 3cc822cc45..1061930297 100644 --- a/Marlin/example_configurations/K8400/Configuration_adv.h +++ b/Marlin/example_configurations/K8400/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/RigidBot/Configuration_adv.h b/Marlin/example_configurations/RigidBot/Configuration_adv.h index 71166d48d6..e77c60c9cb 100644 --- a/Marlin/example_configurations/RigidBot/Configuration_adv.h +++ b/Marlin/example_configurations/RigidBot/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/SCARA/Configuration_adv.h b/Marlin/example_configurations/SCARA/Configuration_adv.h index 706f412702..f4ebfb3b77 100644 --- a/Marlin/example_configurations/SCARA/Configuration_adv.h +++ b/Marlin/example_configurations/SCARA/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/TAZ4/Configuration_adv.h b/Marlin/example_configurations/TAZ4/Configuration_adv.h index 2a39074b7e..f3e15eb438 100644 --- a/Marlin/example_configurations/TAZ4/Configuration_adv.h +++ b/Marlin/example_configurations/TAZ4/Configuration_adv.h @@ -232,6 +232,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/WITBOX/Configuration_adv.h b/Marlin/example_configurations/WITBOX/Configuration_adv.h index 8f04e5ea3c..e86bcbe443 100644 --- a/Marlin/example_configurations/WITBOX/Configuration_adv.h +++ b/Marlin/example_configurations/WITBOX/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h index 0a00369721..3932d5920c 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/delta/generic/Configuration_adv.h b/Marlin/example_configurations/delta/generic/Configuration_adv.h index 009fad39aa..873d634cf9 100644 --- a/Marlin/example_configurations/delta/generic/Configuration_adv.h +++ b/Marlin/example_configurations/delta/generic/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h index 009fad39aa..873d634cf9 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h index 33aed463bf..06a3c97982 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h @@ -229,6 +229,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h index 70f035f3de..17b07b5e85 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h index 279fa7e32e..bb6afc9289 100644 --- a/Marlin/example_configurations/makibox/Configuration_adv.h +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //=========================================================================== diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h index bea6cd5ddf..2e57f8c7ba 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h @@ -224,6 +224,10 @@ #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed +// Define a pin to turn case light on/off +//#define CASE_LIGHT_PIN 4 +//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on + //=========================================================================== //============================ Mechanical Settings ========================== //===========================================================================