diff --git a/tasmota/include/tasmota_template.h b/tasmota/include/tasmota_template.h index 2532eebb1..56b259e99 100644 --- a/tasmota/include/tasmota_template.h +++ b/tasmota/include/tasmota_template.h @@ -3172,12 +3172,12 @@ const mytmplt kModules[] PROGMEM = { AGPIO(GPIO_USER), // 11 IO GPIO11, TOUCH9, LP_GPIO11 AGPIO(GPIO_USER), // 12 IO GPIO12, TOUCH10, LP_GPIO12 AGPIO(GPIO_USER), // 13 IO GPIO13, TOUCH11, LP_GPIO13 - AGPIO(GPIO_USER), // 14 IO GPIO14, TOUCH12, LP_GPIO14 - AGPIO(GPIO_USER), // 15 IO GPIO15, TOUCH13, LP_GPIO15 - AGPIO(GPIO_USER), // 16 IO GPIO16, ADC1_CH0 - AGPIO(GPIO_USER), // 17 IO GPIO17, ADC1_CH1 - AGPIO(GPIO_USER), // 18 IO GPIO18, ADC1_CH2 - AGPIO(GPIO_USER), // 19 IO GPIO19, ADC1_CH3 + AGPIO(GPIO_USER), // 14 IO GPIO14, TOUCH12, LP_GPIO14, SDIO2_D0 ESPHosted (ESP32C6 GPIO20) + AGPIO(GPIO_USER), // 15 IO GPIO15, TOUCH13, LP_GPIO15, SDIO2_D1 ESPHosted (ESP32C6 GPIO21) + AGPIO(GPIO_USER), // 16 IO GPIO16, ADC1_CH0, SDIO2_D2 ESPHosted (ESP32C6 GPIO22) + AGPIO(GPIO_USER), // 17 IO GPIO17, ADC1_CH1, SDIO2_D3 ESPHosted (ESP32C6 GPIO23) + AGPIO(GPIO_USER), // 18 IO GPIO18, ADC1_CH2, SDIO2_CLK ESPHosted (ESP32C6 GPIO19) + AGPIO(GPIO_USER), // 19 IO GPIO19, ADC1_CH3, SDIO2_CMD ESPHosted (ESP32C6 GPIO18) AGPIO(GPIO_USER), // 20 IO GPIO20, ADC1_CH4 AGPIO(GPIO_USER), // 21 IO GPIO21, ADC1_CH5 AGPIO(GPIO_USER), // 22 IO GPIO22, ADC1_CH6 diff --git a/tasmota/tasmota_support/support_hosted_mcu.ino b/tasmota/tasmota_support/support_hosted_mcu.ino index b6b952ee9..fec22d2a4 100644 --- a/tasmota/tasmota_support/support_hosted_mcu.ino +++ b/tasmota/tasmota_support/support_hosted_mcu.ino @@ -25,21 +25,32 @@ #include "esp_hosted_api_types.h" #include "esp_hosted_ota.h" -String GetHostedMCUFwVersion() -{ - if(!esp_hosted_is_config_valid()) { +String GetHostedMCUFwVersion(void) { + static int major1 = -1; + static int minor1; + static int patch1; + + if (!esp_hosted_is_config_valid()) { return String(""); } - esp_hosted_coprocessor_fwver_t ver_info; - esp_err_t err = esp_hosted_get_coprocessor_fwversion(&ver_info); - if (err == ESP_OK) { - char data[40]; - snprintf_P(data, sizeof(data), PSTR("%d.%d.%d"), ver_info.major1,ver_info.minor1,ver_info.patch1); - // AddLog(LOG_LEVEL_DEBUG, PSTR("Fw: %d.%d.%d"), ver_info.major1, ver_info.minor1, ver_info.patch1); - return String(data); + if (-1 == major1) { + major1 = 0; + minor1 = 0; + patch1 = 6; + esp_hosted_coprocessor_fwver_t ver_info; + esp_err_t err = esp_hosted_get_coprocessor_fwversion(&ver_info); // This takes almost 4 seconds + if (err == ESP_OK) { + major1 = ver_info.major1; + minor1 = ver_info.minor1; + patch1 = ver_info.patch1; + } else { + // We can not know exactly, as API was added after 0.0.6 + AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("HST: Error %d, hosted version 0.0.6 or older"), err); + } } - AddLog(LOG_LEVEL_DEBUG, PSTR("Err: %d, version 0.0..6 or older"), err); - return String(PSTR("0.0.6")); // we can not know exactly, but API was added after 0.0.6 + char data[40]; + snprintf_P(data, sizeof(data), PSTR("%d.%d.%d"), major1, minor1, patch1); + return String(data); } void OTAHostedMCU(const char* image_url) {