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 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 //