diff --git a/tasmota/include/tasmota_template.h b/tasmota/include/tasmota_template.h index 1e590d1fa..f4e2ca3e3 100644 --- a/tasmota/include/tasmota_template.h +++ b/tasmota/include/tasmota_template.h @@ -1412,19 +1412,6 @@ const char PINS_WEMOS[] PROGMEM = "AOAOAOAOAOIOIOIOIOIOIOFLFLFLFLFLFLFLIORXTX"; // 0 1 2 3 4 5 6 7 8 9101112131415161718192021 const char PINS_WEMOS[] PROGMEM = "AOAOAOAOAOAOIOIOIOIOIOFLFLFLFLFLFLFLIOIORXTX"; -//#elif CONFIG_IDF_TARGET_ESP32C5 - -/* **************************************** - * ESP32C5 - * ****************************************/ -//#define MAX_GPIO_PIN 27 // Number of supported GPIO -//#define MIN_FLASH_PINS 0 // Number of flash chip pins unusable for configuration (GPIO24 to 30) -//#define MAX_USER_PINS 27 // MAX_GPIO_PIN - MIN_FLASH_PINS -//#define WEMOS_MODULE 0 // Wemos module - -// 0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526 -//const char PINS_WEMOS[] PROGMEM = "AOAOAOAOAOAOAOIOIOIOIOIOIOIOIOIOTXRXIOIOIOIOIOIOFLFLFL"; - #elif CONFIG_IDF_TARGET_ESP32C6 /* **************************************** @@ -1467,6 +1454,18 @@ const char PINS_WEMOS[] PROGMEM = "IOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOIO- // 0 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142434445464748 const char PINS_WEMOS[] PROGMEM = "IOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOIO--------FLFLFLFLFLFLFLIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIO"; +#elif CONFIG_IDF_TARGET_ESP32C5 // ESP32-C5 +/* **************************************** + * ESP32C5 + * ****************************************/ +#define MAX_GPIO_PIN 27 // Number of supported GPIO +#define MIN_FLASH_PINS 0 // Number of flash chip pins unusable for configuration (GPIO11 to 17) +#define MAX_USER_PINS 27 // MAX_GPIO_PIN - MIN_FLASH_PINS +#define WEMOS_MODULE 0 // Wemos module + +// 0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526 +const char PINS_WEMOS[] PROGMEM = "IOAOAOAOAOAOAOIOIOIOIOIOIOIOIOIOIOIOFLFLFLIOFLFLFLIOIO"; + #else // not CONFIG_IDF_TARGET_ESP32C2/C3/C6 nor CONFIG_IDF_TARGET_ESP32S2 - ESP32 /* **************************************** @@ -3092,37 +3091,28 @@ const char kModuleNames[] PROGMEM = // !!! Update this list in the same order as SupportedModulesESP32C5 !!! const mytmplt kModules[] PROGMEM = { { // Generic ESP32C5 device - AGPIO(GPIO_USER), // 0 IO GPIO0, ADC1_CH0, LP_GPIO0 - AGPIO(GPIO_USER), // 1 IO GPIO1, ADC1_CH1, LP_GPIO1 - AGPIO(GPIO_USER), // 2 IO GPIO2, ADC1_CH2, LP_GPIO2 - AGPIO(GPIO_USER), // 3 IO GPIO3, ADC1_CH3, LP_GPIO3 - AGPIO(GPIO_USER), // 4 IO GPIO4, ADC1_CH4, LP_GPIO4, Strapping - AGPIO(GPIO_USER), // 5 IO GPIO5, ADC1_CH5, LP_GPIO5, Strapping - AGPIO(GPIO_USER), // 6 IO GPIO6, ADC1_CH6, LP_GPIO6 - AGPIO(GPIO_USER), // 7 IO GPIO7, LP_GPIO7 - AGPIO(GPIO_USER), // 8 IO GPIO8, Strapping - AGPIO(GPIO_USER), // 9 IO GPIO9, Strapping - AGPIO(GPIO_USER), // 10 IO GPIO10 (QFN40 only) - AGPIO(GPIO_USER), // 11 IO GPIO11 (QFN40 only) - AGPIO(GPIO_USER), // 12 IO GPIO12, USB-JTAG - AGPIO(GPIO_USER), // 13 IO GPIO13, USB-JTAG - AGPIO(GPIO_USER), // 14 IO GPIO14 (QFN32 only) - AGPIO(GPIO_USER), // 15 IO GPIO15, Strapping - AGPIO(GPIO_USER), // 16 IO TXD0 GPIO16, U0TXD - AGPIO(GPIO_USER), // 17 IO RXD0 GPIO17, U0RXD - AGPIO(GPIO_USER), // 18 IO GPIO18, SDIO_CMD - AGPIO(GPIO_USER), // 19 IO GPIO19, SDIO_CLK - AGPIO(GPIO_USER), // 20 IO GPIO20, SDIO_DATA0 - AGPIO(GPIO_USER), // 21 IO GPIO21, SDIO_DATA1 - AGPIO(GPIO_USER), // 22 IO GPIO22, SDIO_DATA2 - AGPIO(GPIO_USER), // 23 IO GPIO23, SDIO_DATA3 - 0, // 24 IO GPIO24, SPICS1, PSRAM - 0, // 25 IO GPIO25, SPIQ - 0, // 26 IO GPIO26, SPIWP - Free if flash DIO/DOUT - 0, // 27 IO GPIO27, SPIVDD - 0, // 28 IO GPIO28, SPIHD - Free if flash DIO/DOUT - 0, // 29 IO GPIO29, SPICLK - 0, // 30 IO GPIO30, SPID + AGPIO(GPIO_USER), // 0 IO GPIO0, ADC1_CH0, XTAL_32K_P + AGPIO(GPIO_USER), // 1 IO GPIO1, ADC1_CH1, XTAL_32K_N + AGPIO(GPIO_USER), // 2 IO GPIO2, ADC1_CH2, FSPIQ + AGPIO(GPIO_USER), // 3 IO GPIO3, ADC1_CH3 + AGPIO(GPIO_USER), // 4 IO GPIO4, ADC1_CH4, FSPIHD, MTMS + AGPIO(GPIO_USER), // 5 IO GPIO5, ADC2_CH0, FSPIWP, MTDI + AGPIO(GPIO_USER), // 6 IO GPIO6, FSPICLK, MTCK + AGPIO(GPIO_USER), // 7 IO GPIO7, FSPID, MTDO + AGPIO(GPIO_USER), // 8 IO GPIO8 + AGPIO(GPIO_USER), // 9 IO GPIO9 + AGPIO(GPIO_USER), // 10 IO GPIO10 + 0, // 11 IO GPIO11, output power supply for flash + 0, // 12 IO GPIO12, SPIHD - Free if flash DIO/DOUT + 0, // 13 IO GPIO13, SPIWP - Free if flash DIO/DOUT + 0, // 14 IO GPIO14, SPICS0 + 0, // 15 IO GPIO15, SPICLK + 0, // 16 IO GPIO16, SPID + 0, // 17 IO GPIO17, SPIQ + AGPIO(GPIO_USER), // 18 IO GPIO18, USB_D + AGPIO(GPIO_USER), // 19 IO GPIO19, USB_D+ + AGPIO(GPIO_USER), // 20 IO RXD0 GPIO20, U0RXD + AGPIO(GPIO_USER), // 21 IO TXD0 GPIO21, U0TXD 0 // Flag }, }; @@ -3219,7 +3209,7 @@ const char kModuleNames[] PROGMEM = // !!! Update this list in the same order as SupportedModulesESP32S2 !!! const mytmplt kModules[] PROGMEM = { - { // Generic ESP32C3 device + { // Generic ESP32S2 device AGPIO(GPIO_USER), // 0 IO GPIO0, RTC_GPIO0, Strapping AGPIO(GPIO_USER), // 1 AO GPIO1, ADC1_CH0, RTC_GPIO1 AGPIO(GPIO_USER), // 2 AO GPIO2, ADC1_CH1, RTC_GPIO2 @@ -3299,7 +3289,7 @@ const char kModuleNames[] PROGMEM = // !!! Update this list in the same order as SupportedModulesESP32S2 !!! const mytmplt kModules[] PROGMEM = { - { // Generic ESP32C3 device + { // Generic ESP32S3 device AGPIO(GPIO_USER), // 0 IO RTC_GPIO0, GPIO0, Strapping AGPIO(GPIO_USER), // 1 AO RTC_GPIO1, GPIO1, TOUCH1, ADC1_CH0 AGPIO(GPIO_USER), // 2 AO RTC_GPIO2, GPIO2, TOUCH2, ADC1_CH1 diff --git a/tasmota/include/tasmota_types.h b/tasmota/include/tasmota_types.h index da7f9446e..8364eb0e0 100644 --- a/tasmota/include/tasmota_types.h +++ b/tasmota/include/tasmota_types.h @@ -592,7 +592,7 @@ typedef struct { // End of remapping, next is all other CPUs // ---------------------------------------- #else - myio my_gp; // 3AC 2x18 bytes (ESP8266) / 2x40 bytes (ESP32) / 2x21 bytes (ESP32-C2) / 2x22 bytes (ESP32-C3) / 2x31 bytes (ESP32-C6) / 2x47 bytes (ESP32-S2) + myio my_gp; // 3AC 2x18 bytes (ESP8266) / 2x40 bytes (ESP32) / 2x21 bytes (ESP32-C2) / 2x22 bytes (ESP32-C3) / 2x31 bytes (ESP32-C6) / 2x47 bytes (ESP32-S2) / 2x27 bytes (ESP32-C5) #ifdef ESP8266 uint16_t gpio16_converted; // 3D0 uint8_t free_esp8266_3D2[42]; // 3D2 @@ -604,9 +604,11 @@ typedef struct { uint8_t free_esp32c3_3D8[36]; // 3D8 - Due to smaller myio #elif CONFIG_IDF_TARGET_ESP32C6 uint8_t free_esp32c6_3EA[18]; // 3EA - Due to smaller myio + #elif CONFIG_IDF_TARGET_ESP32C5 + uint8_t free_esp32c5_3E2[26]; // 3E2 - Due to smaller myio #endif // CONFIG_IDF_TARGET_ESP32C2/3/6 #endif // ESP32 - mytmplt user_template; // 3FC 2x15 bytes (ESP8266) / 2x37 bytes (ESP32) / 2x22 bytes (ESP32-C2) / 2x23 bytes (ESP32-C3) / 2x32 bytes (ESP32-C6) / 2x37 bytes (ESP32-S2) + mytmplt user_template; // 3FC 2x15 bytes (ESP8266) / 2x37 bytes (ESP32) / 2x22 bytes (ESP32-C2) / 2x23 bytes (ESP32-C3) / 2x32 bytes (ESP32-C6) / 2x37 bytes (ESP32-S2) / 2x28 bytes (ESP32-C5) #ifdef ESP8266 uint8_t free_esp8266_41A[55]; // 41A #endif // ESP8266 @@ -617,6 +619,8 @@ typedef struct { uint8_t free_esp32c3_42A[28]; // 42A - Due to smaller mytmplt #elif CONFIG_IDF_TARGET_ESP32C6 uint8_t free_esp32c3_43C[10]; // 43C - Due to smaller mytmplt + #elif CONFIG_IDF_TARGET_ESP32C5 + uint8_t free_esp32c5_434[18]; // 434 - Due to smaller mytmplt #endif // CONFIG_IDF_TARGET_ESP32C2/3/6 uint8_t eth_type; // 446 diff --git a/tasmota/tasmota_support/settings.ino b/tasmota/tasmota_support/settings.ino index e3d6f2d88..97e86a762 100644 --- a/tasmota/tasmota_support/settings.ino +++ b/tasmota/tasmota_support/settings.ino @@ -546,6 +546,8 @@ bool SettingsConfigRestore(void) { valid_settings = (5 == settings_buffer[0xF36]); // Settings->config_version ESP32C2 #elif CONFIG_IDF_TARGET_ESP32C6 valid_settings = (6 == settings_buffer[0xF36]); // Settings->config_version ESP32C6 +#elif CONFIG_IDF_TARGET_ESP32C5 + valid_settings = (7 == settings_buffer[0xF36]); // Settings->config_version ESP32C5 #else valid_settings = (1 == settings_buffer[0xF36]); // Settings->config_version ESP32 all other #endif // CONFIG_IDF_TARGET_ESP32S3 @@ -986,6 +988,8 @@ void SettingsDefaultSet2(void) { Settings->config_version = 5; // ESP32C2 #elif CONFIG_IDF_TARGET_ESP32C6 Settings->config_version = 6; // ESP32C6 +#elif CONFIG_IDF_TARGET_ESP32C5 + Settings->config_version = 7; // ESP32C5 #else Settings->config_version = 1; // ESP32 #endif // CONFIG_IDF_TARGET_ESP32S3 @@ -1598,6 +1602,8 @@ void SettingsDelta(void) { Settings->config_version = 5; // ESP32C2 #elif CONFIG_IDF_TARGET_ESP32C6 Settings->config_version = 6; // ESP32C6 +#elif CONFIG_IDF_TARGET_ESP32C5 + Settings->config_version = 7; // ESP32C5 #else Settings->config_version = 1; // ESP32 #endif // CONFIG_IDF_TARGET_ESP32S3