diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h
index fbbb21d4168734e8e771b929fc26a2eb55beae05..7894c7da5d5b8150cc7c13dd400195e65fb50edb 100644
--- a/Marlin/Configuration_adv.h
+++ b/Marlin/Configuration_adv.h
@@ -482,6 +482,21 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+
+      //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+    #endif
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/default/Configuration_adv.h b/Marlin/src/config/default/Configuration_adv.h
index fbbb21d4168734e8e771b929fc26a2eb55beae05..b472f061a1b9f768d7b99e54bcc24d11153e0821 100644
--- a/Marlin/src/config/default/Configuration_adv.h
+++ b/Marlin/src/config/default/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h b/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h
index aaef371f2c82cc3fb2527f7dd0d330289e992579..9e4838656482f0a6e1982a131d533ab84b54a06f 100644
--- a/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h
+++ b/Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Anet/A6/Configuration_adv.h b/Marlin/src/config/examples/Anet/A6/Configuration_adv.h
index ff9a8b40d0072b606bbe3ce20bc6d6d869533d66..6657489819a4685dab70e18c16134232876216d5 100644
--- a/Marlin/src/config/examples/Anet/A6/Configuration_adv.h
+++ b/Marlin/src/config/examples/Anet/A6/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Anet/A8/Configuration_adv.h b/Marlin/src/config/examples/Anet/A8/Configuration_adv.h
index 2034846532501cf12bdf713a426c87768214fcf7..c2bffc8a5ac6f9c4ff13311fe254998e0b30b6f8 100644
--- a/Marlin/src/config/examples/Anet/A8/Configuration_adv.h
+++ b/Marlin/src/config/examples/Anet/A8/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h b/Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h
index f6a9abbce98963b67d236e0bc64addaff03d1a12..436b95ca3ba4ba1accf908f4fd4effdf3bcd68e3 100644
--- a/Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h
+++ b/Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h
@@ -483,6 +483,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h b/Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h
index 007652f865b5f94bc4fa5dbab954cab54e45f2ea..02de527b33b1cf78cd3cff655f463501481728ef 100644
--- a/Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h
+++ b/Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h b/Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h
index f5adb371808816ddf2b95f68e06a11dc29f1c057..e382c4c3b61d191f44b58d777f7e2975be02b3d0 100644
--- a/Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h
+++ b/Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h b/Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h
index 007652f865b5f94bc4fa5dbab954cab54e45f2ea..02de527b33b1cf78cd3cff655f463501481728ef 100644
--- a/Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h
+++ b/Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Cartesio/Configuration_adv.h b/Marlin/src/config/examples/Cartesio/Configuration_adv.h
index 82e4ff63dd1e5977bf1c7da65afe0b2f278e42dc..d60c395b25883ffb4ee224f8e70af118e98e0ef8 100644
--- a/Marlin/src/config/examples/Cartesio/Configuration_adv.h
+++ b/Marlin/src/config/examples/Cartesio/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h b/Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h
index fe5add0c673dd80954363dd953e4556d5e1e4bc5..d4b85d0092d9ca09cc61ad3c77c1de23c5b66bac 100644
--- a/Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h
+++ b/Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Felix/Configuration_adv.h b/Marlin/src/config/examples/Felix/Configuration_adv.h
index 17719cee0169c51919d119e58e86bdf7ac01cbd1..119e86e0587596b2230a78235e057a65f0591e13 100644
--- a/Marlin/src/config/examples/Felix/Configuration_adv.h
+++ b/Marlin/src/config/examples/Felix/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h b/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h
index baa7a278fba5dede46dc35ad8bb583dfb788044d..726c398e445bc6de7691ef6b454b393d805db599 100644
--- a/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h
+++ b/Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h b/Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h
index 21519c30b4af201fc0f8fa82ed253506d57fc022..f17dcdea7bac5b569521f7643a5201383b746865 100644
--- a/Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h
+++ b/Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Malyan/M150/Configuration_adv.h b/Marlin/src/config/examples/Malyan/M150/Configuration_adv.h
index c3b0b911a8fa648a7545085cd056060e4d9be602..4a467b94bba4f92202718cbb2cb2604671781b42 100644
--- a/Marlin/src/config/examples/Malyan/M150/Configuration_adv.h
+++ b/Marlin/src/config/examples/Malyan/M150/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h b/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h
index c8f092df2e1e797189829011acacd02e14cb4f42..58dd452df6d39d7353a9141b9d678739799e6ee4 100644
--- a/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h
+++ b/Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h b/Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h
index caa659038543c2c68fe4e49116f3a741f4143d94..743eb91b545d2e00a4d0cf92ad3212c91d9e6942 100644
--- a/Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h
+++ b/Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h
@@ -483,6 +483,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/RigidBot/Configuration_adv.h b/Marlin/src/config/examples/RigidBot/Configuration_adv.h
index 4ff47fd90a31b84a4b4067d755f0a52c840c058b..93b450c68fd335525a7aa8970f27d39a3f27b48b 100644
--- a/Marlin/src/config/examples/RigidBot/Configuration_adv.h
+++ b/Marlin/src/config/examples/RigidBot/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/SCARA/Configuration_adv.h b/Marlin/src/config/examples/SCARA/Configuration_adv.h
index b0756f79120386d23b17bb028d276bdb67f29a4b..3a4cf53296045a6b574569aae9728e6953f97a76 100644
--- a/Marlin/src/config/examples/SCARA/Configuration_adv.h
+++ b/Marlin/src/config/examples/SCARA/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Sanguinololu/Configuration_adv.h b/Marlin/src/config/examples/Sanguinololu/Configuration_adv.h
index d6da256f989903d90b80db623f648409b4ede295..49a04bc0b8f91181515a297e0ad71a287ec939ef 100644
--- a/Marlin/src/config/examples/Sanguinololu/Configuration_adv.h
+++ b/Marlin/src/config/examples/Sanguinololu/Configuration_adv.h
@@ -471,6 +471,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/TinyBoy2/Configuration_adv.h b/Marlin/src/config/examples/TinyBoy2/Configuration_adv.h
index 22c845e359ec9587fea4faa08bc74266e1d498cb..1ff50eb0d7f3b0458e049559420409183a8b6f2e 100644
--- a/Marlin/src/config/examples/TinyBoy2/Configuration_adv.h
+++ b/Marlin/src/config/examples/TinyBoy2/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h b/Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h
index d9aef183d904a766fda8a69f97456cf8bdac1392..ed1b1ead599bf7a31acf653c231dcbf1c790847c 100644
--- a/Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h
+++ b/Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h b/Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h
index 98959a683ff6859e9fcd3a6af910c10432bdc392..2dc6e19b9e75497fdead346e1339876ee12226d6 100644
--- a/Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h
+++ b/Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h
@@ -495,6 +495,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h b/Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h
index 3ab905163150e29172d0da3dc505432d9390b6cc..8c788c9ddda1f523fc1ea4abd06b748c11416738 100644
--- a/Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h
+++ b/Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h
@@ -483,6 +483,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h b/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
index 4850ad7a943bdf9241df89bc95c7223c5044b53c..217d29c44c98086e694a1a1718ee242f9168cd25 100644
--- a/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
+++ b/Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
@@ -484,6 +484,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h b/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
index 8663f5e32b24cb9c2f455e42ae1c2d77615eb972..ef8778f44c525c8b775c6016e625236448b53610 100644
--- a/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
+++ b/Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
@@ -484,6 +484,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/delta/generic/Configuration_adv.h b/Marlin/src/config/examples/delta/generic/Configuration_adv.h
index 8663f5e32b24cb9c2f455e42ae1c2d77615eb972..ef8778f44c525c8b775c6016e625236448b53610 100644
--- a/Marlin/src/config/examples/delta/generic/Configuration_adv.h
+++ b/Marlin/src/config/examples/delta/generic/Configuration_adv.h
@@ -484,6 +484,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h b/Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h
index 8663f5e32b24cb9c2f455e42ae1c2d77615eb972..ef8778f44c525c8b775c6016e625236448b53610 100644
--- a/Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h
+++ b/Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h
@@ -484,6 +484,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h b/Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h
index 46c4999cca58890a29f6eeab37e4bcc995d40309..1cc9d1f4cb66e05e2d32ac1ef697b6b8aab86b14 100644
--- a/Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h
+++ b/Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h
@@ -489,6 +489,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h b/Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h
index 66dd6700f47a5d924a7c204de563e3434b33575a..7cbc9791cadd32ec42cad88da50eeaed70b3953a 100644
--- a/Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h
+++ b/Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h
@@ -484,6 +484,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h b/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h
index 59b861ed4db41c38b57d9c6bc400f54a0f0e094e..5a2ffd3e4d12967ab9dd58fa6f78d601d7a02d09 100644
--- a/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h
+++ b/Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/makibox/Configuration_adv.h b/Marlin/src/config/examples/makibox/Configuration_adv.h
index 3bc38c7459c5f7a44453631073add85c7b2dc1cb..8e5aa309ad3c0d59c34125f91d9a9ff2ecc49bb5 100644
--- a/Marlin/src/config/examples/makibox/Configuration_adv.h
+++ b/Marlin/src/config/examples/makibox/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h b/Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h
index c1e303af393306553c55569bb1f36415eb0ef909..3edfa9a3efea2d9ac87055697aa9123ab03bfc15 100644
--- a/Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h
+++ b/Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h
@@ -482,6 +482,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/config/examples/wt150/Configuration_adv.h b/Marlin/src/config/examples/wt150/Configuration_adv.h
index ad2f3b894fc090b007e8e585d60087a9282dbf5c..54f72fb07b61a7757c1ec8c04524dc2a2db9c9b7 100644
--- a/Marlin/src/config/examples/wt150/Configuration_adv.h
+++ b/Marlin/src/config/examples/wt150/Configuration_adv.h
@@ -483,6 +483,20 @@
 // The timeout (in ms) to return to the status screen from sub-menus
 //#define LCD_TIMEOUT_TO_STATUS 15000
 
+//#define LED_CONTROL_MENU                       // Uncomment to enable the LED control menu option.
+#if ENABLED(LED_CONTROL_MENU)
+
+  #define LED_COLOR_PRESETS                   // Uncomment to enable the preset color menu option.
+    #if ENABLED(LED_COLOR_PRESETS)
+      #define LED_USER_PRESET_RED       255   // User defined RED value
+      #define LED_USER_PRESET_GREEN     128   // User defined GREEN value
+      #define LED_USER_PRESET_BLUE        0   // User defined BLUE value
+      #define LED_USER_PRESET_WHITE     255   // User defined WHITE value
+      #define LED_USER_PRESET_INTENSITY 255   // User defined intensity
+    #endif
+    //#define LED_USER_PRESET_STARTUP         // Have the printer display the user preset color on startup
+#endif // LED_CONTROL_MENU
+
 #if ENABLED(SDSUPPORT)
 
   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work
diff --git a/Marlin/src/feature/leds/leds.cpp b/Marlin/src/feature/leds/leds.cpp
index b412bdc70c3763b52bc321ed9189a0ab1c9b850e..456a6442c96cd5d35b60791babd94f63b3ea2ba4 100644
--- a/Marlin/src/feature/leds/leds.cpp
+++ b/Marlin/src/feature/leds/leds.cpp
@@ -30,6 +30,32 @@
 
 #include "leds.h"
 
+#if ENABLED(LED_CONTROL_MENU)
+  #if ENABLED(LED_COLOR_PRESETS)
+uint8_t led_intensity_red = LED_USER_PRESET_RED,
+        led_intensity_green = LED_USER_PRESET_GREEN,
+        led_intensity_blue = LED_USER_PRESET_BLUE
+        #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_LED)
+          , led_intensity_white = LED_USER_PRESET_WHITE
+        #endif
+        #if ENABLED(NEOPIXEL_LED)
+          , led_intensity = NEOPIXEL_BRIGHTNESS
+        #endif
+        ;
+  #else
+    uint8_t led_intensity_red = 255,
+            led_intensity_green = 255,
+            led_intensity_blue = 255
+            #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_LED)
+              , led_intensity_white = 0
+            #endif
+            #if ENABLED(NEOPIXEL_LED)
+              , led_intensity = NEOPIXEL_BRIGHTNESS
+            #endif
+            ;
+  #endif
+#endif
+
 void set_led_color(
   const uint8_t r, const uint8_t g, const uint8_t b
     #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_LED)
@@ -42,20 +68,11 @@ void set_led_color(
 ) {
 
   #if ENABLED(NEOPIXEL_LED)
-
-    const uint32_t color = pixels.Color(r, g, b, w);
-    static uint16_t nextLed = 0;
-
-    pixels.setBrightness(p);
-    if (!isSequence)
-      set_neopixel_color(color);
-    else {
-      pixels.setPixelColor(nextLed, color);
-      pixels.show();
-      if (++nextLed >= pixels.numPixels()) nextLed = 0;
-      return;
+    if ((w == 255) || ((r == 255) && (g == 255) && (b == 255))) {
+      neopixel_set_led_color(NEO_WHITE, p);
     }
-
+    else
+      neopixel_set_led_color(r, g, b, w, p);
   #endif
 
   #if ENABLED(BLINKM)
@@ -81,6 +98,34 @@ void set_led_color(
   #if ENABLED(PCA9632)
     pca9632_set_led_color(r, g, b); // Update I2C LED driver
   #endif
+
+  #if ENABLED(LED_CONTROL_MENU)
+    if ((r + g + b
+      #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_LED)
+        + w
+      #endif
+    ) >= 3) {
+      led_intensity_red = r;
+      led_intensity_green = g;
+      led_intensity_blue = b;
+      #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_LED)
+        led_intensity_white = w;
+      #endif
+      #if ENABLED(NEOPIXEL_LED)
+        led_intensity = p;
+      #endif
+    }
+  #endif
+}
+
+void set_led_white(){
+  #if ENABLED(NEOPIXEL_LED)
+    neopixel_set_led_color(NEO_WHITE, pixels.getBrightness());
+  #elif (RGBW_LED)
+    set_led_color(0, 0, 0, 255);
+  #else
+    set_led_color(255, 255, 255);
+  #endif
 }
 
 #endif // HAS_COLOR_LEDS
diff --git a/Marlin/src/feature/leds/leds.h b/Marlin/src/feature/leds/leds.h
index 81c822666a9d40af0077111f5c31d525a6f4fac9..1691593445302a91e101f1e670d7cd29c06d9c39 100644
--- a/Marlin/src/feature/leds/leds.h
+++ b/Marlin/src/feature/leds/leds.h
@@ -65,4 +65,6 @@ void set_led_color(
     #endif
 );
 
+void set_led_white();
+
 #endif // __LEDS_H__
diff --git a/Marlin/src/feature/leds/neopixel.cpp b/Marlin/src/feature/leds/neopixel.cpp
index ae06e9b0098f6b9ffa89d6e23ea577a88cc8c0e3..5e32f5277abe0068bdd496c1947afd5a64d72e21 100644
--- a/Marlin/src/feature/leds/neopixel.cpp
+++ b/Marlin/src/feature/leds/neopixel.cpp
@@ -53,7 +53,27 @@ void setup_neopixel() {
     set_neopixel_color(pixels.Color(0, 0, 255, 0));  // blue
     safe_delay(1000);
   #endif
-  set_neopixel_color(pixels.Color(NEO_WHITE));       // white
+
+  #if ENABLED(LED_USER_PRESET_STARTUP)
+    set_neopixel_color(pixels.Color(LED_USER_PRESET_RED, LED_USER_PRESET_GREEN, LED_USER_PRESET_BLUE, LED_USER_PRESET_WHITE));
+  #else
+    set_neopixel_color(pixels.Color(0, 0, 0, 0));
+  #endif
+}
+
+bool neopixel_set_led_color(const uint8_t r, const uint8_t g, const uint8_t b, const uint8_t w, const uint8_t p) {
+  const uint32_t color = pixels.Color(r, g, b, w);
+  pixels.setBrightness(p);
+  #if !ENABLED(NEOPIXEL_IS_SEQUENTIAL)
+    set_neopixel_color(color);
+    return false;
+  #else
+    static uint16_t nextLed = 0;
+    pixels.setPixelColor(nextLed, color);
+    pixels.show();
+    if (++nextLed >= pixels.numPixels()) nextLed = 0;
+    return true;
+  #endif
 }
 
 #endif // NEOPIXEL_LED
diff --git a/Marlin/src/feature/leds/neopixel.h b/Marlin/src/feature/leds/neopixel.h
index 2b937f1b876b9946443173792d2f48f86042ddcb..28ea61d302eda5fa8fe71a5c1e9cfba2fe350324 100644
--- a/Marlin/src/feature/leds/neopixel.h
+++ b/Marlin/src/feature/leds/neopixel.h
@@ -36,13 +36,14 @@
 #define NEOPIXEL_IS_RGBW !NEOPIXEL_IS_RGB
 
 #if NEOPIXEL_IS_RGB
-  #define NEO_WHITE 255, 255, 255
+  #define NEO_WHITE 255, 255, 255, 0
 #else
   #define NEO_WHITE 0, 0, 0, 255
 #endif
 
 void setup_neopixel();
 void set_neopixel_color(const uint32_t color);
+bool neopixel_set_led_color(const uint8_t r, const uint8_t g, const uint8_t b, const uint8_t w, const uint8_t p);
 
 extern Adafruit_NeoPixel pixels;
 
diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h
index 580d1cb379321c17cb4d1c09476d8321c71a2edf..a0ffe1e49f1eaf514539e72202154338beccd9a4 100644
--- a/Marlin/src/lcd/language/language_en.h
+++ b/Marlin/src/lcd/language/language_en.h
@@ -174,7 +174,6 @@
 #ifndef MSG_USER_MENU
   #define MSG_USER_MENU                       _UxGT("Custom Commands")
 #endif
-
 #ifndef MSG_UBL_DOING_G29
   #define MSG_UBL_DOING_G29                   _UxGT("Doing G29")
 #endif
@@ -361,7 +360,60 @@
 #ifndef MSG_UBL_STEP_BY_STEP_MENU
   #define MSG_UBL_STEP_BY_STEP_MENU           _UxGT("Step-By-Step UBL")
 #endif
-
+#ifndef MSG_LED_CONTROL
+  #define MSG_LED_CONTROL                     _UxGT("LED Control")
+#endif
+#ifndef MSG_LEDS_OFF
+  #define MSG_LEDS_OFF                        _UxGT("Turn Off Lights")
+#endif
+#ifndef MSG_LED_ON
+  #define MSG_LED_ON                          _UxGT("Turn on ")
+#endif
+#ifndef MSG_RED
+  #define MSG_RED                             _UxGT("Red ")
+#endif
+#ifndef MSG_ORANGE
+  #define MSG_ORANGE                          _UxGT("Orange ")
+#endif
+#ifndef MSG_YELLOW
+  #define MSG_YELLOW                          _UxGT("Yellow ")
+#endif
+#ifndef MSG_GREEN
+  #define MSG_GREEN                           _UxGT("Green ")
+#endif
+#ifndef MSG_BLUE
+  #define MSG_BLUE                            _UxGT("Blue ")
+#endif
+#ifndef MSG_PURPLE
+  #define MSG_PURPLE                          _UxGT("Purple ")
+#endif
+#ifndef MSG_WHITE
+  #define MSG_WHITE                           _UxGT("White ")
+#endif
+#ifndef MSG_CUSTOM
+  #define MSG_CUSTOM                          _UxGT("Custom ")
+#endif
+#ifndef MSG_LED_PRESET
+  #define MSG_LED_PRESET                      _UxGT("Preset ")
+#endif
+#ifndef MSG_LED_DEFAULT
+  #define MSG_LED_DEFAULT                     _UxGT("Default ")
+#endif
+#ifndef MSG_LIGHTS
+  #define MSG_LIGHTS                          _UxGT("Lights ")
+#endif
+#ifndef MSG_LED_INTENSITY
+  #define MSG_LED_INTENSITY                   _UxGT("Intensity ")
+#endif
+#ifndef MSG_LED_CUSTOM
+  #define MSG_LED_CUSTOM                      _UxGT("Custom LED")
+#endif
+#ifndef MSG_LED_SAVE
+  #define MSG_LED_SAVE                        _UxGT("Save ")
+#endif
+#ifndef MSG_LED_LOAD
+  #define MSG_LED_LOAD                        _UxGT("Load ")
+#endif
 #ifndef MSG_MOVING
   #define MSG_MOVING                          _UxGT("Moving...")
 #endif
@@ -839,7 +891,6 @@
     #define MSG_INFO_PRINT_FILAMENT           _UxGT("Extruded")
   #endif
 #endif
-
 #ifndef MSG_INFO_MIN_TEMP
   #define MSG_INFO_MIN_TEMP                   _UxGT("Min Temp")
 #endif
diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp
index 239b262290d87d9f1aac607c029cc0e0cd848168..06adb16d798e9663ba66d90ddb37b04e5856f0d5 100644
--- a/Marlin/src/lcd/ultralcd.cpp
+++ b/Marlin/src/lcd/ultralcd.cpp
@@ -55,6 +55,10 @@
   #include "../feature/bedlevel/bedlevel.h"
 #endif
 
+#if ENABLED(LED_CONTROL_MENU)
+  #include "../feature/leds/leds.h"
+#endif
+
 // For i2c define BUZZ to use lcd_buzz
 #if DISABLED(LCD_USE_I2C_BUZZER)
   #include "../libs/buzzer.h"
@@ -185,6 +189,11 @@ uint16_t max_display_update_time = 0;
     void lcd_info_menu();
   #endif // LCD_INFO_MENU
 
+  #if ENABLED(LED_CONTROL_MENU)
+    void lcd_led_menu();
+    void lcd_led_custom_menu();
+  #endif
+
   #if ENABLED(ADVANCED_PAUSE_FEATURE)
     void lcd_advanced_pause_toocold_menu();
     void lcd_advanced_pause_option_menu();
@@ -1014,6 +1023,9 @@ void kill_screen(const char* lcd_msg) {
       MENU_ITEM(submenu, MSG_INFO_MENU, lcd_info_menu);
     #endif
 
+    #if ENABLED(LED_CONTROL_MENU)
+      MENU_ITEM(submenu, "LED Control", lcd_led_menu);
+    #endif
     END_MENU();
   }
 
@@ -3931,6 +3943,132 @@ void kill_screen(const char* lcd_msg) {
     }
   #endif // LCD_INFO_MENU
 
+  /**
+   *
+   * LED Menu
+   *
+   */
+
+  #if ENABLED(LED_CONTROL_MENU)
+
+    bool led_restore_color =
+      #if ENABLED(LED_USER_PRESET_STARTUP)
+        false;
+      #else
+        true;
+      #endif
+
+    extern uint8_t led_intensity_red,
+           led_intensity_green,
+           led_intensity_blue
+           #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_LED)
+             , led_intensity_white
+           #endif
+           #if ENABLED(NEOPIXEL_LED)
+             , led_intensity
+           #endif
+           ;
+
+    void update_leds() {
+      if (led_restore_color) {
+        #if ENABLED(LED_COLOR_PRESETS)
+          led_intensity_red = LED_USER_PRESET_RED;
+          led_intensity_green = LED_USER_PRESET_GREEN;
+          led_intensity_blue = LED_USER_PRESET_BLUE;
+          #if ENABLED(RGBW_LED)
+            led_intensity_white = LED_USER_PRESET_WHITE;
+          #endif
+          #if ENABLED(NEOPIXEL_LED)
+            led_intensity = LED_USER_PRESET_INTENSITY;
+          #endif
+        #else
+          led_intensity_red = 255;
+          led_intensity_green = 255;
+          led_intensity_blue = 255;
+          #if ENABLED(RGBW_LED)
+            led_intensity_white = 0;
+          #endif
+          #if ENABLED(NEOPIXEL_LED)
+            led_intensity = LED_USER_PRESET_INTENSITY;
+          #endif
+        #endif
+        led_restore_color = false;
+      }
+
+      set_led_color(led_intensity_red, led_intensity_green, led_intensity_blue
+        #if ENABLED(RGBW_LED)
+          , led_intensity_white
+        #endif
+        #if ENABLED(NEOPIXEL_LED)
+          , 0, led_intensity
+        #endif
+        );
+      led_restore_color = false;
+    }
+
+    void led_restore_default() {
+      led_restore_color = true;
+      update_leds();
+    }
+
+    void set_leds_off() {
+      set_led_color(0, 0, 0
+        #if ENABLED(RGBW) || ENABLED(NEOPIXEL_LED)
+        , 0
+        #endif
+        );
+    }
+
+    void lcd_led_red()    { set_led_color(255, 0, 0); }
+    void lcd_led_orange() { set_led_color(150, 60, 0); }
+    void lcd_led_yellow() { set_led_color(255, 255, 0); }
+    void lcd_led_green()  { set_led_color(0, 255, 0); }
+    void lcd_led_blue()   { set_led_color(0, 0, 255); }
+    void lcd_led_purple() { set_led_color(255, 0, 255); }
+
+    void lcd_led_presets_menu() {
+      START_MENU();
+      MENU_BACK(MSG_LED_CONTROL);
+      MENU_ITEM(function, MSG_LED_ON MSG_RED MSG_LIGHTS, lcd_led_red);
+      MENU_ITEM(function, MSG_LED_ON MSG_ORANGE MSG_LIGHTS, lcd_led_orange);
+      MENU_ITEM(function, MSG_LED_ON MSG_YELLOW MSG_LIGHTS,lcd_led_yellow);
+      MENU_ITEM(function, MSG_LED_ON MSG_GREEN MSG_LIGHTS, lcd_led_green);
+      MENU_ITEM(function, MSG_LED_ON MSG_BLUE MSG_LIGHTS, lcd_led_blue);
+      MENU_ITEM(function, MSG_LED_ON MSG_PURPLE MSG_LIGHTS, lcd_led_purple);
+      MENU_ITEM(function, MSG_LED_ON MSG_WHITE MSG_LIGHTS, set_led_white);
+      END_MENU();
+    }
+
+    void lcd_led_custom_menu() {
+      START_MENU();
+      MENU_BACK(MSG_LED_CONTROL);
+      MENU_ITEM_EDIT_CALLBACK(int8, MSG_RED MSG_LED_INTENSITY, &led_intensity_red, 0, 255, update_leds, true);
+      MENU_ITEM_EDIT_CALLBACK(int8, MSG_GREEN MSG_LED_INTENSITY, &led_intensity_green, 0, 255, update_leds, true);
+      MENU_ITEM_EDIT_CALLBACK(int8, MSG_BLUE MSG_LED_INTENSITY, &led_intensity_blue, 0, 255, update_leds, true);
+      #if ENABLED(RGBW_LED) || ENABLED(NEOPIXEL_LED)
+        MENU_ITEM_EDIT_CALLBACK(int8, MSG_WHITE MSG_LED_INTENSITY, &led_intensity_white, 0, 255, update_leds, true);
+      #endif
+      #if ENABLED(NEOPIXEL_LED)
+        MENU_ITEM_EDIT_CALLBACK(int8, MSG_LED_INTENSITY, &led_intensity, 0, 255, update_leds, true);
+      #endif
+      END_MENU();
+    }
+
+    void lcd_led_menu() {
+      START_MENU();
+      MENU_BACK(MSG_MAIN);
+      MENU_ITEM(function, MSG_LIGHTS MSG_OFF, set_leds_off); // works
+      MENU_ITEM(function, MSG_LIGHTS MSG_ON, update_leds); // works
+      MENU_ITEM(function, MSG_LED_LOAD MSG_LED_DEFAULT MSG_LIGHTS, led_restore_default); // works
+      #if ENABLED(LED_COLOR_PRESETS)
+        MENU_ITEM(submenu, MSG_LED_PRESET MSG_LIGHTS, lcd_led_presets_menu);
+      #endif
+      MENU_ITEM(submenu, MSG_CUSTOM MSG_LIGHTS, lcd_led_custom_menu);
+      END_MENU();
+    }
+
+  #endif // LED_CONTROL_MENU
+
   /**
    *
    * Filament Change Feature Screens