From b14c933171b50c87808367bf14872fb7acced92d Mon Sep 17 00:00:00 2001
From: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date: Mon, 16 Mar 2020 15:59:05 -0500
Subject: [PATCH] LPC1768 EEPROM fallback to flash, add overrides (#17184)

---
 Marlin/src/HAL/DUE/inc/Conditionals_post.h        |  2 +-
 Marlin/src/HAL/ESP32/inc/Conditionals_post.h      |  5 +++++
 Marlin/src/HAL/LPC1768/inc/Conditionals_post.h    |  8 ++------
 Marlin/src/HAL/LPC1768/persistent_store_flash.cpp |  3 +--
 Marlin/src/HAL/SAMD51/inc/Conditionals_post.h     |  2 +-
 Marlin/src/HAL/STM32/inc/Conditionals_post.h      |  5 +++++
 .../src/HAL/STM32_F4_F7/inc/Conditionals_post.h   |  3 +--
 .../src/HAL/TEENSY31_32/inc/Conditionals_post.h   |  5 +++++
 Marlin/src/inc/Conditionals_post.h                |  4 +---
 Marlin/src/inc/SanityCheck.h                      | 15 +++++++++++++++
 Marlin/src/pins/lpc1768/pins_AZSMZ_MINI.h         |  6 ++++++
 Marlin/src/pins/lpc1768/pins_BIQU_B300_V1.0.h     |  6 ++++++
 Marlin/src/pins/lpc1768/pins_BIQU_BQ111_A4.h      |  6 ++++++
 Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h       |  6 ++++++
 Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h       |  6 ++++++
 Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h       |  8 ++++++++
 Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h     |  4 ++++
 Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h     |  6 ++++++
 Marlin/src/pins/lpc1768/pins_MKS_SBASE.h          |  8 ++++++++
 Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h         |  6 ++++++
 Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h       |  6 ++++++
 Marlin/src/pins/lpc1768/pins_SELENA_COMPACT.h     |  6 ++++++
 Marlin/src/pins/lpc1769/pins_AZTEEG_X5_GT.h       |  7 ++++++-
 Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h     |  8 ++++++++
 .../src/pins/lpc1769/pins_AZTEEG_X5_MINI_WIFI.h   |  6 ++++++
 Marlin/src/pins/lpc1769/pins_BTT_SKR_V1_4_TURBO.h |  6 ++++++
 Marlin/src/pins/lpc1769/pins_COHESION3D_MINI.h    |  6 ++++++
 Marlin/src/pins/lpc1769/pins_COHESION3D_REMIX.h   |  6 ++++++
 Marlin/src/pins/lpc1769/pins_MKS_SGEN.h           |  8 +++++++-
 Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h      |  6 ++++++
 Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h       |  6 ++++++
 31 files changed, 168 insertions(+), 17 deletions(-)

diff --git a/Marlin/src/HAL/DUE/inc/Conditionals_post.h b/Marlin/src/HAL/DUE/inc/Conditionals_post.h
index 223890d790..b52462f6d8 100644
--- a/Marlin/src/HAL/DUE/inc/Conditionals_post.h
+++ b/Marlin/src/HAL/DUE/inc/Conditionals_post.h
@@ -24,5 +24,5 @@
 #if USE_EMULATED_EEPROM
   #undef SRAM_EEPROM_EMULATION
   #undef SDCARD_EEPROM_EMULATION
-  #define FLASH_EEPROM_EMULATION 1
+  #define FLASH_EEPROM_EMULATION
 #endif
diff --git a/Marlin/src/HAL/ESP32/inc/Conditionals_post.h b/Marlin/src/HAL/ESP32/inc/Conditionals_post.h
index 0285c52ee3..e51b55698e 100644
--- a/Marlin/src/HAL/ESP32/inc/Conditionals_post.h
+++ b/Marlin/src/HAL/ESP32/inc/Conditionals_post.h
@@ -20,3 +20,8 @@
  *
  */
 #pragma once
+
+// If no real EEPROM, Flash emulation, or SRAM emulation is available fall back to SD emulation
+#if ENABLED(EEPROM_SETTINGS) && NONE(USE_REAL_EEPROM, FLASH_EEPROM_EMULATION, SRAM_EEPROM_EMULATION)
+  #define SDCARD_EEPROM_EMULATION
+#endif
diff --git a/Marlin/src/HAL/LPC1768/inc/Conditionals_post.h b/Marlin/src/HAL/LPC1768/inc/Conditionals_post.h
index 2637174543..a8d102e865 100644
--- a/Marlin/src/HAL/LPC1768/inc/Conditionals_post.h
+++ b/Marlin/src/HAL/LPC1768/inc/Conditionals_post.h
@@ -21,10 +21,6 @@
  */
 #pragma once
 
-#if ENABLED(EEPROM_SETTINGS)
-  #undef USE_REAL_EEPROM
-  #define USE_EMULATED_EEPROM 1
-  #if DISABLED(FLASH_EEPROM_EMULATION)
-    #define SDCARD_EEPROM_EMULATION 1
-  #endif
+#if USE_EMULATED_EEPROM && NONE(SDCARD_EEPROM_EMULATION, SRAM_EEPROM_EMULATION)
+  #define FLASH_EEPROM_EMULATION
 #endif
diff --git a/Marlin/src/HAL/LPC1768/persistent_store_flash.cpp b/Marlin/src/HAL/LPC1768/persistent_store_flash.cpp
index 5525f818a0..e166858d64 100644
--- a/Marlin/src/HAL/LPC1768/persistent_store_flash.cpp
+++ b/Marlin/src/HAL/LPC1768/persistent_store_flash.cpp
@@ -36,12 +36,11 @@
  * 16Kb I/O buffers (intended to hold DMA USB and Ethernet data, but currently
  * unused).
  */
-#include "../../inc/MarlinConfigPre.h"
+#include "../../inc/MarlinConfig.h"
 
 #if ENABLED(FLASH_EEPROM_EMULATION)
 
 #include "persistent_store_api.h"
-#include "../../inc/MarlinConfig.h"
 
 extern "C" {
   #include <lpc17xx_iap.h>
diff --git a/Marlin/src/HAL/SAMD51/inc/Conditionals_post.h b/Marlin/src/HAL/SAMD51/inc/Conditionals_post.h
index 223890d790..b52462f6d8 100644
--- a/Marlin/src/HAL/SAMD51/inc/Conditionals_post.h
+++ b/Marlin/src/HAL/SAMD51/inc/Conditionals_post.h
@@ -24,5 +24,5 @@
 #if USE_EMULATED_EEPROM
   #undef SRAM_EEPROM_EMULATION
   #undef SDCARD_EEPROM_EMULATION
-  #define FLASH_EEPROM_EMULATION 1
+  #define FLASH_EEPROM_EMULATION
 #endif
diff --git a/Marlin/src/HAL/STM32/inc/Conditionals_post.h b/Marlin/src/HAL/STM32/inc/Conditionals_post.h
index 0285c52ee3..e51b55698e 100644
--- a/Marlin/src/HAL/STM32/inc/Conditionals_post.h
+++ b/Marlin/src/HAL/STM32/inc/Conditionals_post.h
@@ -20,3 +20,8 @@
  *
  */
 #pragma once
+
+// If no real EEPROM, Flash emulation, or SRAM emulation is available fall back to SD emulation
+#if ENABLED(EEPROM_SETTINGS) && NONE(USE_REAL_EEPROM, FLASH_EEPROM_EMULATION, SRAM_EEPROM_EMULATION)
+  #define SDCARD_EEPROM_EMULATION
+#endif
diff --git a/Marlin/src/HAL/STM32_F4_F7/inc/Conditionals_post.h b/Marlin/src/HAL/STM32_F4_F7/inc/Conditionals_post.h
index 6e2cf62101..5a190342ac 100644
--- a/Marlin/src/HAL/STM32_F4_F7/inc/Conditionals_post.h
+++ b/Marlin/src/HAL/STM32_F4_F7/inc/Conditionals_post.h
@@ -23,8 +23,7 @@
 
 #if ENABLED(EEPROM_SETTINGS) && defined(STM32F7)
   #undef USE_REAL_EEPROM
-  #define USE_EMULATED_EEPROM 1
   #undef SRAM_EEPROM_EMULATION
   #undef SDCARD_EEPROM_EMULATION
-  #define FLASH_EEPROM_EMULATION 1
+  #define FLASH_EEPROM_EMULATION
 #endif
diff --git a/Marlin/src/HAL/TEENSY31_32/inc/Conditionals_post.h b/Marlin/src/HAL/TEENSY31_32/inc/Conditionals_post.h
index 0285c52ee3..e51b55698e 100644
--- a/Marlin/src/HAL/TEENSY31_32/inc/Conditionals_post.h
+++ b/Marlin/src/HAL/TEENSY31_32/inc/Conditionals_post.h
@@ -20,3 +20,8 @@
  *
  */
 #pragma once
+
+// If no real EEPROM, Flash emulation, or SRAM emulation is available fall back to SD emulation
+#if ENABLED(EEPROM_SETTINGS) && NONE(USE_REAL_EEPROM, FLASH_EEPROM_EMULATION, SRAM_EEPROM_EMULATION)
+  #define SDCARD_EEPROM_EMULATION
+#endif
diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h
index 97090d4775..ebc77b9383 100644
--- a/Marlin/src/inc/Conditionals_post.h
+++ b/Marlin/src/inc/Conditionals_post.h
@@ -35,15 +35,13 @@
   #define HAS_LINEAR_E_JERK 1
 #endif
 
+// If no real EEPROM, Flash emulation, or SRAM emulation is available fall back to SD emulation
 #if ENABLED(EEPROM_SETTINGS)
   #if NONE(FLASH_EEPROM_EMULATION, SRAM_EEPROM_EMULATION, SDCARD_EEPROM_EMULATION) && EITHER(I2C_EEPROM, SPI_EEPROM)
     #define USE_REAL_EEPROM 1
   #else
     #define USE_EMULATED_EEPROM 1
   #endif
-  #if NONE(USE_REAL_EEPROM, FLASH_EEPROM_EMULATION, SRAM_EEPROM_EMULATION)
-    #define SDCARD_EEPROM_EMULATION 1
-  #endif
 #else
   #undef I2C_EEPROM
   #undef SPI_EEPROM
diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h
index 454183e548..574d6a336e 100644
--- a/Marlin/src/inc/SanityCheck.h
+++ b/Marlin/src/inc/SanityCheck.h
@@ -1993,9 +1993,24 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
     static_assert(PWM_PIN(E2_AUTO_FAN_PIN), "E2" AF_ERR_SUFF);
   #elif HAS_AUTO_FAN_3
     static_assert(PWM_PIN(E3_AUTO_FAN_PIN), "E3" AF_ERR_SUFF);
+  #elif HAS_AUTO_FAN_4
+    static_assert(PWM_PIN(E4_AUTO_FAN_PIN), "E4" AF_ERR_SUFF);
+  #elif HAS_AUTO_FAN_5
+    static_assert(PWM_PIN(E5_AUTO_FAN_PIN), "E5" AF_ERR_SUFF);
+  #elif HAS_AUTO_FAN_6
+    static_assert(PWM_PIN(E6_AUTO_FAN_PIN), "E6" AF_ERR_SUFF);
+  #elif HAS_AUTO_FAN_7
+    static_assert(PWM_PIN(E7_AUTO_FAN_PIN), "E7" AF_ERR_SUFF);
   #endif
 #endif
 
+/**
+ * Make sure only one EEPROM type is enabled
+ */
+#if ENABLED(EEPROM_SETTINGS) && 1 < ENABLED(SDCARD_EEPROM_EMULATION) + ENABLED(FLASH_EEPROM_EMULATION) + ENABLED(SRAM_EEPROM_EMULATION)
+  #error "Please select only one of SDCARD, FLASH, or SRAM_EEPROM_EMULATION."
+#endif
+
 /**
  * Make sure only one display is enabled
  */
diff --git a/Marlin/src/pins/lpc1768/pins_AZSMZ_MINI.h b/Marlin/src/pins/lpc1768/pins_AZSMZ_MINI.h
index 1f02f9299e..ef064694ab 100644
--- a/Marlin/src/pins/lpc1768/pins_AZSMZ_MINI.h
+++ b/Marlin/src/pins/lpc1768/pins_AZSMZ_MINI.h
@@ -31,6 +31,12 @@
 
 #define BOARD_INFO_NAME "AZSMZ MINI"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Servos
 //
diff --git a/Marlin/src/pins/lpc1768/pins_BIQU_B300_V1.0.h b/Marlin/src/pins/lpc1768/pins_BIQU_B300_V1.0.h
index 4ff4ebc73b..a4800dcc73 100644
--- a/Marlin/src/pins/lpc1768/pins_BIQU_B300_V1.0.h
+++ b/Marlin/src/pins/lpc1768/pins_BIQU_B300_V1.0.h
@@ -38,6 +38,12 @@
   #define BOARD_INFO_NAME "BIQU Thunder B300 V1.0"
 #endif
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Limit Switches
 //
diff --git a/Marlin/src/pins/lpc1768/pins_BIQU_BQ111_A4.h b/Marlin/src/pins/lpc1768/pins_BIQU_BQ111_A4.h
index 17a9b7d58d..549b44019a 100644
--- a/Marlin/src/pins/lpc1768/pins_BIQU_BQ111_A4.h
+++ b/Marlin/src/pins/lpc1768/pins_BIQU_BQ111_A4.h
@@ -36,6 +36,12 @@
 
 #define BOARD_INFO_NAME "BIQU BQ111-A4"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Limit Switches
 //
diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h
index 104f40fdf1..feadafa592 100644
--- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h
+++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h
@@ -23,6 +23,12 @@
 
 #define BOARD_INFO_NAME "BIGTREE SKR 1.1"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Limit Switches
 //
diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h
index bd0ad468de..3bd2640665 100644
--- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h
+++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h
@@ -23,6 +23,12 @@
 
 #define BOARD_INFO_NAME "BIGTREE SKR 1.3"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 /**
  * Trinamic Stallguard pins
  */
diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h
index 3fb66aa156..25a8dda3a7 100644
--- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h
+++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h
@@ -25,6 +25,14 @@
   #define BOARD_INFO_NAME "BIGTREE SKR 1.4"
 #endif
 
+//
+// EEPROM
+//
+#if NONE(FLASH_EEPROM_EMULATION, SDCARD_EEPROM_EMULATION)
+  #define FLASH_EEPROM_EMULATION
+  //#define SDCARD_EEPROM_EMULATION
+#endif
+
 //
 // SD Connection
 //
diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h
index e84d3de2b1..2844fb3cda 100644
--- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h
+++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_common.h
@@ -32,6 +32,10 @@
 // Ignore temp readings during development.
 //#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
 
+#if DISABLED(SDCARD_EEPROM_EMULATION)
+  #define FLASH_EEPROM_EMULATION
+#endif
+
 //
 // Steppers
 //
diff --git a/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h b/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h
index 28445962ac..5ebf6ecba1 100644
--- a/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h
+++ b/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h
@@ -30,6 +30,12 @@
 // Ignore temp readings during develpment.
 //#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Enable 12MHz clock output on P1.27 pin to sync TMC2208 chip clocks
 //
diff --git a/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h b/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h
index b3dba6794c..6fb38f3e46 100644
--- a/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h
+++ b/Marlin/src/pins/lpc1768/pins_MKS_SBASE.h
@@ -38,6 +38,14 @@
   #define BOARD_WEBSITE_URL "github.com/makerbase-mks/MKS-SBASE"
 #endif
 
+//
+// EEPROM
+//
+#if NONE(FLASH_EEPROM_EMULATION, SDCARD_EEPROM_EMULATION)
+  #define FLASH_EEPROM_EMULATION
+  //#define SDCARD_EEPROM_EMULATION
+#endif
+
 #define LED_PIN            P1_18   // Used as a status indicator
 #define LED2_PIN           P1_19
 #define LED3_PIN           P1_20
diff --git a/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h b/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h
index 58f9eb5493..e7471f6ec6 100644
--- a/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h
+++ b/Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h
@@ -32,6 +32,12 @@
 #define BOARD_INFO_NAME   "MKS SGen-L"
 #define BOARD_WEBSITE_URL "github.com/makerbase-mks/MKS-SGEN_L"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Servos
 //
diff --git a/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h b/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h
index bf989798fd..18c3ee992b 100644
--- a/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h
+++ b/Marlin/src/pins/lpc1768/pins_RAMPS_RE_ARM.h
@@ -42,6 +42,12 @@
 
 #define BOARD_INFO_NAME "Re-ARM RAMPS 1.4"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Servos
 //
diff --git a/Marlin/src/pins/lpc1768/pins_SELENA_COMPACT.h b/Marlin/src/pins/lpc1768/pins_SELENA_COMPACT.h
index 1a8e997eb2..3c55ac9be3 100644
--- a/Marlin/src/pins/lpc1768/pins_SELENA_COMPACT.h
+++ b/Marlin/src/pins/lpc1768/pins_SELENA_COMPACT.h
@@ -32,6 +32,12 @@
 #define BOARD_INFO_NAME   "Selena Compact"
 #define BOARD_WEBSITE_URL "github.com/Ales2-k/Selena"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Servos
 //
diff --git a/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_GT.h b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_GT.h
index 5ee0e58566..1b91e4f50b 100644
--- a/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_GT.h
+++ b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_GT.h
@@ -32,6 +32,12 @@
 #define BOARD_INFO_NAME   "Azteeg X5 GT"
 #define BOARD_WEBSITE_URL "tinyurl.com/yx8tdqa3"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Servos
 //
@@ -47,7 +53,6 @@
 #define Z_MIN_PIN          P1_26
 #define Z_MAX_PIN          P1_29
 
-
 //
 // Steppers
 //
diff --git a/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h
index 2c54bd6035..7559d6ad50 100644
--- a/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h
+++ b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI.h
@@ -187,6 +187,14 @@
 
 #endif // HAS_SPI_LCD
 
+//
+// EEPROM
+//
+#if NONE(FLASH_EEPROM_EMULATION, SDCARD_EEPROM_EMULATION)
+  #define FLASH_EEPROM_EMULATION
+  //#define SDCARD_EEPROM_EMULATION
+#endif
+
 //
 // SD Support
 //
diff --git a/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI_WIFI.h b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI_WIFI.h
index 4b731ae9d3..1e5d2f3a2c 100644
--- a/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI_WIFI.h
+++ b/Marlin/src/pins/lpc1769/pins_AZTEEG_X5_MINI_WIFI.h
@@ -31,6 +31,12 @@
 
 #define BOARD_INFO_NAME "Azteeg X5 MINI WIFI"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // DIGIPOT slave addresses
 //
diff --git a/Marlin/src/pins/lpc1769/pins_BTT_SKR_V1_4_TURBO.h b/Marlin/src/pins/lpc1769/pins_BTT_SKR_V1_4_TURBO.h
index 937ba56bb7..a8649b6f8d 100644
--- a/Marlin/src/pins/lpc1769/pins_BTT_SKR_V1_4_TURBO.h
+++ b/Marlin/src/pins/lpc1769/pins_BTT_SKR_V1_4_TURBO.h
@@ -24,6 +24,12 @@
 #define BOARD_INFO_NAME "BIGTREE SKR 1.4 TURBO"
 #define SKR_HAS_LPC1769
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Include SKR 1.4 pins
 //
diff --git a/Marlin/src/pins/lpc1769/pins_COHESION3D_MINI.h b/Marlin/src/pins/lpc1769/pins_COHESION3D_MINI.h
index 739603e2b6..3556ff83f0 100644
--- a/Marlin/src/pins/lpc1769/pins_COHESION3D_MINI.h
+++ b/Marlin/src/pins/lpc1769/pins_COHESION3D_MINI.h
@@ -31,6 +31,12 @@
 
 #define BOARD_INFO_NAME "Cohesion3D Mini"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Servos
 //
diff --git a/Marlin/src/pins/lpc1769/pins_COHESION3D_REMIX.h b/Marlin/src/pins/lpc1769/pins_COHESION3D_REMIX.h
index 58bf0d6e71..2502c76580 100644
--- a/Marlin/src/pins/lpc1769/pins_COHESION3D_REMIX.h
+++ b/Marlin/src/pins/lpc1769/pins_COHESION3D_REMIX.h
@@ -31,6 +31,12 @@
 
 #define BOARD_INFO_NAME "Cohesion3D ReMix"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Servos
 //
diff --git a/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h b/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h
index a5a91f6207..cac0868d51 100644
--- a/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h
+++ b/Marlin/src/pins/lpc1769/pins_MKS_SGEN.h
@@ -31,8 +31,14 @@
 
 #define BOARD_INFO_NAME   "MKS SGen"
 #define BOARD_WEBSITE_URL "github.com/makerbase-mks/MKS-SGEN"
-#define MKS_HAS_LPC1769
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
+#define MKS_HAS_LPC1769
 #include "../lpc1768/pins_MKS_SBASE.h"
 
 #undef E1_STEP_PIN
diff --git a/Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h b/Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h
index 5bf64e9d02..3db8a99403 100644
--- a/Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h
+++ b/Marlin/src/pins/lpc1769/pins_SMOOTHIEBOARD.h
@@ -32,6 +32,12 @@
 #define BOARD_INFO_NAME   "Smoothieboard"
 #define BOARD_WEBSITE_URL "smoothieware.org/smoothieboard"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Servos
 //
diff --git a/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h b/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h
index 8f7d00bb3b..9f28c2d94e 100644
--- a/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h
+++ b/Marlin/src/pins/lpc1769/pins_TH3D_EZBOARD.h
@@ -32,6 +32,12 @@
 #define BOARD_INFO_NAME   "TH3D EZBoard"
 #define BOARD_WEBSITE_URL "th3dstudio.com"
 
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
 //
 // Servos
 //
-- 
GitLab