Browse Source

RGB Caselight (#20341)

LinFor 4 years ago
parent
commit
e0aa9ce372
No account linked to committer's email address

+ 1
- 0
Marlin/Configuration.h View File

2650
   // Use a single NeoPixel LED for static (background) lighting
2650
   // Use a single NeoPixel LED for static (background) lighting
2651
   //#define NEOPIXEL_BKGD_LED_INDEX  0               // Index of the LED to use
2651
   //#define NEOPIXEL_BKGD_LED_INDEX  0               // Index of the LED to use
2652
   //#define NEOPIXEL_BKGD_COLOR { 255, 255, 255, 0 } // R, G, B, W
2652
   //#define NEOPIXEL_BKGD_COLOR { 255, 255, 255, 0 } // R, G, B, W
2653
+  //#define NEOPIXEL_BKGD_ALWAYS_ON                  // Keep the backlight on when other NeoPixels are off
2653
 #endif
2654
 #endif
2654
 
2655
 
2655
 /**
2656
 /**

+ 9
- 4
Marlin/Configuration_adv.h View File

519
   #define INVERT_CASE_LIGHT false             // Set true if Case Light is ON when pin is LOW
519
   #define INVERT_CASE_LIGHT false             // Set true if Case Light is ON when pin is LOW
520
   #define CASE_LIGHT_DEFAULT_ON true          // Set default power-up state on
520
   #define CASE_LIGHT_DEFAULT_ON true          // Set default power-up state on
521
   #define CASE_LIGHT_DEFAULT_BRIGHTNESS 105   // Set default power-up brightness (0-255, requires PWM pin)
521
   #define CASE_LIGHT_DEFAULT_BRIGHTNESS 105   // Set default power-up brightness (0-255, requires PWM pin)
522
+  //#define CASE_LIGHT_NO_BRIGHTNESS          // Disable brightness control. Enable for non-PWM lighting.
522
   //#define CASE_LIGHT_MAX_PWM 128            // Limit PWM duty cycle (0-255)
523
   //#define CASE_LIGHT_MAX_PWM 128            // Limit PWM duty cycle (0-255)
523
   //#define CASE_LIGHT_MENU                   // Add Case Light options to the LCD menu
524
   //#define CASE_LIGHT_MENU                   // Add Case Light options to the LCD menu
524
-  //#define CASE_LIGHT_NO_BRIGHTNESS          // Disable brightness control. Enable for non-PWM lighting.
525
-  //#define CASE_LIGHT_USE_NEOPIXEL           // Use NeoPixel LED as case light, requires NEOPIXEL_LED.
526
-  #if ENABLED(CASE_LIGHT_USE_NEOPIXEL)
527
-    #define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White }
525
+  #if ENABLED(NEOPIXEL_LED)
526
+    //#define CASE_LIGHT_USE_NEOPIXEL         // Use NeoPixel LED as case light
527
+  #endif
528
+  #if EITHER(RGB_LED, RGBW_LED)
529
+    //#define CASE_LIGHT_USE_RGB_LED          // Use RGB / RGBW LED as case light
530
+  #endif
531
+  #if EITHER(CASE_LIGHT_USE_NEOPIXEL, CASE_LIGHT_USE_RGB_LED)
532
+    #define CASE_LIGHT_DEFAULT_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White }
528
   #endif
533
   #endif
529
 #endif
534
 #endif
530
 
535
 

+ 1
- 4
Marlin/src/MarlinCore.cpp View File

1136
   #endif
1136
   #endif
1137
 
1137
 
1138
   #if ENABLED(CASE_LIGHT_ENABLE)
1138
   #if ENABLED(CASE_LIGHT_ENABLE)
1139
-    #if DISABLED(CASE_LIGHT_USE_NEOPIXEL)
1140
-      if (PWM_PIN(CASE_LIGHT_PIN)) SET_PWM(CASE_LIGHT_PIN); else SET_OUTPUT(CASE_LIGHT_PIN);
1141
-    #endif
1142
-    SETUP_RUN(caselight.update_brightness());
1139
+    SETUP_RUN(caselight.init());
1143
   #endif
1140
   #endif
1144
 
1141
 
1145
   #if HAS_PRUSA_MMU1
1142
   #if HAS_PRUSA_MMU1

+ 15
- 7
Marlin/src/feature/caselight.cpp View File

28
 
28
 
29
 CaseLight caselight;
29
 CaseLight caselight;
30
 
30
 
31
+#if CASE_LIGHT_IS_COLOR_LED
32
+  #include "leds/leds.h"
33
+#endif
34
+
31
 #if CASELIGHT_USES_BRIGHTNESS && !defined(CASE_LIGHT_DEFAULT_BRIGHTNESS)
35
 #if CASELIGHT_USES_BRIGHTNESS && !defined(CASE_LIGHT_DEFAULT_BRIGHTNESS)
32
   #define CASE_LIGHT_DEFAULT_BRIGHTNESS 0 // For use on PWM pin as non-PWM just sets a default
36
   #define CASE_LIGHT_DEFAULT_BRIGHTNESS 0 // For use on PWM pin as non-PWM just sets a default
33
 #endif
37
 #endif
38
 
42
 
39
 bool CaseLight::on = CASE_LIGHT_DEFAULT_ON;
43
 bool CaseLight::on = CASE_LIGHT_DEFAULT_ON;
40
 
44
 
41
-#if ENABLED(CASE_LIGHT_USE_NEOPIXEL)
45
+#if CASE_LIGHT_IS_COLOR_LED
42
   LEDColor CaseLight::color =
46
   LEDColor CaseLight::color =
43
-    #ifdef CASE_LIGHT_NEOPIXEL_COLOR
44
-      CASE_LIGHT_NEOPIXEL_COLOR
47
+    #ifdef CASE_LIGHT_DEFAULT_COLOR
48
+      CASE_LIGHT_DEFAULT_COLOR
45
     #else
49
     #else
46
       { 255, 255, 255, 255 }
50
       { 255, 255, 255, 255 }
47
     #endif
51
     #endif
71
     const uint8_t i = on ? brightness : 0, n10ct = INVERT_CASE_LIGHT ? 255 - i : i;
75
     const uint8_t i = on ? brightness : 0, n10ct = INVERT_CASE_LIGHT ? 255 - i : i;
72
   #endif
76
   #endif
73
 
77
 
74
-  #if ENABLED(CASE_LIGHT_USE_NEOPIXEL)
78
+  #if CASE_LIGHT_IS_COLOR_LED
75
 
79
 
76
     leds.set_color(
80
     leds.set_color(
77
       MakeLEDColor(color.r, color.g, color.b, color.w, n10ct),
81
       MakeLEDColor(color.r, color.g, color.b, color.w, n10ct),
78
       false
82
       false
79
     );
83
     );
80
 
84
 
81
-  #else // !CASE_LIGHT_USE_NEOPIXEL
85
+  #else // !CASE_LIGHT_IS_COLOR_LED
82
 
86
 
83
     #if CASELIGHT_USES_BRIGHTNESS
87
     #if CASELIGHT_USES_BRIGHTNESS
84
-      if (PWM_PIN(CASE_LIGHT_PIN))
88
+      if (pin_is_pwm())
85
         analogWrite(pin_t(CASE_LIGHT_PIN), (
89
         analogWrite(pin_t(CASE_LIGHT_PIN), (
86
           #if CASE_LIGHT_MAX_PWM == 255
90
           #if CASE_LIGHT_MAX_PWM == 255
87
             n10ct
91
             n10ct
96
         WRITE(CASE_LIGHT_PIN, s ? HIGH : LOW);
100
         WRITE(CASE_LIGHT_PIN, s ? HIGH : LOW);
97
       }
101
       }
98
 
102
 
99
-  #endif // !CASE_LIGHT_USE_NEOPIXEL
103
+  #endif // !CASE_LIGHT_IS_COLOR_LED
104
+
105
+  #if ENABLED(CASE_LIGHT_USE_RGB_LED)
106
+    if (leds.lights_on) leds.update(); else leds.set_off();
107
+  #endif
100
 }
108
 }
101
 
109
 
102
 #endif // CASE_LIGHT_ENABLE
110
 #endif // CASE_LIGHT_ENABLE

+ 16
- 10
Marlin/src/feature/caselight.h View File

21
  */
21
  */
22
 #pragma once
22
 #pragma once
23
 
23
 
24
-#include "../inc/MarlinConfigPre.h"
24
+#include "../inc/MarlinConfig.h"
25
 
25
 
26
-#if ENABLED(CASE_LIGHT_USE_NEOPIXEL)
27
-  #include "leds/leds.h"
26
+#if CASE_LIGHT_IS_COLOR_LED
27
+  #include "leds/leds.h" // for LEDColor
28
 #endif
28
 #endif
29
 
29
 
30
 #if DISABLED(CASE_LIGHT_NO_BRIGHTNESS) || ENABLED(CASE_LIGHT_USE_NEOPIXEL)
30
 #if DISABLED(CASE_LIGHT_NO_BRIGHTNESS) || ENABLED(CASE_LIGHT_USE_NEOPIXEL)
33
 
33
 
34
 class CaseLight {
34
 class CaseLight {
35
 public:
35
 public:
36
-  #if CASELIGHT_USES_BRIGHTNESS
37
-    static uint8_t brightness;
38
-  #endif
39
   static bool on;
36
   static bool on;
37
+  TERN_(CASELIGHT_USES_BRIGHTNESS, static uint8_t brightness);
38
+
39
+  static bool pin_is_pwm() { return TERN0(NEED_CASE_LIGHT_PIN, PWM_PIN(CASE_LIGHT_PIN)); }
40
+  static bool has_brightness() { return TERN0(CASELIGHT_USES_BRIGHTNESS, TERN(CASE_LIGHT_USE_NEOPIXEL, true, pin_is_pwm())); }
41
+
42
+  static void init() {
43
+    #if NEED_CASE_LIGHT_PIN
44
+      if (pin_is_pwm()) SET_PWM(CASE_LIGHT_PIN); else SET_OUTPUT(CASE_LIGHT_PIN);
45
+    #endif
46
+    update_brightness();
47
+  }
40
 
48
 
41
   static void update(const bool sflag);
49
   static void update(const bool sflag);
42
   static inline void update_brightness() { update(false); }
50
   static inline void update_brightness() { update(false); }
43
-  static inline void update_enabled() { update(true); }
51
+  static inline void update_enabled()    { update(true);  }
44
 
52
 
45
 private:
53
 private:
46
-  #if ENABLED(CASE_LIGHT_USE_NEOPIXEL)
47
-    static LEDColor color;
48
-  #endif
54
+  TERN_(CASE_LIGHT_IS_COLOR_LED, static LEDColor color);
49
 };
55
 };
50
 
56
 
51
 extern CaseLight caselight;
57
 extern CaseLight caselight;

+ 15
- 7
Marlin/src/feature/leds/leds.cpp View File

42
   #include "pca9533.h"
42
   #include "pca9533.h"
43
 #endif
43
 #endif
44
 
44
 
45
+#if ENABLED(CASE_LIGHT_USE_RGB_LED)
46
+  #include "../../feature/caselight.h"
47
+#endif
48
+
45
 #if ENABLED(LED_COLOR_PRESETS)
49
 #if ENABLED(LED_COLOR_PRESETS)
46
   const LEDColor LEDLights::defaultLEDColor = MakeLEDColor(
50
   const LEDColor LEDLights::defaultLEDColor = MakeLEDColor(
47
     LED_USER_PRESET_RED, LED_USER_PRESET_GREEN, LED_USER_PRESET_BLUE,
51
     LED_USER_PRESET_RED, LED_USER_PRESET_GREEN, LED_USER_PRESET_BLUE,
85
 
89
 
86
     #ifdef NEOPIXEL_BKGD_LED_INDEX
90
     #ifdef NEOPIXEL_BKGD_LED_INDEX
87
       if (NEOPIXEL_BKGD_LED_INDEX == nextLed) {
91
       if (NEOPIXEL_BKGD_LED_INDEX == nextLed) {
88
-        if (++nextLed >= neo.pixels()) nextLed = 0;
89
-        return;
92
+        neo.set_color_background();
93
+        if (++nextLed >= neo.pixels()) {
94
+          nextLed = 0;
95
+          return;
96
+        }
90
       }
97
       }
91
     #endif
98
     #endif
92
 
99
 
114
 
121
 
115
     // This variant uses 3-4 separate pins for the RGB(W) components.
122
     // This variant uses 3-4 separate pins for the RGB(W) components.
116
     // If the pins can do PWM then their intensity will be set.
123
     // If the pins can do PWM then their intensity will be set.
117
-    #define UPDATE_RGBW(C,c) do {                       \
118
-      if (PWM_PIN(RGB_LED_##C##_PIN))                   \
119
-        analogWrite(pin_t(RGB_LED_##C##_PIN), incol.c); \
120
-      else                                              \
121
-        WRITE(RGB_LED_##C##_PIN, incol.c ? HIGH : LOW); \
124
+    #define _UPDATE_RGBW(C,c) do {                \
125
+      if (PWM_PIN(RGB_LED_##C##_PIN))             \
126
+        analogWrite(pin_t(RGB_LED_##C##_PIN), c); \
127
+      else                                        \
128
+        WRITE(RGB_LED_##C##_PIN, c ? HIGH : LOW); \
122
     }while(0)
129
     }while(0)
130
+    #define UPDATE_RGBW(C,c) _UPDATE_RGBW(C, TERN1(CASE_LIGHT_USE_RGB_LED, caselight.on) ? incol.c : 0)
123
     UPDATE_RGBW(R,r); UPDATE_RGBW(G,g); UPDATE_RGBW(B,b);
131
     UPDATE_RGBW(R,r); UPDATE_RGBW(G,g); UPDATE_RGBW(B,b);
124
     #if ENABLED(RGBW_LED)
132
     #if ENABLED(RGBW_LED)
125
       UPDATE_RGBW(W,w);
133
       UPDATE_RGBW(W,w);

+ 2
- 0
Marlin/src/feature/leds/leds.h View File

194
 
194
 
195
   #if ENABLED(LED_CONTROL_MENU)
195
   #if ENABLED(LED_CONTROL_MENU)
196
     static void toggle();  // swap "off" with color
196
     static void toggle();  // swap "off" with color
197
+  #endif
198
+  #if EITHER(LED_CONTROL_MENU, CASE_LIGHT_USE_RGB_LED)
197
     static inline void update() { set_color(color); }
199
     static inline void update() { set_color(color); }
198
   #endif
200
   #endif
199
 
201
 

+ 1
- 1
Marlin/src/feature/leds/neopixel.cpp View File

60
   else {
60
   else {
61
     for (uint16_t i = 0; i < pixels(); ++i) {
61
     for (uint16_t i = 0; i < pixels(); ++i) {
62
       #ifdef NEOPIXEL_BKGD_LED_INDEX
62
       #ifdef NEOPIXEL_BKGD_LED_INDEX
63
-        if (i == NEOPIXEL_BKGD_LED_INDEX && color != 0x000000) {
63
+        if (i == NEOPIXEL_BKGD_LED_INDEX && TERN(ENABLED(NEOPIXEL_BKGD_ALWAYS_ON), true, color != 0x000000)) {
64
           set_color_background();
64
           set_color_background();
65
           continue;
65
           continue;
66
         }
66
         }

+ 1
- 1
Marlin/src/gcode/host/M115.cpp View File

106
 
106
 
107
     // TOGGLE_LIGHTS (M355)
107
     // TOGGLE_LIGHTS (M355)
108
     cap_line(PSTR("TOGGLE_LIGHTS"), ENABLED(CASE_LIGHT_ENABLE));
108
     cap_line(PSTR("TOGGLE_LIGHTS"), ENABLED(CASE_LIGHT_ENABLE));
109
-    cap_line(PSTR("CASE_LIGHT_BRIGHTNESS"), TERN0(CASE_LIGHT_ENABLE, TERN0(CASELIGHT_USES_BRIGHTNESS, TERN(CASE_LIGHT_USE_NEOPIXEL, true, PWM_PIN(CASE_LIGHT_PIN)))));
109
+    cap_line(PSTR("CASE_LIGHT_BRIGHTNESS"), TERN0(CASE_LIGHT_ENABLE, caselight.has_brightness()));
110
 
110
 
111
     // EMERGENCY_PARSER (M108, M112, M410, M876)
111
     // EMERGENCY_PARSER (M108, M112, M410, M876)
112
     cap_line(PSTR("EMERGENCY_PARSER"), ENABLED(EMERGENCY_PARSER));
112
     cap_line(PSTR("EMERGENCY_PARSER"), ENABLED(EMERGENCY_PARSER));

+ 9
- 0
Marlin/src/inc/Conditionals_adv.h View File

506
   #define NEED_HEX_PRINT 1
506
   #define NEED_HEX_PRINT 1
507
 #endif
507
 #endif
508
 
508
 
509
+// Flags for Case Light having a color property or a single pin
510
+#if ENABLED(CASE_LIGHT_ENABLE)
511
+  #if EITHER(CASE_LIGHT_USE_NEOPIXEL, CASE_LIGHT_USE_RGB_LED)
512
+    #define CASE_LIGHT_IS_COLOR_LED 1
513
+  #else
514
+    #define NEED_CASE_LIGHT_PIN 1
515
+  #endif
516
+#endif
517
+
509
 // Flag whether least_squares_fit.cpp is used
518
 // Flag whether least_squares_fit.cpp is used
510
 #if ANY(AUTO_BED_LEVELING_UBL, AUTO_BED_LEVELING_LINEAR, Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
519
 #if ANY(AUTO_BED_LEVELING_UBL, AUTO_BED_LEVELING_LINEAR, Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
511
   #define NEED_LSF 1
520
   #define NEED_LSF 1

+ 4
- 2
Marlin/src/inc/SanityCheck.h View File

437
   #error "DUAL_NOZZLE_DUPLICATION_MODE is now MULTI_NOZZLE_DUPLICATION."
437
   #error "DUAL_NOZZLE_DUPLICATION_MODE is now MULTI_NOZZLE_DUPLICATION."
438
 #elif defined(MENU_ITEM_CASE_LIGHT)
438
 #elif defined(MENU_ITEM_CASE_LIGHT)
439
   #error "MENU_ITEM_CASE_LIGHT is now CASE_LIGHT_MENU."
439
   #error "MENU_ITEM_CASE_LIGHT is now CASE_LIGHT_MENU."
440
+#elif defined(CASE_LIGHT_NEOPIXEL_COLOR)
441
+  #error "CASE_LIGHT_NEOPIXEL_COLOR is now CASE_LIGHT_DEFAULT_COLOR."
440
 #elif defined(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
442
 #elif defined(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
441
   #error "ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED is now SD_ABORT_ON_ENDSTOP_HIT."
443
   #error "ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED is now SD_ABORT_ON_ENDSTOP_HIT."
442
 #elif defined(LPC_SD_LCD) || defined(LPC_SD_ONBOARD) || defined(LPC_SD_CUSTOM_CABLE)
444
 #elif defined(LPC_SD_LCD) || defined(LPC_SD_ONBOARD) || defined(LPC_SD_CUSTOM_CABLE)
1704
 /**
1706
 /**
1705
  * Case Light requirements
1707
  * Case Light requirements
1706
  */
1708
  */
1707
-#if ENABLED(CASE_LIGHT_ENABLE)
1709
+#if NEED_CASE_LIGHT_PIN
1708
   #if !PIN_EXISTS(CASE_LIGHT)
1710
   #if !PIN_EXISTS(CASE_LIGHT)
1709
-    #error "CASE_LIGHT_ENABLE requires CASE_LIGHT_PIN to be defined."
1711
+    #error "CASE_LIGHT_ENABLE requires CASE_LIGHT_PIN, CASE_LIGHT_USE_NEOPIXEL, or CASE_LIGHT_USE_RGB_LED."
1710
   #elif CASE_LIGHT_PIN == FAN_PIN
1712
   #elif CASE_LIGHT_PIN == FAN_PIN
1711
     #error "CASE_LIGHT_PIN conflicts with FAN_PIN. Resolve before continuing."
1713
     #error "CASE_LIGHT_PIN conflicts with FAN_PIN. Resolve before continuing."
1712
   #endif
1714
   #endif

+ 7
- 4
Marlin/src/lcd/menu/menu_led.cpp View File

105
 #if ENABLED(CASE_LIGHT_MENU)
105
 #if ENABLED(CASE_LIGHT_MENU)
106
   #include "../../feature/caselight.h"
106
   #include "../../feature/caselight.h"
107
 
107
 
108
+  #define CASELIGHT_TOGGLE_ITEM() EDIT_ITEM(bool, MSG_CASE_LIGHT, (bool*)&caselight.on, caselight.update_enabled)
109
+
108
   #if CASELIGHT_USES_BRIGHTNESS
110
   #if CASELIGHT_USES_BRIGHTNESS
109
     void menu_case_light() {
111
     void menu_case_light() {
110
       START_MENU();
112
       START_MENU();
111
       BACK_ITEM(MSG_CONFIGURATION);
113
       BACK_ITEM(MSG_CONFIGURATION);
112
       EDIT_ITEM(percent, MSG_CASE_LIGHT_BRIGHTNESS, &caselight.brightness, 0, 255, caselight.update_brightness, true);
114
       EDIT_ITEM(percent, MSG_CASE_LIGHT_BRIGHTNESS, &caselight.brightness, 0, 255, caselight.update_brightness, true);
113
-      EDIT_ITEM(bool, MSG_CASE_LIGHT, (bool*)&caselight.on, caselight.update_enabled);
115
+      CASELIGHT_TOGGLE_ITEM();
114
       END_MENU();
116
       END_MENU();
115
     }
117
     }
116
   #endif
118
   #endif
155
   // Set Case light on/off/brightness
157
   // Set Case light on/off/brightness
156
   //
158
   //
157
   #if ENABLED(CASE_LIGHT_MENU)
159
   #if ENABLED(CASE_LIGHT_MENU)
158
-    #if DISABLED(CASE_LIGHT_NO_BRIGHTNESS)
159
-      if (TERN1(CASE_LIGHT_USE_NEOPIXEL, PWM_PIN(CASE_LIGHT_PIN)))
160
+    #if CASELIGHT_USES_BRIGHTNESS
161
+      if (caselight.has_brightness())
160
         SUBMENU(MSG_CASE_LIGHT, menu_case_light);
162
         SUBMENU(MSG_CASE_LIGHT, menu_case_light);
161
       else
163
       else
162
     #endif
164
     #endif
163
-        EDIT_ITEM(bool, MSG_CASE_LIGHT, (bool*)&caselight.on, caselight.update_enabled);
165
+        CASELIGHT_TOGGLE_ITEM();
164
   #endif
166
   #endif
167
+
165
   END_MENU();
168
   END_MENU();
166
 }
169
 }
167
 
170
 

+ 4
- 0
Marlin/src/pins/pins_postprocess.h View File

876
   #undef BOARD_ST7920_DELAY_3
876
   #undef BOARD_ST7920_DELAY_3
877
 #endif
877
 #endif
878
 
878
 
879
+#if !NEED_CASE_LIGHT_PIN
880
+  #undef CASE_LIGHT_PIN
881
+#endif
882
+
879
 #undef HAS_FREE_AUX2_PINS
883
 #undef HAS_FREE_AUX2_PINS
880
 #undef DIAG_REMAPPED
884
 #undef DIAG_REMAPPED

+ 1
- 1
buildroot/tests/DUE-tests View File

18
            ASSISTED_TRAMMING ASSISTED_TRAMMING_WIZARD REPORT_TRAMMING_MM ASSISTED_TRAMMING_WAIT_POSITION \
18
            ASSISTED_TRAMMING ASSISTED_TRAMMING_WIZARD REPORT_TRAMMING_MM ASSISTED_TRAMMING_WAIT_POSITION \
19
            EEPROM_SETTINGS SDSUPPORT BINARY_FILE_TRANSFER \
19
            EEPROM_SETTINGS SDSUPPORT BINARY_FILE_TRANSFER \
20
            BLINKM PCA9533 PCA9632 RGB_LED RGB_LED_R_PIN RGB_LED_G_PIN RGB_LED_B_PIN LED_CONTROL_MENU \
20
            BLINKM PCA9533 PCA9632 RGB_LED RGB_LED_R_PIN RGB_LED_G_PIN RGB_LED_B_PIN LED_CONTROL_MENU \
21
-           NEOPIXEL_LED CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CASE_LIGHT_MENU \
21
+           NEOPIXEL_LED CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CASE_LIGHT_USE_RGB_LED CASE_LIGHT_MENU \
22
            NOZZLE_PARK_FEATURE ADVANCED_PAUSE_FEATURE FILAMENT_RUNOUT_DISTANCE_MM FILAMENT_RUNOUT_SENSOR \
22
            NOZZLE_PARK_FEATURE ADVANCED_PAUSE_FEATURE FILAMENT_RUNOUT_DISTANCE_MM FILAMENT_RUNOUT_SENSOR \
23
            AUTO_BED_LEVELING_BILINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \
23
            AUTO_BED_LEVELING_BILINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \
24
            SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE CALIBRATION_GCODE \
24
            SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE CALIBRATION_GCODE \

Loading…
Cancel
Save