diff --git a/Marlin/Conditionals_post.h b/Marlin/Conditionals_post.h index 95054af1e0f80fc8a857bb1f123030cc722e1d01..5dc5abc482b795a8767cd659eca71c23cc803530 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 067d86c485c60cb88260a65a5662e5963a3802a3..95eb0c4b0fb1ddd8adb242c3dfc4dd745494784d 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 bb8939542534512388211055258630d0c46a734b..011f5467f2295e9d6feaa7b276129e12effaa569 100755 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -861,11 +861,17 @@ void setup_homepin(void) { #endif } -void setup_photpin() { - #if HAS_PHOTOGRAPH - OUT_WRITE(PHOTOGRAPH_PIN, LOW); - #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 @@ -7087,6 +7093,38 @@ inline void gcode_M907() { #endif // HAS_MICROSTEPS +#if HAS_CASE_LIGHT + /** + * M355: Turn case lights on/off + * + * S<int> 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 +8233,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; @@ -9693,9 +9739,16 @@ void setup() { #endif stepper.init(); // Initialize stepper, this enables interrupts! - setup_photpin(); servo_init(); + #if HAS_PHOTOGRAPH + OUT_WRITE(PHOTOGRAPH_PIN, LOW); + #endif + + #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 0cef74a093b4cae61727ea01c1c2025634add469..dc8b7823d08b96383904eda106dcfc8c8bb345df 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 7139ac135c9a353f466c641b249a600306be0434..c3d24860abf1fdfa15b9a4bbb16fe36ff638b5c4 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 8f04e5ea3c1fcb635e77c040f1fd29ddd8f1ffe0..e86bcbe443a6d0e613a51ff2ecc62f237860627b 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 b221ab74c824abc3f25f2ba67c7df3a8b2de77ce..4ab583e3b2eac32dfe04f0e98d98c38dc56e0ad2 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 8ea34fc927eb5e1997d8b104dddff39f1b46b287..8bc63b84a2798aa784afd3d24987f9f010dfc07f 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 3cc822cc45e65e2463badcd251b1632bc214653d..10619302972ec26ab574e45834521b185a88c077 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 71166d48d6ef72a73819fb254bb65fac62ce4f75..e77c60c9cbac68dcc146db15a936d6a9b9e30caa 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 706f4127024327a46003aae53bb301afb541a0fe..f4ebfb3b77ef766768a8f037e4aa6da629c1529c 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 2a39074b7e184dc43a6b2aa6127cbfe0d424a8d6..f3e15eb438cadfaf58508fbfb97aa0c006f0ccea 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 8f04e5ea3c1fcb635e77c040f1fd29ddd8f1ffe0..e86bcbe443a6d0e613a51ff2ecc62f237860627b 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 0a003697210190dbb3b9ad5d52b713d793ff795b..3932d5920c1d2c8d0852eec3025dd7eeedae8c35 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 009fad39aa668c1c3aa374ab403155bcfa80729e..873d634cf968d80ae3b92be17509f6d1bd2e0466 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 009fad39aa668c1c3aa374ab403155bcfa80729e..873d634cf968d80ae3b92be17509f6d1bd2e0466 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 33aed463bf09dd8de941e6cf0eb38d2f4f5b28e4..06a3c97982c8e50c44af07afb3dd235d0fdf0b16 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 70f035f3de3264b358542305f5039da56f72c5bd..17b07b5e855aa5cf526b5aae62061c4e0e3bd2d9 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 279fa7e32e0700587602e9664970ee7a9e71df62..bb6afc9289a173adb941619f92944bc3fbc4a997 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 bea6cd5ddfc161a13da87dba332fd4949e4c6997..2e57f8c7ba7beb0b0889946aef494e7b5b0882b8 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 ========================== //===========================================================================