From e5572b2faddba9891e7df4322da305147410f30b Mon Sep 17 00:00:00 2001 From: XupaMisto Date: Sat, 22 Nov 2025 00:13:32 +0000 Subject: [PATCH] inicio do uso da eeprom --- .vscode/settings.json | 13 +- main/CMakeLists.txt | 16 +- main/creditos.c | 34 + main/eeprom_animacao.c | 48 + main/fs_handler.c | 54 - main/include/creditos.h | 8 + main/include/eeprom_animacao.h | 12 + main/include/led_driver.h | 44 +- main/include/led_effects.h | 10 + main/include/led_task.h | 3 + main/include/mqtt_comandos.h | 1 - main/include/mqtt_handler.h | 14 +- main/led_driver.c | 204 ++- main/led_effects.c | 115 ++ main/led_strip/led_strip.c | 65 - main/led_strip/led_strip.h | 46 - main/led_strip/led_strip_encoder.c | 124 -- main/led_strip/led_strip_encoder.h | 28 - main/led_task.c | 42 + main/main.c | 114 +- main/mqtt_comandos.c | 178 ++- main/mqtt_handler.c | 131 +- sdkconfig | 12 +- sdkconfig.old | 1858 ---------------------------- workspace.code-workspace | 4 +- 25 files changed, 650 insertions(+), 2528 deletions(-) create mode 100644 main/creditos.c create mode 100644 main/eeprom_animacao.c delete mode 100644 main/fs_handler.c create mode 100644 main/include/creditos.h create mode 100644 main/include/eeprom_animacao.h create mode 100644 main/include/led_effects.h create mode 100644 main/include/led_task.h create mode 100644 main/led_effects.c delete mode 100644 main/led_strip/led_strip.c delete mode 100644 main/led_strip/led_strip.h delete mode 100644 main/led_strip/led_strip_encoder.c delete mode 100644 main/led_strip/led_strip_encoder.h create mode 100644 main/led_task.c delete mode 100644 sdkconfig.old diff --git a/.vscode/settings.json b/.vscode/settings.json index 2f77ab5..f8db8b2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,8 +3,14 @@ "*.c": "c", "*.h": "c" }, + "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools", - "C_Cpp.default.compileCommands": "Z:/varios/LED_shit/build/compile_commands.json", + "C_Cpp.default.compileCommands": "${workspaceFolder}/build/compile_commands.json", + + "C_Cpp.default.includePath": [ + "${workspaceFolder}/**", + "C:/ESP/frameworks/v5.1.6/esp-idf/components/**" + ], "idf.espIdfPath": "C:/Users/carec/esp/v5.1.6/esp-idf", "idf.pythonBinPath": "C:/Users/carec/.espressif/python_env/idf5.1_py3.11_env/Scripts/python.exe", @@ -14,8 +20,9 @@ "idf.adapterTargetName": "esp32", "idf.portWin": "COM3", "idf.flashType": "UART", - "idf.buildDir": "C:/esp_build_temp", - "idf.flashDir": "C:/esp_build_temp", + + "idf.buildDir": "${workspaceFolder}/build", + "idf.flashDir": "${workspaceFolder}/build", "cmake.buildDirectory": "${workspaceFolder}/build", "cmake.configureSettings": { diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index fd7158a..23f0c2c 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -4,20 +4,17 @@ idf_component_register( "wifi_config_portal.c" "mqtt_handler.c" "mqtt_comandos.c" - "fs_handler.c" "eeprom_tls.c" "eeprom_virtual.c" - "dns_server.c" - - # LED driver - "${CMAKE_CURRENT_SOURCE_DIR}/led_driver.c" - "${CMAKE_CURRENT_SOURCE_DIR}/led_strip/led_strip.c" - "${CMAKE_CURRENT_SOURCE_DIR}/led_strip/led_strip_encoder.c" + "dns_server.c" + "led_driver.c" + "led_effects.c" + "eeprom_animacao.c" + "led_task.c" + "creditos.c" INCLUDE_DIRS - "." "include" - "${CMAKE_CURRENT_SOURCE_DIR}/led_strip" REQUIRES esp_wifi @@ -26,7 +23,6 @@ idf_component_register( nvs_flash mqtt json - spiffs driver esp_http_server ) diff --git a/main/creditos.c b/main/creditos.c new file mode 100644 index 0000000..e2c2854 --- /dev/null +++ b/main/creditos.c @@ -0,0 +1,34 @@ +#include "creditos.h" +#include "led_driver.h" +#include "esp_random.h" +#include "esp_log.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_random.h" +#include "esp_log.h" + + +volatile bool tem_creditos = false; +static const char *TAG = "CREDITOS"; + +void creditos_dar(void) { + tem_creditos = true; + ESP_LOGI(TAG, "💰 Crédito recebido"); +} + +void creditos_task(void *pv) { + while (1) { + + if (tem_creditos) { + uint16_t pos = esp_random() % LED_COUNT; + + ESP_LOGI(TAG, "🎯 SPIN -> posição %u", pos); + + led_spin_to(pos, 2, 12, 80); + + tem_creditos = false; // crédito consumido + } + + vTaskDelay(pdMS_TO_TICKS(50)); + } +} diff --git a/main/eeprom_animacao.c b/main/eeprom_animacao.c new file mode 100644 index 0000000..d788b4e --- /dev/null +++ b/main/eeprom_animacao.c @@ -0,0 +1,48 @@ +#include "eeprom_animacao.h" +#include "nvs.h" +#include "nvs_flash.h" +#include "esp_log.h" + +static const char *TAG = "EEPROM_ANIM"; + +#define NAMESPACE "storage" +#define KEY_ANIM "animacao" + +// valor em RAM, sempre igual ao guardado +uint8_t animacao = 0; + +void animacao_load(void) +{ + nvs_handle_t handle; + esp_err_t err = nvs_open(NAMESPACE, NVS_READONLY, &handle); + + if (err == ESP_OK) { + err = nvs_get_u8(handle, KEY_ANIM, &animacao); + nvs_close(handle); + + if (err != ESP_OK) { + animacao = 0; // default + } + } else { + animacao = 0; // default + } + + ESP_LOGI(TAG, "Carregado animacao = %u", animacao); +} + +void animacao_save(uint8_t v) +{ + nvs_handle_t handle; + esp_err_t err = nvs_open(NAMESPACE, NVS_READWRITE, &handle); + + if (err == ESP_OK) { + nvs_set_u8(handle, KEY_ANIM, v); + nvs_commit(handle); + nvs_close(handle); + + animacao = v; // atualiza RAM também + ESP_LOGI(TAG, "Gravado animacao = %u", v); + } else { + ESP_LOGW(TAG, "Falha ao abrir NVS p/ animacao"); + } +} diff --git a/main/fs_handler.c b/main/fs_handler.c deleted file mode 100644 index 1a3ee20..0000000 --- a/main/fs_handler.c +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include "esp_log.h" -#include "esp_spiffs.h" - -static const char *TAG = "FS"; - -// --- MONTAR SPIFFS --- -void fs_init(void) { - esp_vfs_spiffs_conf_t conf = { - .base_path = "/spiffs", - .partition_label = "storage", - .max_files = 5, - .format_if_mount_failed = true - }; - - esp_err_t ret = esp_vfs_spiffs_register(&conf); - if (ret != ESP_OK) { - ESP_LOGE(TAG, "❌ Falha ao montar SPIFFS (%s)", esp_err_to_name(ret)); - return; - } - - size_t total = 0, used = 0; - ret = esp_spiffs_info(conf.partition_label, &total, &used); - if (ret != ESP_OK) { - ESP_LOGE(TAG, "❌ Erro ao obter info SPIFFS (%s)", esp_err_to_name(ret)); - return; - } - - ESP_LOGI(TAG, "📂 SPIFFS montado: total=%d KB, usado=%d KB", - (int)(total / 1024), (int)(used / 1024)); - - // Criar ficheiro de exemplo se não existir - FILE *f = fopen("/spiffs/config.json", "r"); - if (!f) { - ESP_LOGW(TAG, "⚠️ config.json não existe, a criar..."); - f = fopen("/spiffs/config.json", "w"); - if (f) { - fprintf(f, "{ \"ssid\": \"ALQAEDA\", \"pass\": \"1q2w3e4r5t\" }"); - fclose(f); - ESP_LOGI(TAG, "✅ config.json criado."); - } else { - ESP_LOGE(TAG, "❌ Erro a criar config.json"); - } - } else { - fclose(f); - } -} - -// --- DESMONTAR SPIFFS --- -void fs_deinit(void) { - ESP_LOGI(TAG, "🧹 Desmontando SPIFFS..."); - esp_vfs_spiffs_unregister(NULL); -} diff --git a/main/include/creditos.h b/main/include/creditos.h new file mode 100644 index 0000000..1e83aee --- /dev/null +++ b/main/include/creditos.h @@ -0,0 +1,8 @@ +#pragma once + +#include + +extern volatile bool tem_creditos; + +void creditos_task(void *pv); +void creditos_dar(void); // função para marcar crédito diff --git a/main/include/eeprom_animacao.h b/main/include/eeprom_animacao.h new file mode 100644 index 0000000..4dd17ff --- /dev/null +++ b/main/include/eeprom_animacao.h @@ -0,0 +1,12 @@ +#pragma once + +#include + +// byte carregado da EEPROM +extern uint8_t animacao; + +// lê o byte guardado +void animacao_load(void); + +// grava o byte +void animacao_save(uint8_t v); diff --git a/main/include/led_driver.h b/main/include/led_driver.h index 54b1c5f..720b910 100644 --- a/main/include/led_driver.h +++ b/main/include/led_driver.h @@ -1,24 +1,26 @@ -#pragma once +#ifndef LED_DRIVER_H +#define LED_DRIVER_H + #include -#include "esp_err.h" -#ifdef __cplusplus -extern "C" { -#endif - -// === Configurações principais === -#define LED_PIN 18 -#define LED_COUNT 60 -#define LED_RES_HZ 10000000 // 10 MHz de resolução (0.1 µs por tick) - -// === Interface pública === -esp_err_t led_init(void); -esp_err_t led_clear(void); -esp_err_t led_set(uint16_t index, uint8_t r, uint8_t g, uint8_t b); -esp_err_t led_show(void); -void led_rainbow(uint16_t offset); -void led_spin_to(uint16_t target, uint16_t rounds, uint16_t delay_start, uint16_t delay_end); -void led_idle_animation(void); -#ifdef __cplusplus -} +#define LED_COUNT 60 + +// inicialização do driver +void led_driver_init(void); + +// número de LEDs +int led_get_count(void); + +// envia os dados para o anel +void led_show(void); + +// limpa todos os LEDs +void led_clear(void); + +// define um LED individual +void led_set_pixel(int index, uint8_t r, uint8_t g, uint8_t b); + +// spin da sorte +void led_spin_to(uint16_t target, int min_spins, int max_spins, int base_delay_ms); + #endif diff --git a/main/include/led_effects.h b/main/include/led_effects.h new file mode 100644 index 0000000..97dc7ad --- /dev/null +++ b/main/include/led_effects.h @@ -0,0 +1,10 @@ +#pragma once + +#include + +void led_all_on(uint8_t r, uint8_t g, uint8_t b); +void led_all_off(void); + +void led_idle_animation(void); +void led_jackpot_animation(void); +void led_clock_animation(void); // <-- NOVA ANIMAÇÃO diff --git a/main/include/led_task.h b/main/include/led_task.h new file mode 100644 index 0000000..4097074 --- /dev/null +++ b/main/include/led_task.h @@ -0,0 +1,3 @@ +#pragma once + +void led_task(void *pv); diff --git a/main/include/mqtt_comandos.h b/main/include/mqtt_comandos.h index 9f380f2..3bd5918 100644 --- a/main/include/mqtt_comandos.h +++ b/main/include/mqtt_comandos.h @@ -1,5 +1,4 @@ #pragma once #include "cJSON.h" -#include "esp_err.h" void mqtt_comandos_handle(cJSON *root); diff --git a/main/include/mqtt_handler.h b/main/include/mqtt_handler.h index cfec561..617b0ae 100644 --- a/main/include/mqtt_handler.h +++ b/main/include/mqtt_handler.h @@ -5,10 +5,16 @@ extern "C" { #endif -extern esp_mqtt_client_handle_t mqtt_client; // ✅ agora visível em outros .c -static inline void mqtt_handler_loop(void) { - // placeholder — sem função neste build -} +extern esp_mqtt_client_handle_t mqtt_client; + +// Exportar os tópicos MQTT (antes eram static!) +extern char topic_status[64]; +extern char topic_cmd[64]; +extern char topic_resp[64]; +extern char topic_lwt[64]; + +// Opcional: loop placeholder +static inline void mqtt_handler_loop(void) {} void mqtt_handler_start(void); diff --git a/main/led_driver.c b/main/led_driver.c index 94b9071..1d9df17 100644 --- a/main/led_driver.c +++ b/main/led_driver.c @@ -1,147 +1,131 @@ #include "led_driver.h" #include "driver/rmt_tx.h" -#include "led_strip_encoder.h" -#include "esp_log.h" +#include "driver/gpio.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" -#include "esp_random.h" #include -#include "esp_rom_sys.h" -static const char *TAG = "LED"; -static bool led_ready = false; // 🚦 flag de inicialização -static rmt_channel_handle_t led_chan = NULL; -static rmt_encoder_handle_t led_enc = NULL; -static uint8_t led_pixels[LED_COUNT * 3]; +#define LED_PIN 18 // <-- CERTIFICA-TE disto +#define RMT_RESOLUTION_HZ 10000000 // 10 MHz (1 tick = 0.1us) -// --- Conversão HSV → RGB --- -static void hsv2rgb(uint32_t h, uint32_t s, uint32_t v, - uint8_t *r, uint8_t *g, uint8_t *b) +typedef struct { + uint8_t r,g,b; +} led_color_t; + +static led_color_t leds[LED_COUNT]; + +static rmt_channel_handle_t rmt_chan = NULL; +static rmt_encoder_handle_t encoder = NULL; + +static rmt_transmit_config_t tx_config = { + .loop_count = 0 +}; + +void led_driver_init(void) { - h %= 360; - uint32_t rgb_max = v * 255 / 100; - uint32_t rgb_min = rgb_max * (100 - s) / 100; - uint32_t i = h / 60, diff = h % 60; - uint32_t adj = (rgb_max - rgb_min) * diff / 60; + gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT); - switch (i) { - case 0: *r = rgb_max; *g = rgb_min + adj; *b = rgb_min; break; - case 1: *r = rgb_max - adj; *g = rgb_max; *b = rgb_min; break; - case 2: *r = rgb_min; *g = rgb_max; *b = rgb_min + adj; break; - case 3: *r = rgb_min; *g = rgb_max - adj; *b = rgb_max; break; - case 4: *r = rgb_min + adj; *g = rgb_min; *b = rgb_max; break; - default:*r = rgb_max; *g = rgb_min; *b = rgb_max - adj; break; - } -} - -// --- Inicialização --- -esp_err_t led_init(void) -{ - ESP_LOGI(TAG, "Inicializando LEDs no GPIO%d (%d LEDs)", LED_PIN, LED_COUNT); - - rmt_tx_channel_config_t tx_cfg = { + rmt_tx_channel_config_t chan_cfg = { .gpio_num = LED_PIN, .clk_src = RMT_CLK_SRC_DEFAULT, + .resolution_hz = RMT_RESOLUTION_HZ, .mem_block_symbols = 64, - .resolution_hz = LED_RES_HZ, - .trans_queue_depth = 4, + .trans_queue_depth = 1, }; - ESP_ERROR_CHECK(rmt_new_tx_channel(&tx_cfg, &led_chan)); - led_strip_encoder_config_t enc_cfg = {.resolution = LED_RES_HZ}; - ESP_ERROR_CHECK(rmt_new_led_strip_encoder(&enc_cfg, &led_enc)); - ESP_ERROR_CHECK(rmt_enable(led_chan)); + ESP_ERROR_CHECK(rmt_new_tx_channel(&chan_cfg, &rmt_chan)); + ESP_ERROR_CHECK(rmt_enable(rmt_chan)); - memset(led_pixels, 0, sizeof(led_pixels)); + // WS2812B timings (EXATOS) + rmt_bytes_encoder_config_t enc_cfg = { + .bit0 = { + .duration0 = 4, .level0 = 1, // 0.4us HIGH + .duration1 = 9, .level1 = 0 // 0.9us LOW + }, + .bit1 = { + .duration0 = 9, .level0 = 1, // 0.9us HIGH + .duration1 = 4, .level1 = 0 // 0.4us LOW + }, + .flags.msb_first = 1 + }; - led_ready = true; // ✅ marca como pronto - led_show(); // apaga tudo ao iniciar - return ESP_OK; + ESP_ERROR_CHECK(rmt_new_bytes_encoder(&enc_cfg, &encoder)); + + memset(leds, 0, sizeof(leds)); + led_show(); } -// --- Apagar todos os LEDs --- -esp_err_t led_clear(void) +void led_set_pixel(int index, uint8_t r, uint8_t g, uint8_t b) { - if (!led_ready) return ESP_ERR_INVALID_STATE; - memset(led_pixels, 0, sizeof(led_pixels)); - return led_show(); + if (index < 0 || index >= LED_COUNT) return; + leds[index].r = r; + leds[index].g = g; + leds[index].b = b; } -// --- Definir cor individual --- -esp_err_t led_set(uint16_t index, uint8_t r, uint8_t g, uint8_t b) +void led_clear(void) { - if (index >= LED_COUNT) return ESP_ERR_INVALID_ARG; - led_pixels[index * 3 + 0] = g; // WS2812 usa ordem GRB - led_pixels[index * 3 + 1] = r; - led_pixels[index * 3 + 2] = b; - return ESP_OK; + memset(leds, 0, sizeof(leds)); } -// --- Enviar buffer para o anel --- -esp_err_t led_show(void) +static void hw_update(void) { - if (!led_ready || !led_chan || !led_enc) { - ESP_LOGW(TAG, "⚠️ led_show() chamado antes da inicialização — ignorado"); - return ESP_ERR_INVALID_STATE; + uint8_t buf[LED_COUNT * 3]; + + // MOST common format is GRB + for (int i = 0; i < LED_COUNT; i++) { + buf[i*3 + 0] = leds[i].g; + buf[i*3 + 1] = leds[i].r; + buf[i*3 + 2] = leds[i].b; } - rmt_transmit_config_t tx_cfg = {.loop_count = 0}; - esp_err_t err = rmt_transmit(led_chan, led_enc, - led_pixels, sizeof(led_pixels), &tx_cfg); - if (err != ESP_OK) { - ESP_LOGE(TAG, "❌ rmt_transmit falhou (%s)", esp_err_to_name(err)); - return err; - } + ESP_ERROR_CHECK(rmt_transmit(rmt_chan, encoder, buf, sizeof(buf), &tx_config)); + rmt_tx_wait_all_done(rmt_chan, -1); + + // Reset time > 50us + esp_rom_delay_us(60); - err = rmt_tx_wait_all_done(led_chan, portMAX_DELAY); - if (err != ESP_OK) { - ESP_LOGE(TAG, "❌ rmt_tx_wait_all_done falhou (%s)", esp_err_to_name(err)); - return err; - } - return ESP_OK; } -// --- Animação de rotação até posição alvo --- -void led_spin_to(uint16_t target, uint16_t rounds, uint16_t delay_start, uint16_t delay_end) + +void led_show(void) { - if (!led_ready) return; + hw_update(); +} - uint32_t total_steps = rounds * LED_COUNT + target; - for (uint32_t i = 0; i < total_steps; i++) { - uint16_t pos = i % LED_COUNT; +int led_get_count(void) +{ + return LED_COUNT; +} +void led_spin_to(uint16_t target, int min_spins, int max_spins, int base_delay_ms) +{ + int n = LED_COUNT; + if (min_spins < 1) min_spins = 1; + if (max_spins < min_spins) max_spins = min_spins; + + int extra = 0; + if (max_spins > min_spins) + extra = rand() % (max_spins - min_spins + 1); + + int total_steps = (min_spins + extra) * n + (target % n); + int delay = base_delay_ms; + + for (int step = 0; step <= total_steps; step++) { + int pos = step % n; + + for (int i = 0; i < n; i++) { + if (i == pos) + led_set_pixel(i, 0, 40, 0); // verde fraco no cursor + else + led_set_pixel(i, 0, 0, 0); + } - // Limpa e acende o LED atual - led_clear(); - led_set(pos, 255, 150, 0); led_show(); - // Calcula delay progressivo (aceleração -> desaceleração) - uint32_t delay = delay_start + ((delay_end - delay_start) * i) / total_steps; + if (step < total_steps / 3 && delay > 3) + delay--; + else if (step > (2 * total_steps) / 3) + delay++; + vTaskDelay(pdMS_TO_TICKS(delay)); } - - // Flash final - for (int j = 0; j < 3; j++) { - led_clear(); - led_show(); - vTaskDelay(pdMS_TO_TICKS(80)); - for (int k = 0; k < LED_COUNT; k++) - led_set(k, 255, 200, 50); - led_show(); - vTaskDelay(pdMS_TO_TICKS(80)); - } -} - -// --- Animação idle (arco-íris lento) --- -void led_idle_animation(void) -{ - if (!led_ready) return; - - static uint16_t hue = 0; - for (int i = 0; i < LED_COUNT; i++) { - uint8_t r, g, b; - hsv2rgb((hue + i * 6) % 360, 100, 10, &r, &g, &b); - led_set(i, r, g, b); - } - led_show(); - hue = (hue + 2) % 360; } diff --git a/main/led_effects.c b/main/led_effects.c new file mode 100644 index 0000000..26b21c0 --- /dev/null +++ b/main/led_effects.c @@ -0,0 +1,115 @@ +#include "led_effects.h" +#include "led_driver.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include +#include + +void led_all_on(uint8_t r, uint8_t g, uint8_t b) +{ + int n = led_get_count(); + for (int i = 0; i < n; i++) { + led_set_pixel(i, r, g, b); + } + led_show(); +} + +void led_all_off(void) +{ + led_clear(); + led_show(); +} + +void led_idle_animation(void) +{ + static int pos = 0; + int n = led_get_count(); + if (n <= 0) return; + + for (int i = 0; i < n; i++) + led_set_pixel(i, 0, 0, 0); + + // pontinho azul + led_set_pixel(pos, 0, 0, 16); + led_show(); + + pos = (pos + 1) % n; + vTaskDelay(pdMS_TO_TICKS(50)); +} + +void led_jackpot_animation(void) +{ + static int state = 0; + static int step = 0; + int n = led_get_count(); + + if (state == 0) { + // Piscas laranja + for (int i = 0; i < n; i++) + led_set_pixel(i, (step & 1) ? 32 : 0, (step & 1) ? 16 : 0, 0); + + led_show(); + + step++; + if (step >= 12) { // 6 ON + 6 OFF + step = 0; + state = 1; + } + } + + else if (state == 1) { + // Arco-íris progressivo + for (int i = 0; i < n; i++) { + int x = (i + step) % n; + uint8_t r = (x * 5) & 0xFF; + uint8_t g = ((x * 3) & 0xFF) >> 1; + uint8_t b = ((x * 7) & 0xFF) >> 2; + led_set_pixel(i, r, g, b); + } + + led_show(); + + step++; + if (step >= n * 2) { + step = 0; + state = 0; // repete a animação + } + } +} + +void led_clock_animation(void) +{ + int n = led_get_count(); + if (n <= 0) return; + + time_t now; + struct tm timeinfo; + + time(&now); + localtime_r(&now, &timeinfo); + + int h = timeinfo.tm_hour % 12; + int m = timeinfo.tm_min; + int s = timeinfo.tm_sec; + + int pos_h = (h * n) / 12; + int pos_m = (m * n) / 60; + int pos_s = (s * n) / 60; + + led_clear(); + + // HORAS – verde forte + led_set_pixel(pos_h, 10, 40, 10); + + // MINUTOS – azul + led_set_pixel(pos_m, 10, 10, 60); + + // SEGUNDOS – branco muito suave + led_set_pixel(pos_s, 5, 5, 5); + + led_show(); + + + vTaskDelay(pdMS_TO_TICKS(200)); +} + diff --git a/main/led_strip/led_strip.c b/main/led_strip/led_strip.c deleted file mode 100644 index c818dd5..0000000 --- a/main/led_strip/led_strip.c +++ /dev/null @@ -1,65 +0,0 @@ -#include "led_strip.h" -#include "esp_log.h" -#include -#include -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" - -static const char *TAG = "led_strip"; - -struct led_strip_t { - uint32_t length; - uint8_t *buffer; - rmt_channel_handle_t channel; - uint32_t resolution; -}; - -typedef struct { - uint8_t g; - uint8_t r; - uint8_t b; -} __attribute__((packed)) grb_pixel_t; - -esp_err_t led_strip_new_rmt_device(const led_strip_config_t *config, led_strip_handle_t *ret_strip) { - if (!config || !ret_strip) return ESP_ERR_INVALID_ARG; - - led_strip_handle_t strip = calloc(1, sizeof(struct led_strip_t)); - if (!strip) return ESP_ERR_NO_MEM; - - strip->length = config->strip_length; - strip->resolution = config->resolution_hz; - strip->channel = config->rmt_channel; - strip->buffer = calloc(strip->length, sizeof(grb_pixel_t)); - if (!strip->buffer) { - free(strip); - return ESP_ERR_NO_MEM; - } - - *ret_strip = strip; - ESP_LOGI(TAG, "Novo LED strip criado (%lu LEDs)", (unsigned long)strip->length); - return ESP_OK; -} - -esp_err_t led_strip_set_pixel(led_strip_handle_t strip, uint32_t index, uint8_t red, uint8_t green, uint8_t blue) { - if (!strip || index >= strip->length) return ESP_ERR_INVALID_ARG; - grb_pixel_t *pixels = (grb_pixel_t *)strip->buffer; - pixels[index].g = green; - pixels[index].r = red; - pixels[index].b = blue; - return ESP_OK; -} - -esp_err_t led_strip_refresh(led_strip_handle_t strip) { - if (!strip) return ESP_ERR_INVALID_ARG; - // Envia os dados via RMT - rmt_transmit_config_t tx_conf = { .loop_count = 0 }; - ESP_ERROR_CHECK(rmt_transmit(strip->channel, NULL, strip->buffer, strip->length * sizeof(grb_pixel_t), &tx_conf)); - ESP_ERROR_CHECK(rmt_tx_wait_all_done(strip->channel, portMAX_DELAY)); - return ESP_OK; -} - -esp_err_t led_strip_clear(led_strip_handle_t strip) { - if (!strip) return ESP_ERR_INVALID_ARG; - memset(strip->buffer, 0, strip->length * sizeof(grb_pixel_t)); - return led_strip_refresh(strip); -} diff --git a/main/led_strip/led_strip.h b/main/led_strip/led_strip.h deleted file mode 100644 index 594bc5e..0000000 --- a/main/led_strip/led_strip.h +++ /dev/null @@ -1,46 +0,0 @@ -#pragma once - -#include "esp_err.h" -#include "driver/rmt_tx.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Handle para a instância de LED strip - */ -typedef struct led_strip_t *led_strip_handle_t; - -/** - * @brief Configuração para criar um LED strip - */ -typedef struct { - uint32_t strip_length; // número de LEDs - uint32_t resolution_hz; // resolução do RMT - rmt_channel_handle_t rmt_channel;// canal RMT a usar -} led_strip_config_t; - -/** - * @brief Cria uma nova instância de LED strip - */ -esp_err_t led_strip_new_rmt_device(const led_strip_config_t *config, led_strip_handle_t *ret_strip); - -/** - * @brief Define a cor de um LED (index base 0) - */ -esp_err_t led_strip_set_pixel(led_strip_handle_t strip, uint32_t index, uint8_t red, uint8_t green, uint8_t blue); - -/** - * @brief Atualiza os LEDs com as cores definidas - */ -esp_err_t led_strip_refresh(led_strip_handle_t strip); - -/** - * @brief Limpa todos os LEDs (define para preto) - */ -esp_err_t led_strip_clear(led_strip_handle_t strip); - -#ifdef __cplusplus -} -#endif diff --git a/main/led_strip/led_strip_encoder.c b/main/led_strip/led_strip_encoder.c deleted file mode 100644 index de8638c..0000000 --- a/main/led_strip/led_strip_encoder.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include "esp_check.h" -#include "led_strip_encoder.h" - -static const char *TAG = "led_encoder"; - -typedef struct { - rmt_encoder_t base; - rmt_encoder_t *bytes_encoder; - rmt_encoder_t *copy_encoder; - int state; - rmt_symbol_word_t reset_code; -} rmt_led_strip_encoder_t; - -static size_t rmt_encode_led_strip(rmt_encoder_t *encoder, rmt_channel_handle_t channel, const void *primary_data, size_t data_size, rmt_encode_state_t *ret_state) -{ - rmt_led_strip_encoder_t *led_encoder = __containerof(encoder, rmt_led_strip_encoder_t, base); - rmt_encoder_handle_t bytes_encoder = led_encoder->bytes_encoder; - rmt_encoder_handle_t copy_encoder = led_encoder->copy_encoder; - rmt_encode_state_t session_state = RMT_ENCODING_RESET; - rmt_encode_state_t state = RMT_ENCODING_RESET; - size_t encoded_symbols = 0; - switch (led_encoder->state) { - case 0: // send RGB data - encoded_symbols += bytes_encoder->encode(bytes_encoder, channel, primary_data, data_size, &session_state); - if (session_state & RMT_ENCODING_COMPLETE) { - led_encoder->state = 1; // switch to next state when current encoding session finished - } - if (session_state & RMT_ENCODING_MEM_FULL) { - state |= RMT_ENCODING_MEM_FULL; - goto out; // yield if there's no free space for encoding artifacts - } - // fall-through - case 1: // send reset code - encoded_symbols += copy_encoder->encode(copy_encoder, channel, &led_encoder->reset_code, - sizeof(led_encoder->reset_code), &session_state); - if (session_state & RMT_ENCODING_COMPLETE) { - led_encoder->state = RMT_ENCODING_RESET; // back to the initial encoding session - state |= RMT_ENCODING_COMPLETE; - } - if (session_state & RMT_ENCODING_MEM_FULL) { - state |= RMT_ENCODING_MEM_FULL; - goto out; // yield if there's no free space for encoding artifacts - } - } -out: - *ret_state = state; - return encoded_symbols; -} - -static esp_err_t rmt_del_led_strip_encoder(rmt_encoder_t *encoder) -{ - rmt_led_strip_encoder_t *led_encoder = __containerof(encoder, rmt_led_strip_encoder_t, base); - rmt_del_encoder(led_encoder->bytes_encoder); - rmt_del_encoder(led_encoder->copy_encoder); - free(led_encoder); - return ESP_OK; -} - -static esp_err_t rmt_led_strip_encoder_reset(rmt_encoder_t *encoder) -{ - rmt_led_strip_encoder_t *led_encoder = __containerof(encoder, rmt_led_strip_encoder_t, base); - rmt_encoder_reset(led_encoder->bytes_encoder); - rmt_encoder_reset(led_encoder->copy_encoder); - led_encoder->state = RMT_ENCODING_RESET; - return ESP_OK; -} - -esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config, rmt_encoder_handle_t *ret_encoder) -{ - esp_err_t ret = ESP_OK; - rmt_led_strip_encoder_t *led_encoder = NULL; - ESP_GOTO_ON_FALSE(config && ret_encoder, ESP_ERR_INVALID_ARG, err, TAG, "invalid argument"); - led_encoder = rmt_alloc_encoder_mem(sizeof(rmt_led_strip_encoder_t)); - ESP_GOTO_ON_FALSE(led_encoder, ESP_ERR_NO_MEM, err, TAG, "no mem for led strip encoder"); - led_encoder->base.encode = rmt_encode_led_strip; - led_encoder->base.del = rmt_del_led_strip_encoder; - led_encoder->base.reset = rmt_led_strip_encoder_reset; - // different led strip might have its own timing requirements, following parameter is for WS2812 - rmt_bytes_encoder_config_t bytes_encoder_config = { - .bit0 = { - .level0 = 1, - .duration0 = 0.3 * config->resolution / 1000000, // T0H=0.3us - .level1 = 0, - .duration1 = 0.9 * config->resolution / 1000000, // T0L=0.9us - }, - .bit1 = { - .level0 = 1, - .duration0 = 0.9 * config->resolution / 1000000, // T1H=0.9us - .level1 = 0, - .duration1 = 0.3 * config->resolution / 1000000, // T1L=0.3us - }, - .flags.msb_first = 1 // WS2812 transfer bit order: G7...G0R7...R0B7...B0 - }; - ESP_GOTO_ON_ERROR(rmt_new_bytes_encoder(&bytes_encoder_config, &led_encoder->bytes_encoder), err, TAG, "create bytes encoder failed"); - rmt_copy_encoder_config_t copy_encoder_config = {}; - ESP_GOTO_ON_ERROR(rmt_new_copy_encoder(©_encoder_config, &led_encoder->copy_encoder), err, TAG, "create copy encoder failed"); - - uint32_t reset_ticks = config->resolution / 1000000 * 50 / 2; // reset code duration defaults to 50us - led_encoder->reset_code = (rmt_symbol_word_t) { - .level0 = 0, - .duration0 = reset_ticks, - .level1 = 0, - .duration1 = reset_ticks, - }; - *ret_encoder = &led_encoder->base; - return ESP_OK; -err: - if (led_encoder) { - if (led_encoder->bytes_encoder) { - rmt_del_encoder(led_encoder->bytes_encoder); - } - if (led_encoder->copy_encoder) { - rmt_del_encoder(led_encoder->copy_encoder); - } - free(led_encoder); - } - return ret; -} diff --git a/main/led_strip/led_strip_encoder.h b/main/led_strip/led_strip_encoder.h deleted file mode 100644 index d839add..0000000 --- a/main/led_strip/led_strip_encoder.h +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once -#include "driver/rmt_tx.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Configuração do encoder de LED strip (usado pelo RMT) - */ -typedef struct { - uint32_t resolution; // resolução em Hz -} led_strip_encoder_config_t; - -/** - * @brief Cria um novo encoder para enviar dados WS2812 via RMT. - * - * @param config Configuração do encoder (resolução) - * @param ret_encoder Ponteiro de retorno do handle do encoder - * - * @return ESP_OK se criado com sucesso - */ -esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config, - rmt_encoder_handle_t *ret_encoder); - -#ifdef __cplusplus -} -#endif diff --git a/main/led_task.c b/main/led_task.c new file mode 100644 index 0000000..19c0359 --- /dev/null +++ b/main/led_task.c @@ -0,0 +1,42 @@ +#include "led_task.h" +#include "led_effects.h" +#include "eeprom_animacao.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_log.h" + +static const char *TAG = "LED_TASK"; + +void led_task(void *pv) +{ + ESP_LOGI(TAG, "💡 LED task iniciada"); + + while (1) { + + switch (animacao) { + + case 0: + // modo idle (pontinho azul) + led_idle_animation(); + break; + + case 1: + // modo relógio + led_clock_animation(); + break; + + case 2: + // jackpot non-blocking + led_jackpot_animation(); + break; + + default: + // fallback seguro + led_idle_animation(); + break; + } + + // controla a velocidade de TODAS as animações + vTaskDelay(pdMS_TO_TICKS(40)); // ~25 FPS + } +} diff --git a/main/main.c b/main/main.c index ee2ecbc..3cf92c8 100644 --- a/main/main.c +++ b/main/main.c @@ -1,6 +1,7 @@ #include #include -#include "esp_rom_sys.h" + +#include "esp_rom_sys.h" #include "esp_task_wdt.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" @@ -11,31 +12,38 @@ #include "esp_wifi.h" #include "esp_event.h" #include "esp_netif.h" -#include "esp_spiffs.h" #include "esp_sntp.h" -#include "wifi_config_portal.h" -#include "mqtt_handler.h" -#include "led_driver.h" -#include "esp_random.h" + #include "eeprom_virtual.h" #include "eeprom_tls.h" +#include "eeprom_animacao.h" +#include "wifi_config_portal.h" +#include "mqtt_handler.h" + +#include "led_driver.h" +#include "led_effects.h" + +#include "creditos.h" +#include "led_task.h" + +static const char *TAG = "APP"; +static uint32_t segundos = 0; +static bool wifi_ready = false; typedef struct { int total_creditos; int total_saidas; } contadores_t; -static const char *TAG = "APP"; -static uint32_t segundos = 0; -static bool wifi_ready = false; -// === Contador simples de debug === +// ============================ +// Task contador simples +// ============================ void segundos_task(void *pv) { while (1) { vTaskDelay(pdMS_TO_TICKS(1000)); segundos++; - // ESP_LOGI("TIMER", "⏱ %lu segundos", segundos); } } @@ -43,55 +51,48 @@ uint32_t get_segundos(void) { return segundos; } -// === Task de LEDs === -void led_task(void *pv) { - bool tem_creditos = false; - while (1) { - if (wifi_ready && tem_creditos) { - uint16_t target = esp_random() % LED_COUNT; - led_spin_to(target, 2, 12, 80); - tem_creditos = false; - } else if (wifi_ready) { - led_idle_animation(); - } else { - vTaskDelay(pdMS_TO_TICKS(100)); // espera Wi-Fi - } - vTaskDelay(pdMS_TO_TICKS(50)); - } -} -// === Callback quando Wi-Fi e IP estão prontos === +// ============================ +// Callback Wi-Fi pronto +// ============================ static void on_wifi_connected(void) { wifi_ready = true; - ESP_LOGI(TAG, "✅ Wi-Fi conectado, IP obtido — iniciando MQTT e LEDs..."); + ESP_LOGI(TAG, "✅ Wi-Fi conectado — iniciando MQTT..."); mqtt_handler_start(); - ESP_LOGI(TAG, "🕒 Inicializando SNTP..."); + ESP_LOGI(TAG, "🕒 SNTP..."); esp_sntp_setoperatingmode(SNTP_OPMODE_POLL); esp_sntp_setservername(0, "pool.ntp.org"); esp_sntp_init(); - ESP_LOGI(TAG, "💡 Inicializando LEDs..."); - led_init(); + ESP_LOGI(TAG, "💡 Inicializando driver LED..."); + led_driver_init(); + + ESP_LOGI(TAG, "🎬 Iniciando tasks LED e Créditos..."); + xTaskCreate(led_task, "led_task", 8192, NULL, 5, NULL); + xTaskCreate(creditos_task, "creditos_task", 8192, NULL, 5, NULL); } -#include "esp_rom_sys.h" +// ============================ +// Stack Overflow Handler +// ============================ void vApplicationStackOverflowHook(TaskHandle_t xTask, char *pcTaskName) { esp_rom_printf("\n🧨 Stack overflow em %s!\n", pcTaskName); - // NÃO reinicia aqui — isso bloqueia o WiFi event task e causa WDT - // apenas marca para reiniciar depois - esp_task_wdt_reset(); + esp_task_wdt_reset(); vTaskDelay(pdMS_TO_TICKS(1000)); esp_restart(); } -// === Função principal === +// ============================ +// MAIN +// ============================ void app_main(void) { - // ---------- EEPROM ---------- + + // -------- EEPROM virtual -------- eeprom_virtual_init(); contadores_t contadores = {100, 25}; @@ -108,49 +109,32 @@ void app_main(void) { ESP_LOGW("EEPROM", "⚠️ Falha ao ler dados!"); } - // ---------- NVS ---------- + // -------- NVS normal -------- ESP_ERROR_CHECK(nvs_flash_init()); - // ---------- LOG ---------- - esp_log_level_set("wifi", ESP_LOG_WARN); + animacao_load(); + ESP_LOGI("ANIM", "🎨 Animação carregada = %u", animacao); - // ---------- SPIFFS ---------- - ESP_LOGI(TAG, "🔧 Montando SPIFFS..."); - esp_vfs_spiffs_conf_t spiffs_conf = { - .base_path = "/spiffs", - .partition_label = "storage", - .max_files = 5, - .format_if_mount_failed = true - }; - esp_err_t ret = esp_vfs_spiffs_register(&spiffs_conf); - if (ret != ESP_OK) { - ESP_LOGE(TAG, "❌ Falha ao montar SPIFFS (%s)", esp_err_to_name(ret)); - } else { - size_t total = 0, used = 0; - esp_spiffs_info(spiffs_conf.partition_label, &total, &used); - ESP_LOGI(TAG, "📦 SPIFFS OK: total=%d bytes, usado=%d", total, used); - } - - // ---------- Wi-Fi ---------- + // -------- Wi-Fi -------- wifi_config_t cfg; bool have_creds = false; + if (esp_wifi_get_config(WIFI_IF_STA, &cfg) == ESP_OK) { if (strlen((char *)cfg.sta.ssid) > 0) { - ESP_LOGI(TAG, "📂 Credenciais encontradas no NVS: SSID=%s", cfg.sta.ssid); + ESP_LOGI(TAG, "📂 Credenciais no NVS: SSID=%s", cfg.sta.ssid); have_creds = true; } } wifi_config_portal_init(on_wifi_connected, have_creds); - // ---------- Tasks ---------- - xTaskCreate(segundos_task, "segundos_task", 12288, NULL, 5, NULL); - xTaskCreate(led_task, "led_task", 12288, NULL, 5, NULL); + // -------- Criar tasks iniciais -------- + xTaskCreate(segundos_task, "segundos_task", 4096, NULL, 5, NULL); - // ---------- Loop principal (livre) ---------- + // -------- Loop principal -------- while (1) { if (wifi_ready) { - mqtt_handler_loop(); // mantém MQTT ativo + mqtt_handler_loop(); } vTaskDelay(pdMS_TO_TICKS(100)); } diff --git a/main/mqtt_comandos.c b/main/mqtt_comandos.c index 6e129a1..64a83e2 100644 --- a/main/mqtt_comandos.c +++ b/main/mqtt_comandos.c @@ -1,89 +1,137 @@ #include #include -#include -#include #include "esp_log.h" #include "mqtt_client.h" #include "cJSON.h" -#include "eeprom_virtual.h" +#include "esp_random.h" +#include "esp_timer.h" + +#include "led_driver.h" +#include "led_effects.h" +#include "creditos.h" +#include "eeprom_animacao.h" static const char *TAG = "MQTT_CMD"; extern esp_mqtt_client_handle_t mqtt_client; -#define TOPIC_RESP "esp/esp32-002/resp" +// Estes tópicos vêm do mqtt_handler.c +extern char topic_resp[]; -void mqtt_comandos_handle(cJSON *root) { - cJSON *id = cJSON_GetObjectItem(root, "id"); +void mqtt_comandos_handle(cJSON *root) +{ cJSON *cmd = cJSON_GetObjectItem(root, "cmd"); - if (!cJSON_IsNumber(id) || !cJSON_IsString(cmd)) { - ESP_LOGW(TAG, "⚠️ Comando inválido"); + if (!cJSON_IsString(cmd)) { + ESP_LOGW(TAG, "⚠️ Comando inválido (sem 'cmd')"); return; } - int req_id = id->valueint; - const char *comando = cmd->valuestring; + const char *c = cmd->valuestring; + ESP_LOGI(TAG, "📩 CMD: %s", c); - // -------- FS_LIST -------- - if (strcmp(comando, "FS_LIST") == 0) { - DIR *dir = opendir("/spiffs"); - if (!dir) { - char resp[128]; - snprintf(resp, sizeof(resp), "{\"id\":%d,\"error\":\"fs_not_mounted\"}", req_id); - esp_mqtt_client_publish(mqtt_client, TOPIC_RESP, resp, 0, 1, false); - return; - } - - char json[2048]; - snprintf(json, sizeof(json), "{\"id\":%d,\"files\":[", req_id); - - struct dirent *entry; - int first = 1; - while ((entry = readdir(dir)) != NULL) { - char path[512]; - snprintf(path, sizeof(path), "/spiffs/%.255s", entry->d_name); - struct stat st; - if (stat(path, &st) == 0) { - // 🔧 Correção: buffer maior e limite de nome seguro - char file_json[320]; - snprintf(file_json, sizeof(file_json), - "{\"name\":\"%.200s\",\"size\":%ld}", entry->d_name, (long)st.st_size); - if (!first) strlcat(json, ",", sizeof(json)); - strlcat(json, file_json, sizeof(json)); - first = 0; - } - } - closedir(dir); - strlcat(json, "]}", sizeof(json)); - esp_mqtt_client_publish(mqtt_client, TOPIC_RESP, json, 0, 1, false); + // ====================================================== + // LED ON / OFF + // ====================================================== + if (strcmp(c, "LED_ON") == 0) { + led_all_on(50, 50, 50); } - // -------- CERT_REQ -------- - else if (strcmp(comando, "CERT_REQ") == 0) { - char json[128]; - snprintf(json, sizeof(json), "{\"id\":%d,\"cmd\":\"CERT_REQ\"}", req_id); - esp_mqtt_client_publish(mqtt_client, TOPIC_RESP, json, 0, 1, false); - ESP_LOGI(TAG, "📤 Pedido de certificado enviado"); + else if (strcmp(c, "LED_OFF") == 0) { + led_all_off(); + } - // -------- CERT_SAVE -------- - } else if (strcmp(comando, "CERT_SAVE") == 0) { - cJSON *cert = cJSON_GetObjectItem(root, "cert"); - if (!cJSON_IsString(cert)) { - char resp[128]; - snprintf(resp, sizeof(resp), "{\"id\":%d,\"error\":\"missing_cert\"}", req_id); - esp_mqtt_client_publish(mqtt_client, TOPIC_RESP, resp, 0, 1, false); + // ====================================================== + // SPIN + // ====================================================== + else if (strcmp(c, "SPIN") == 0) { + uint16_t p = esp_random() % led_get_count(); + led_spin_to(p, 2, 12, 80); + } + + // ====================================================== + // JACKPOT + // ====================================================== + else if (strcmp(c, "JACKPOT") == 0) { + led_jackpot_animation(); + } + + // ====================================================== + // DAR CRÉDITO + // ====================================================== + else if (strcmp(c, "CREDITO") == 0) { + creditos_dar(); + } + + // ====================================================== + // ESTADO DO SISTEMA + // ====================================================== + else if (strcmp(c, "STATUS") == 0) { + char resp[128]; + snprintf(resp, sizeof(resp), + "{\"status\":\"ok\",\"heap\":%lu,\"anim\":%u}", + (unsigned long)esp_get_free_heap_size(), + animacao); + + esp_mqtt_client_publish(mqtt_client, topic_resp, resp, 0, 1, false); + } + + // ====================================================== + // SET ANIMAÇÃO (NVS) + // ====================================================== + else if (strcmp(c, "SET_ANIM") == 0) { + cJSON *v = cJSON_GetObjectItem(root, "value"); + if (!cJSON_IsNumber(v)) { + ESP_LOGW(TAG, "❌ SET_ANIM sem valor numérico"); return; } - const char *cert_str = cert->valuestring; + uint8_t novo = v->valueint; + animacao_save(novo); // GRAVA NA NVS + animacao = novo; // atualiza RAM - // 🔧 Correção: usar versão binária (string + terminador) - if (eeprom_virtual_write_bin("cert", cert_str, strlen(cert_str) + 1) == ESP_OK) { - ESP_LOGI(TAG, "💾 Certificado gravado na EEPROM (%d bytes)", (int)strlen(cert_str)); - char resp[128]; - snprintf(resp, sizeof(resp), "{\"id\":%d,\"cmd\":\"CERT_SAVE\",\"ok\":true}", req_id); - esp_mqtt_client_publish(mqtt_client, TOPIC_RESP, resp, 0, 1, false); - } else { - ESP_LOGE(TAG, "❌ Falha ao gravar certificado"); - } + ESP_LOGI(TAG, "🎨 Animação alterada para %u", novo); + + char resp[64]; + snprintf(resp, sizeof(resp), "{\"anim\":%u}", novo); + esp_mqtt_client_publish(mqtt_client, topic_resp, resp, 0, 1, false); + } + + // ====================================================== + // REBOOT + // ====================================================== + else if (strcmp(c, "REBOOT") == 0) { + + ESP_LOGW(TAG, "♻️ Reinício seguro agendado..."); + + // callback C normal + void reboot_cb(void *arg) { + esp_restart(); + } + + // criar timer + esp_timer_handle_t reboot_timer; + const esp_timer_create_args_t args = { + .callback = reboot_cb, + .arg = NULL, + .name = "reboot_safe" + }; + + esp_timer_create(&args, &reboot_timer); + esp_timer_start_once(reboot_timer, 200000); // 200 ms + + return; // evita continuar dentro do handler + } + + + // ====================================================== + // COMANDO DESCONHECIDO + // ====================================================== + else { + ESP_LOGW(TAG, "⚠️ Comando desconhecido: %s", c); + + char resp[128]; + snprintf(resp, sizeof(resp), + "{\"error\":\"unknown_cmd\",\"cmd\":\"%s\"}", c); + + esp_mqtt_client_publish(mqtt_client, topic_resp, resp, 0, 1, false); } } diff --git a/main/mqtt_handler.c b/main/mqtt_handler.c index e723367..6332188 100644 --- a/main/mqtt_handler.c +++ b/main/mqtt_handler.c @@ -16,7 +16,7 @@ static const char *TAG = "MQTT"; // -------- CONFIG -------- -#define BROKER_HOST "mtqq.xupas.mywire.org" +#define BROKER_HOST "mqtt.xupas.mywire.org" #define BROKER_PORT_TLS 8883 #define BROKER_PORT_TCP 1883 #define MQTT_USER "xupa" @@ -26,10 +26,10 @@ esp_mqtt_client_handle_t mqtt_client = NULL; static esp_timer_handle_t mqtt_watchdog = NULL; static bool mqtt_connected = false; -static char topic_status[64]; -static char topic_cmd[64]; -static char topic_resp[64]; -static char topic_lwt[64]; +char topic_status[64]; +char topic_cmd[64]; +char topic_resp[64]; +char topic_lwt[64]; // ====================================================== // HEARTBEAT / STATUS @@ -67,8 +67,11 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, switch (event->event_id) { case MQTT_EVENT_CONNECTED: mqtt_connected = true; - led_set(0, 0, 50, 0); + + // LED verde no pixel 0 + led_set_pixel(0, 0, 50, 0); led_show(); + ESP_LOGI(TAG, "✅ MQTT conectado"); esp_mqtt_client_publish(mqtt_client, topic_status, "online", 0, 1, true); esp_mqtt_client_subscribe(mqtt_client, topic_cmd, 1); @@ -79,26 +82,46 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, case MQTT_EVENT_DISCONNECTED: mqtt_connected = false; - led_set(0, 50, 0, 0); + + // LED vermelho no pixel 0 + led_set_pixel(0, 50, 0, 0); led_show(); + ESP_LOGW(TAG, "⚠️ MQTT desconectado"); if (mqtt_watchdog) esp_timer_start_periodic(mqtt_watchdog, 120000000); break; case MQTT_EVENT_DATA: { - ESP_LOGI(TAG, "📩 [%.*s] %.*s", - event->topic_len, event->topic, - event->data_len, event->data); + // Copia o payload para um buffer legível + char json_clean[256]; + int len = event->data_len; + + if (len >= sizeof(json_clean)) len = sizeof(json_clean) - 1; + memcpy(json_clean, event->data, len); + json_clean[len] = 0; // NULL terminate + + // Remove quebras de linha + for (int i = 0; json_clean[i]; i++) { + if (json_clean[i] == '\r' || json_clean[i] == '\n') + json_clean[i] = ' '; + } + + // Mostrar tópico + JSON limpo + ESP_LOGI(TAG, "📩 [%.*s] %s", + event->topic_len, event->topic, + json_clean); + + // JSON parse + cJSON *root = cJSON_Parse(json_clean); + if (root) { + mqtt_comandos_handle(root); + cJSON_Delete(root); + } else { + ESP_LOGE(TAG, "❌ JSON inválido"); + } + break; +} - cJSON *root = cJSON_ParseWithLength(event->data, event->data_len); - if (root) { - mqtt_comandos_handle(root); - cJSON_Delete(root); - } else { - ESP_LOGE(TAG, "❌ JSON inválido"); - } - break; - } case MQTT_EVENT_ERROR: ESP_LOGE(TAG, "❌ Erro MQTT"); @@ -109,6 +132,7 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, } } + // ====================================================== // HEARTBEAT TASK // ====================================================== @@ -143,65 +167,40 @@ void mqtt_handler_start(void) { mqtt_cfg.credentials.client_id = device_id; mqtt_cfg.credentials.username = MQTT_USER; mqtt_cfg.credentials.authentication.password = MQTT_PASS; +// ====================================================== +// MQTT TLS — usa SEMPRE o certificado embutido +// ====================================================== + mqtt_cfg.broker.address.hostname = BROKER_HOST; + mqtt_cfg.broker.address.port = BROKER_PORT_TLS; + mqtt_cfg.broker.address.transport = MQTT_TRANSPORT_OVER_SSL; - // ====================================================== - // TENTA CARREGAR CERTIFICADO E USAR TLS - // ====================================================== - bool tls_ok = false; - static char cert_buf[4096]; - size_t cert_len = sizeof(cert_buf) - 1; +// Certificado raiz (ISRG Root X1) + mqtt_cfg.broker.verification.certificate = ca_cert_pem; + ESP_LOGI(TAG, "🔐 TLS ativo (cert embutido, EEPROM ignorada)"); - if (eeprom_virtual_read_bin("cert", cert_buf, &cert_len) == ESP_OK && cert_len > 0) { - cert_buf[cert_len] = '\0'; - mqtt_cfg.broker.verification.certificate = strdup(cert_buf); - mqtt_cfg.broker.address.hostname = BROKER_HOST; - mqtt_cfg.broker.address.port = BROKER_PORT_TLS; - mqtt_cfg.broker.address.transport = MQTT_TRANSPORT_OVER_SSL; - tls_ok = true; - ESP_LOGI(TAG, "🔐 Certificado TLS carregado da EEPROM (%d bytes)", (int)cert_len); - } else { - ESP_LOGW(TAG, "⚠️ Certificado TLS não encontrado — vai tentar padrão embutido..."); - mqtt_cfg.broker.verification.certificate = (const char *)ca_cert_pem; - mqtt_cfg.broker.address.hostname = BROKER_HOST; - mqtt_cfg.broker.address.port = BROKER_PORT_TLS; - mqtt_cfg.broker.address.transport = MQTT_TRANSPORT_OVER_SSL; - tls_ok = true; - } - - // ====================================================== - // TESTE: se TLS falhar, cai para TCP (sem SSL) - // ====================================================== - if (!tls_ok) { - ESP_LOGW(TAG, "⚠️ TLS indisponível — a usar MQTT sem SSL."); - mqtt_cfg.broker.address.hostname = BROKER_HOST; - mqtt_cfg.broker.address.port = BROKER_PORT_TCP; - mqtt_cfg.broker.address.transport = MQTT_TRANSPORT_OVER_TCP; - } - - // -------- LWT -------- +// -------- LWT -------- mqtt_cfg.session.last_will.topic = topic_lwt; mqtt_cfg.session.last_will.msg = "offline"; mqtt_cfg.session.last_will.qos = 1; mqtt_cfg.session.last_will.retain = true; - // ====================================================== - // INICIALIZAÇÃO DO CLIENTE - // ====================================================== +// ====================================================== +// INICIALIZAÇÃO DO CLIENTE MQTT (TLS OBRIGATÓRIO) +// ====================================================== mqtt_client = esp_mqtt_client_init(&mqtt_cfg); if (mqtt_client == NULL) { - ESP_LOGE(TAG, "❌ Falha a inicializar MQTT — a tentar fallback TCP..."); - mqtt_cfg.broker.address.transport = MQTT_TRANSPORT_OVER_TCP; - mqtt_cfg.broker.address.port = BROKER_PORT_TCP; - mqtt_client = esp_mqtt_client_init(&mqtt_cfg); - } + ESP_LOGE(TAG, "❌ Falha a inicializar MQTT (TLS). Abortado."); + return; // Nem vale a pena continuar, sem MQTT não há vida + } - esp_mqtt_client_register_event(mqtt_client, ESP_EVENT_ANY_ID, mqtt_event_handler, NULL); - esp_mqtt_client_start(mqtt_client); + esp_mqtt_client_register_event(mqtt_client, ESP_EVENT_ANY_ID, mqtt_event_handler, NULL); + esp_mqtt_client_start(mqtt_client); - ESP_LOGI(TAG, "🚀 MQTT inicializado em %s:%lu (%s)", + ESP_LOGI(TAG, "🚀 MQTT inicializado em %s:%lu (TLS)", mqtt_cfg.broker.address.hostname, - (unsigned long)mqtt_cfg.broker.address.port, - mqtt_cfg.broker.address.transport == MQTT_TRANSPORT_OVER_SSL ? "TLS" : "TCP"); + (unsigned long)mqtt_cfg.broker.address.port); + + // -------- WATCHDOG MQTT -------- const esp_timer_create_args_t wd_args = { diff --git a/sdkconfig b/sdkconfig index 3010128..bafb827 100644 --- a/sdkconfig +++ b/sdkconfig @@ -317,14 +317,14 @@ CONFIG_ESPTOOLPY_FLASHFREQ_40M=y # CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set CONFIG_ESPTOOLPY_FLASHFREQ="40m" # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="4MB" +CONFIG_ESPTOOLPY_FLASHSIZE="2MB" # CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set CONFIG_ESPTOOLPY_BEFORE_RESET=y # CONFIG_ESPTOOLPY_BEFORE_NORESET is not set @@ -338,12 +338,12 @@ CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 # # Partition Table # -# CONFIG_PARTITION_TABLE_SINGLE_APP is not set +CONFIG_PARTITION_TABLE_SINGLE_APP=y # CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set # CONFIG_PARTITION_TABLE_TWO_OTA is not set -CONFIG_PARTITION_TABLE_CUSTOM=y +# CONFIG_PARTITION_TABLE_CUSTOM is not set CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" -CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" CONFIG_PARTITION_TABLE_OFFSET=0x8000 CONFIG_PARTITION_TABLE_MD5=y # end of Partition Table diff --git a/sdkconfig.old b/sdkconfig.old deleted file mode 100644 index 3010128..0000000 --- a/sdkconfig.old +++ /dev/null @@ -1,1858 +0,0 @@ -# -# Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.1.6 Project Configuration -# -CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" -CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" -CONFIG_SOC_DPORT_WORKAROUND="Not determined" -CONFIG_SOC_CAPS_ECO_VER_MAX=301 -CONFIG_SOC_ADC_SUPPORTED=y -CONFIG_SOC_DAC_SUPPORTED=y -CONFIG_SOC_UART_SUPPORTED=y -CONFIG_SOC_MCPWM_SUPPORTED=y -CONFIG_SOC_GPTIMER_SUPPORTED=y -CONFIG_SOC_SDMMC_HOST_SUPPORTED=y -CONFIG_SOC_BT_SUPPORTED=y -CONFIG_SOC_PCNT_SUPPORTED=y -CONFIG_SOC_WIFI_SUPPORTED=y -CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y -CONFIG_SOC_TWAI_SUPPORTED=y -CONFIG_SOC_EMAC_SUPPORTED=y -CONFIG_SOC_ULP_SUPPORTED=y -CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y -CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y -CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED=y -CONFIG_SOC_RTC_MEM_SUPPORTED=y -CONFIG_SOC_I2S_SUPPORTED=y -CONFIG_SOC_RMT_SUPPORTED=y -CONFIG_SOC_SDM_SUPPORTED=y -CONFIG_SOC_GPSPI_SUPPORTED=y -CONFIG_SOC_LEDC_SUPPORTED=y -CONFIG_SOC_I2C_SUPPORTED=y -CONFIG_SOC_SUPPORT_COEXISTENCE=y -CONFIG_SOC_AES_SUPPORTED=y -CONFIG_SOC_MPI_SUPPORTED=y -CONFIG_SOC_SHA_SUPPORTED=y -CONFIG_SOC_FLASH_ENC_SUPPORTED=y -CONFIG_SOC_SECURE_BOOT_SUPPORTED=y -CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y -CONFIG_SOC_BOD_SUPPORTED=y -CONFIG_SOC_ULP_FSM_SUPPORTED=y -CONFIG_SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL=5 -CONFIG_SOC_XTAL_SUPPORT_26M=y -CONFIG_SOC_XTAL_SUPPORT_40M=y -CONFIG_SOC_XTAL_SUPPORT_AUTO_DETECT=y -CONFIG_SOC_ADC_RTC_CTRL_SUPPORTED=y -CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y -CONFIG_SOC_ADC_DMA_SUPPORTED=y -CONFIG_SOC_ADC_PERIPH_NUM=2 -CONFIG_SOC_ADC_MAX_CHANNEL_NUM=10 -CONFIG_SOC_ADC_ATTEN_NUM=4 -CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=2 -CONFIG_SOC_ADC_PATT_LEN_MAX=16 -CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=9 -CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 -CONFIG_SOC_ADC_DIGI_RESULT_BYTES=2 -CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 -CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 -CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 -CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 -CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 -CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y -CONFIG_SOC_IDCACHE_PER_CORE=y -CONFIG_SOC_CPU_CORES_NUM=2 -CONFIG_SOC_CPU_INTR_NUM=32 -CONFIG_SOC_CPU_HAS_FPU=y -CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 -CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 -CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=64 -CONFIG_SOC_DAC_CHAN_NUM=2 -CONFIG_SOC_DAC_RESOLUTION=8 -CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y -CONFIG_SOC_GPIO_PORT=1 -CONFIG_SOC_GPIO_PIN_COUNT=40 -CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF -CONFIG_SOC_GPIO_IN_RANGE_MAX=39 -CONFIG_SOC_GPIO_OUT_RANGE_MAX=33 -CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA -CONFIG_SOC_I2C_NUM=2 -CONFIG_SOC_I2C_FIFO_LEN=32 -CONFIG_SOC_I2C_CMD_REG_NUM=16 -CONFIG_SOC_I2C_SUPPORT_SLAVE=y -CONFIG_SOC_I2C_SUPPORT_APB=y -CONFIG_SOC_I2S_NUM=2 -CONFIG_SOC_I2S_HW_VERSION_1=y -CONFIG_SOC_I2S_SUPPORTS_APLL=y -CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y -CONFIG_SOC_I2S_SUPPORTS_PDM=y -CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y -CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1 -CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y -CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 -CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y -CONFIG_SOC_I2S_SUPPORTS_ADC=y -CONFIG_SOC_I2S_SUPPORTS_DAC=y -CONFIG_SOC_I2S_SUPPORTS_LCD_CAMERA=y -CONFIG_SOC_I2S_TRANS_SIZE_ALIGN_WORD=y -CONFIG_SOC_I2S_LCD_I80_VARIANT=y -CONFIG_SOC_LCD_I80_SUPPORTED=y -CONFIG_SOC_LCD_I80_BUSES=2 -CONFIG_SOC_LCD_I80_BUS_WIDTH=24 -CONFIG_SOC_LEDC_HAS_TIMER_SPECIFIC_MUX=y -CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y -CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y -CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y -CONFIG_SOC_LEDC_CHANNEL_NUM=8 -CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 -CONFIG_SOC_MCPWM_GROUPS=2 -CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 -CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 -CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 -CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y -CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 -CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 -CONFIG_SOC_MMU_PERIPH_NUM=2 -CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=3 -CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 -CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 -CONFIG_SOC_PCNT_GROUPS=1 -CONFIG_SOC_PCNT_UNITS_PER_GROUP=8 -CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 -CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 -CONFIG_SOC_RMT_GROUPS=1 -CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=8 -CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=8 -CONFIG_SOC_RMT_CHANNELS_PER_GROUP=8 -CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=64 -CONFIG_SOC_RMT_SUPPORT_REF_TICK=y -CONFIG_SOC_RMT_SUPPORT_APB=y -CONFIG_SOC_RMT_CHANNEL_CLK_INDEPENDENT=y -CONFIG_SOC_RTCIO_PIN_COUNT=18 -CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y -CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y -CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y -CONFIG_SOC_SDM_GROUPS=1 -CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8 -CONFIG_SOC_SDM_CLK_SUPPORT_APB=y -CONFIG_SOC_SPI_HD_BOTH_INOUT_SUPPORTED=y -CONFIG_SOC_SPI_AS_CS_SUPPORTED=y -CONFIG_SOC_SPI_PERIPH_NUM=3 -CONFIG_SOC_SPI_DMA_CHAN_NUM=2 -CONFIG_SOC_SPI_MAX_CS_NUM=3 -CONFIG_SOC_SPI_SUPPORT_CLK_APB=y -CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 -CONFIG_SOC_SPI_MAX_PRE_DIVIDER=8192 -CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y -CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y -CONFIG_SOC_MEMSPI_SRC_FREQ_26M_SUPPORTED=y -CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y -CONFIG_SOC_TIMER_GROUPS=2 -CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=2 -CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=64 -CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4 -CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y -CONFIG_SOC_TOUCH_VERSION_1=y -CONFIG_SOC_TOUCH_SENSOR_NUM=10 -CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF -CONFIG_SOC_TWAI_CONTROLLER_NUM=1 -CONFIG_SOC_TWAI_BRP_MIN=2 -CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y -CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y -CONFIG_SOC_UART_NUM=3 -CONFIG_SOC_UART_SUPPORT_APB_CLK=y -CONFIG_SOC_UART_SUPPORT_REF_TICK=y -CONFIG_SOC_UART_FIFO_LEN=128 -CONFIG_SOC_UART_BITRATE_MAX=5000000 -CONFIG_SOC_SPIRAM_SUPPORTED=y -CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y -CONFIG_SOC_SHA_SUPPORT_PARALLEL_ENG=y -CONFIG_SOC_SHA_SUPPORT_SHA1=y -CONFIG_SOC_SHA_SUPPORT_SHA256=y -CONFIG_SOC_SHA_SUPPORT_SHA384=y -CONFIG_SOC_SHA_SUPPORT_SHA512=y -CONFIG_SOC_RSA_MAX_BIT_LEN=4096 -CONFIG_SOC_AES_SUPPORT_AES_128=y -CONFIG_SOC_AES_SUPPORT_AES_192=y -CONFIG_SOC_AES_SUPPORT_AES_256=y -CONFIG_SOC_SECURE_BOOT_V1=y -CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=y -CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32 -CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 -CONFIG_SOC_PM_SUPPORT_EXT0_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_EXT_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y -CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y -CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y -CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y -CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y -CONFIG_SOC_PM_SUPPORT_MODEM_PD=y -CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y -CONFIG_SOC_CLK_APLL_SUPPORTED=y -CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 -CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 -CONFIG_SOC_APLL_MIN_HZ=5303031 -CONFIG_SOC_APLL_MAX_HZ=125000000 -CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y -CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y -CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y -CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y -CONFIG_SOC_SDMMC_USE_IOMUX=y -CONFIG_SOC_SDMMC_NUM_SLOTS=2 -CONFIG_SOC_WIFI_WAPI_SUPPORT=y -CONFIG_SOC_WIFI_CSI_SUPPORT=y -CONFIG_SOC_WIFI_MESH_SUPPORT=y -CONFIG_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW=y -CONFIG_SOC_WIFI_NAN_SUPPORT=y -CONFIG_SOC_BLE_SUPPORTED=y -CONFIG_SOC_BLE_MESH_SUPPORTED=y -CONFIG_SOC_BT_CLASSIC_SUPPORTED=y -CONFIG_SOC_BLUFI_SUPPORTED=y -CONFIG_SOC_ULP_HAS_ADC=y -CONFIG_SOC_PHY_COMBO_MODULE=y -CONFIG_IDF_CMAKE=y -CONFIG_IDF_TARGET_ARCH_XTENSA=y -CONFIG_IDF_TARGET_ARCH="xtensa" -CONFIG_IDF_TARGET="esp32" -CONFIG_IDF_TARGET_ESP32=y -CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 - -# -# Build type -# -CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y -# CONFIG_APP_BUILD_TYPE_RAM is not set -CONFIG_APP_BUILD_GENERATE_BINARIES=y -CONFIG_APP_BUILD_BOOTLOADER=y -CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y -# CONFIG_APP_REPRODUCIBLE_BUILD is not set -# CONFIG_APP_NO_BLOBS is not set -# CONFIG_APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set -# CONFIG_APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set -# end of Build type - -# -# Bootloader config -# -CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 -CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set -CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y -# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set -CONFIG_BOOTLOADER_LOG_LEVEL=3 - -# -# Serial Flash Configurations -# -# CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set -CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y -# end of Serial Flash Configurations - -# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set -CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y -# CONFIG_BOOTLOADER_FACTORY_RESET is not set -# CONFIG_BOOTLOADER_APP_TEST is not set -CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y -CONFIG_BOOTLOADER_WDT_ENABLE=y -# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set -CONFIG_BOOTLOADER_WDT_TIME_MS=9000 -# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set -CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 -# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set -# end of Bootloader config - -# -# Security features -# -CONFIG_SECURE_BOOT_V1_SUPPORTED=y -# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set -# CONFIG_SECURE_BOOT is not set -# CONFIG_SECURE_FLASH_ENC_ENABLED is not set -# end of Security features - -# -# Application manager -# -CONFIG_APP_COMPILE_TIME_DATE=y -# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set -# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set -# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set -CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 -# end of Application manager - -CONFIG_ESP_ROM_HAS_CRC_LE=y -CONFIG_ESP_ROM_HAS_CRC_BE=y -CONFIG_ESP_ROM_HAS_MZ_CRC32=y -CONFIG_ESP_ROM_HAS_JPEG_DECODE=y -CONFIG_ESP_ROM_HAS_UART_BUF_SWITCH=y -CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y -CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y - -# -# Serial flasher config -# -# CONFIG_ESPTOOLPY_NO_STUB is not set -# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set -# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y -# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set -CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y -CONFIG_ESPTOOLPY_FLASHMODE="dio" -# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set -CONFIG_ESPTOOLPY_FLASHFREQ_40M=y -# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set -# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set -CONFIG_ESPTOOLPY_FLASHFREQ="40m" -# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="4MB" -# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set -CONFIG_ESPTOOLPY_BEFORE_RESET=y -# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set -CONFIG_ESPTOOLPY_BEFORE="default_reset" -CONFIG_ESPTOOLPY_AFTER_RESET=y -# CONFIG_ESPTOOLPY_AFTER_NORESET is not set -CONFIG_ESPTOOLPY_AFTER="hard_reset" -CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 -# end of Serial flasher config - -# -# Partition Table -# -# CONFIG_PARTITION_TABLE_SINGLE_APP is not set -# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set -# CONFIG_PARTITION_TABLE_TWO_OTA is not set -CONFIG_PARTITION_TABLE_CUSTOM=y -CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" -CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" -CONFIG_PARTITION_TABLE_OFFSET=0x8000 -CONFIG_PARTITION_TABLE_MD5=y -# end of Partition Table - -# -# Compiler options -# -CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y -# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set -# CONFIG_COMPILER_OPTIMIZATION_PERF is not set -# CONFIG_COMPILER_OPTIMIZATION_NONE is not set -CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set -CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y -CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 -# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set -CONFIG_COMPILER_HIDE_PATHS_MACROS=y -# CONFIG_COMPILER_CXX_EXCEPTIONS is not set -# CONFIG_COMPILER_CXX_RTTI is not set -CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y -# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set -# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set -# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set -# CONFIG_COMPILER_DUMP_RTL_FILES is not set -# end of Compiler options - -# -# Component config -# - -# -# Application Level Tracing -# -# CONFIG_APPTRACE_DEST_JTAG is not set -CONFIG_APPTRACE_DEST_NONE=y -# CONFIG_APPTRACE_DEST_UART1 is not set -# CONFIG_APPTRACE_DEST_UART2 is not set -CONFIG_APPTRACE_DEST_UART_NONE=y -CONFIG_APPTRACE_UART_TASK_PRIO=1 -CONFIG_APPTRACE_LOCK_ENABLE=y -# end of Application Level Tracing - -# -# Bluetooth -# -# CONFIG_BT_ENABLED is not set -CONFIG_BT_ALARM_MAX_NUM=50 -# end of Bluetooth - -# -# Driver Configurations -# - -# -# Legacy ADC Configuration -# -CONFIG_ADC_DISABLE_DAC=y -# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set - -# -# Legacy ADC Calibration Configuration -# -CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y -CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y -CONFIG_ADC_CAL_LUT_ENABLE=y -# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy ADC Calibration Configuration -# end of Legacy ADC Configuration - -# -# SPI Configuration -# -# CONFIG_SPI_MASTER_IN_IRAM is not set -CONFIG_SPI_MASTER_ISR_IN_IRAM=y -# CONFIG_SPI_SLAVE_IN_IRAM is not set -CONFIG_SPI_SLAVE_ISR_IN_IRAM=y -# end of SPI Configuration - -# -# TWAI Configuration -# -# CONFIG_TWAI_ISR_IN_IRAM is not set -CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC=y -CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST=y -CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID=y -CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT=y -CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y -# end of TWAI Configuration - -# -# UART Configuration -# -# CONFIG_UART_ISR_IN_IRAM is not set -# end of UART Configuration - -# -# GPIO Configuration -# -# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set -# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set -# end of GPIO Configuration - -# -# Sigma Delta Modulator Configuration -# -# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set -# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_SDM_ENABLE_DEBUG_LOG is not set -# end of Sigma Delta Modulator Configuration - -# -# GPTimer Configuration -# -CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y -# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set -# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set -# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set -# end of GPTimer Configuration - -# -# PCNT Configuration -# -# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set -# CONFIG_PCNT_ISR_IRAM_SAFE is not set -# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set -# end of PCNT Configuration - -# -# RMT Configuration -# -# CONFIG_RMT_ISR_IRAM_SAFE is not set -# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set -# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_RMT_ENABLE_DEBUG_LOG is not set -# end of RMT Configuration - -# -# MCPWM Configuration -# -# CONFIG_MCPWM_ISR_IRAM_SAFE is not set -# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set -# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set -# end of MCPWM Configuration - -# -# I2S Configuration -# -# CONFIG_I2S_ISR_IRAM_SAFE is not set -# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_I2S_ENABLE_DEBUG_LOG is not set -# end of I2S Configuration - -# -# DAC Configuration -# -# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set -# CONFIG_DAC_ISR_IRAM_SAFE is not set -# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_DAC_ENABLE_DEBUG_LOG is not set -CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y -# end of DAC Configuration -# end of Driver Configurations - -# -# eFuse Bit Manager -# -# CONFIG_EFUSE_CUSTOM_TABLE is not set -# CONFIG_EFUSE_VIRTUAL is not set -# CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set -CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y -# CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set -CONFIG_EFUSE_MAX_BLK_LEN=192 -# end of eFuse Bit Manager - -# -# ESP-TLS -# -CONFIG_ESP_TLS_USING_MBEDTLS=y -# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set -# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER is not set -# CONFIG_ESP_TLS_PSK_VERIFICATION is not set -# CONFIG_ESP_TLS_INSECURE is not set -# end of ESP-TLS - -# -# ADC and ADC Calibration -# -# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set -# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set - -# -# ADC Calibration Configurations -# -CONFIG_ADC_CALI_EFUSE_TP_ENABLE=y -CONFIG_ADC_CALI_EFUSE_VREF_ENABLE=y -CONFIG_ADC_CALI_LUT_ENABLE=y -# end of ADC Calibration Configurations - -CONFIG_ADC_DISABLE_DAC_OUTPUT=y -# end of ADC and ADC Calibration - -# -# Wireless Coexistence -# -# CONFIG_ESP_COEX_GPIO_DEBUG is not set -# end of Wireless Coexistence - -# -# Common ESP-related -# -CONFIG_ESP_ERR_TO_NAME_LOOKUP=y -# end of Common ESP-related - -# -# Ethernet -# -CONFIG_ETH_ENABLED=y -CONFIG_ETH_USE_ESP32_EMAC=y -CONFIG_ETH_PHY_INTERFACE_RMII=y -CONFIG_ETH_RMII_CLK_INPUT=y -# CONFIG_ETH_RMII_CLK_OUTPUT is not set -CONFIG_ETH_RMII_CLK_IN_GPIO=0 -CONFIG_ETH_DMA_BUFFER_SIZE=512 -CONFIG_ETH_DMA_RX_BUFFER_NUM=10 -CONFIG_ETH_DMA_TX_BUFFER_NUM=10 -# CONFIG_ETH_IRAM_OPTIMIZATION is not set -CONFIG_ETH_USE_SPI_ETHERNET=y -# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set -# CONFIG_ETH_SPI_ETHERNET_W5500 is not set -# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set -# CONFIG_ETH_USE_OPENETH is not set -# CONFIG_ETH_TRANSMIT_MUTEX is not set -# end of Ethernet - -# -# Event Loop Library -# -# CONFIG_ESP_EVENT_LOOP_PROFILING is not set -CONFIG_ESP_EVENT_POST_FROM_ISR=y -CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y -# end of Event Loop Library - -# -# GDB Stub -# -# end of GDB Stub - -# -# ESP HTTP client -# -CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y -# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set -# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set -# end of ESP HTTP client - -# -# HTTP Server -# -CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 -CONFIG_HTTPD_MAX_URI_LEN=512 -CONFIG_HTTPD_ERR_RESP_NO_DELAY=y -CONFIG_HTTPD_PURGE_BUF_LEN=32 -# CONFIG_HTTPD_LOG_PURGE_DATA is not set -# CONFIG_HTTPD_WS_SUPPORT is not set -# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set -# end of HTTP Server - -# -# ESP HTTPS OTA -# -# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set -# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set -# end of ESP HTTPS OTA - -# -# ESP HTTPS server -# -# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set -# end of ESP HTTPS server - -# -# Hardware Settings -# - -# -# Chip revision -# -CONFIG_ESP32_REV_MIN_0=y -# CONFIG_ESP32_REV_MIN_1 is not set -# CONFIG_ESP32_REV_MIN_1_1 is not set -# CONFIG_ESP32_REV_MIN_2 is not set -# CONFIG_ESP32_REV_MIN_3 is not set -# CONFIG_ESP32_REV_MIN_3_1 is not set -CONFIG_ESP32_REV_MIN=0 -CONFIG_ESP32_REV_MIN_FULL=0 -CONFIG_ESP_REV_MIN_FULL=0 - -# -# Maximum Supported ESP32 Revision (Rev v3.99) -# -CONFIG_ESP32_REV_MAX_FULL=399 -CONFIG_ESP_REV_MAX_FULL=399 -# end of Chip revision - -# -# MAC Config -# -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y -CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y -# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set -CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y -CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 -# CONFIG_ESP_MAC_IGNORE_MAC_CRC_ERROR is not set -# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set -# end of MAC Config - -# -# Sleep Config -# -# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set -CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y -# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set -CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y -# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set -CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 -# CONFIG_ESP_SLEEP_DEBUG is not set -CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y -# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set -# end of Sleep Config - -# -# RTC Clock Config -# -CONFIG_RTC_CLK_SRC_INT_RC=y -# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set -# CONFIG_RTC_CLK_SRC_EXT_OSC is not set -# CONFIG_RTC_CLK_SRC_INT_8MD256 is not set -CONFIG_RTC_CLK_CAL_CYCLES=1024 -# end of RTC Clock Config - -# -# Peripheral Control -# -CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y -# end of Peripheral Control - -# -# Main XTAL Config -# -# CONFIG_XTAL_FREQ_26 is not set -CONFIG_XTAL_FREQ_40=y -# CONFIG_XTAL_FREQ_AUTO is not set -CONFIG_XTAL_FREQ=40 -# end of Main XTAL Config -# end of Hardware Settings - -# -# LCD and Touch Panel -# - -# -# LCD Touch Drivers are maintained in the IDF Component Registry -# - -# -# LCD Peripheral Configuration -# -CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 -# CONFIG_LCD_ENABLE_DEBUG_LOG is not set -# end of LCD Peripheral Configuration -# end of LCD and Touch Panel - -# -# ESP NETIF Adapter -# -CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 -CONFIG_ESP_NETIF_TCPIP_LWIP=y -# CONFIG_ESP_NETIF_LOOPBACK is not set -CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y -# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set -# CONFIG_ESP_NETIF_L2_TAP is not set -# CONFIG_ESP_NETIF_BRIDGE_EN is not set -# end of ESP NETIF Adapter - -# -# Partition API Configuration -# -# end of Partition API Configuration - -# -# PHY -# -CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP_PHY_MAX_TX_POWER=20 -# CONFIG_ESP_PHY_REDUCE_TX_POWER is not set -# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set -CONFIG_ESP_PHY_RF_CAL_PARTIAL=y -# CONFIG_ESP_PHY_RF_CAL_NONE is not set -# CONFIG_ESP_PHY_RF_CAL_FULL is not set -CONFIG_ESP_PHY_CALIBRATION_MODE=0 -# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set -# end of PHY - -# -# Power Management -# -# CONFIG_PM_ENABLE is not set -# CONFIG_PM_SLP_IRAM_OPT is not set -# end of Power Management - -# -# ESP PSRAM -# -# CONFIG_SPIRAM is not set -# end of ESP PSRAM - -# -# ESP Ringbuf -# -# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set -# end of ESP Ringbuf - -# -# ESP System Settings -# -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160 - -# -# Memory -# -# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set - -# -# Non-backward compatible options -# -# CONFIG_ESP_SYSTEM_ESP32_SRAM1_REGION_AS_IRAM is not set -# end of Non-backward compatible options -# end of Memory - -# -# Trace memory -# -# CONFIG_ESP32_TRAX is not set -CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 -# end of Trace memory - -# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set -CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y -# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set -# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set -# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set -CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 - -# -# Memory protection -# -# end of Memory protection - -CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 -CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 -CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y -# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set -# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set -CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 -CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 -CONFIG_ESP_CONSOLE_UART_DEFAULT=y -# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set -# CONFIG_ESP_CONSOLE_NONE is not set -CONFIG_ESP_CONSOLE_UART=y -CONFIG_ESP_CONSOLE_MULTIPLE_UART=y -CONFIG_ESP_CONSOLE_UART_NUM=0 -CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 -CONFIG_ESP_INT_WDT=y -CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 -CONFIG_ESP_INT_WDT_CHECK_CPU1=y -CONFIG_ESP_TASK_WDT_EN=y -CONFIG_ESP_TASK_WDT_INIT=y -# CONFIG_ESP_TASK_WDT_PANIC is not set -CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y -# CONFIG_ESP_PANIC_HANDLER_IRAM is not set -# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set -CONFIG_ESP_DEBUG_OCDAWARE=y -# CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set -CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y - -# -# Brownout Detector -# -CONFIG_ESP_BROWNOUT_DET=y -CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0=y -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7 is not set -CONFIG_ESP_BROWNOUT_DET_LVL=0 -# end of Brownout Detector - -# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set -CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y -# end of ESP System Settings - -# -# IPC (Inter-Processor Call) -# -CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 -CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y -CONFIG_ESP_IPC_ISR_ENABLE=y -# end of IPC (Inter-Processor Call) - -# -# High resolution timer (esp_timer) -# -# CONFIG_ESP_TIMER_PROFILING is not set -CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y -CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y -CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 -CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 -# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set -CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 -CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y -CONFIG_ESP_TIMER_ISR_AFFINITY=0x1 -CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y -# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set -CONFIG_ESP_TIMER_IMPL_TG0_LAC=y -# end of High resolution timer (esp_timer) - -# -# Wi-Fi -# -CONFIG_ESP_WIFI_ENABLED=y -CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 -CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -# CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set -CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y -CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1 -CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32 -CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y -# CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set -CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 -CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 -# CONFIG_ESP_WIFI_CSI_ENABLED is not set -CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP_WIFI_TX_BA_WIN=6 -CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP_WIFI_RX_BA_WIN=6 -CONFIG_ESP_WIFI_NVS_ENABLED=y -CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_0=y -# CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_1 is not set -CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 -CONFIG_ESP_WIFI_IRAM_OPT=y -# CONFIG_ESP_WIFI_EXTRA_IRAM_OPT is not set -CONFIG_ESP_WIFI_RX_IRAM_OPT=y -CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y -CONFIG_ESP_WIFI_ENABLE_SAE_PK=y -CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y -CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y -# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 -CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 -CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 -CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y -CONFIG_ESP_WIFI_GMAC_SUPPORT=y -CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y -# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set -CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 -# CONFIG_ESP_WIFI_NAN_ENABLE is not set -CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y -CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y -# CONFIG_ESP_WIFI_WAPI_PSK is not set -# CONFIG_ESP_WIFI_11KV_SUPPORT is not set -# CONFIG_ESP_WIFI_MBO_SUPPORT is not set -# CONFIG_ESP_WIFI_DPP_SUPPORT is not set -# CONFIG_ESP_WIFI_11R_SUPPORT is not set -# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set - -# -# WPS Configuration Options -# -# CONFIG_ESP_WIFI_WPS_STRICT is not set -# CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set -# end of WPS Configuration Options - -# CONFIG_ESP_WIFI_DEBUG_PRINT is not set -# CONFIG_ESP_WIFI_TESTING_OPTIONS is not set -CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y -# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set -# end of Wi-Fi - -# -# Core dump -# -# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set -# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set -CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y -# end of Core dump - -# -# FAT Filesystem support -# -CONFIG_FATFS_VOLUME_COUNT=2 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set -# CONFIG_FATFS_SECTOR_512 is not set -CONFIG_FATFS_SECTOR_4096=y -# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set -CONFIG_FATFS_CODEPAGE_437=y -# CONFIG_FATFS_CODEPAGE_720 is not set -# CONFIG_FATFS_CODEPAGE_737 is not set -# CONFIG_FATFS_CODEPAGE_771 is not set -# CONFIG_FATFS_CODEPAGE_775 is not set -# CONFIG_FATFS_CODEPAGE_850 is not set -# CONFIG_FATFS_CODEPAGE_852 is not set -# CONFIG_FATFS_CODEPAGE_855 is not set -# CONFIG_FATFS_CODEPAGE_857 is not set -# CONFIG_FATFS_CODEPAGE_860 is not set -# CONFIG_FATFS_CODEPAGE_861 is not set -# CONFIG_FATFS_CODEPAGE_862 is not set -# CONFIG_FATFS_CODEPAGE_863 is not set -# CONFIG_FATFS_CODEPAGE_864 is not set -# CONFIG_FATFS_CODEPAGE_865 is not set -# CONFIG_FATFS_CODEPAGE_866 is not set -# CONFIG_FATFS_CODEPAGE_869 is not set -# CONFIG_FATFS_CODEPAGE_932 is not set -# CONFIG_FATFS_CODEPAGE_936 is not set -# CONFIG_FATFS_CODEPAGE_949 is not set -# CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_FS_LOCK=0 -CONFIG_FATFS_TIMEOUT_MS=10000 -CONFIG_FATFS_PER_FILE_CACHE=y -# CONFIG_FATFS_USE_FASTSEEK is not set -CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 -# end of FAT Filesystem support - -# -# FreeRTOS -# - -# -# Kernel -# -# CONFIG_FREERTOS_SMP is not set -# CONFIG_FREERTOS_UNICORE is not set -CONFIG_FREERTOS_HZ=100 -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set -CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y -CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 -CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 -# CONFIG_FREERTOS_USE_IDLE_HOOK is not set -# CONFIG_FREERTOS_USE_TICK_HOOK is not set -CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 -# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set -CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 -CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 -CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 -CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 -# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set -# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set -# end of Kernel - -# -# Port -# -CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y -# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set -CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y -# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set -CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y -CONFIG_FREERTOS_ISR_STACKSIZE=1536 -CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y -# CONFIG_FREERTOS_FPU_IN_ISR is not set -CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y -CONFIG_FREERTOS_CORETIMER_0=y -# CONFIG_FREERTOS_CORETIMER_1 is not set -CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y -# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set -# CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set -# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y -# end of Port - -CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF -CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y -CONFIG_FREERTOS_DEBUG_OCDAWARE=y -# end of FreeRTOS - -# -# Hardware Abstraction Layer (HAL) and Low Level (LL) -# -CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y -# CONFIG_HAL_ASSERTION_DISABLE is not set -# CONFIG_HAL_ASSERTION_SILENT is not set -# CONFIG_HAL_ASSERTION_ENABLE is not set -CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 -CONFIG_HAL_SPI_MASTER_FUNC_IN_IRAM=y -CONFIG_HAL_SPI_SLAVE_FUNC_IN_IRAM=y -# end of Hardware Abstraction Layer (HAL) and Low Level (LL) - -# -# Heap memory debugging -# -CONFIG_HEAP_POISONING_DISABLED=y -# CONFIG_HEAP_POISONING_LIGHT is not set -# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set -CONFIG_HEAP_TRACING_OFF=y -# CONFIG_HEAP_TRACING_STANDALONE is not set -# CONFIG_HEAP_TRACING_TOHOST is not set -# CONFIG_HEAP_USE_HOOKS is not set -# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set -# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set -# end of Heap memory debugging - -# -# Log output -# -# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set -# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set -# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set -CONFIG_LOG_DEFAULT_LEVEL_INFO=y -# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set -# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set -CONFIG_LOG_DEFAULT_LEVEL=3 -CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y -# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set -# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set -CONFIG_LOG_MAXIMUM_LEVEL=3 -CONFIG_LOG_COLORS=y -CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y -# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Log output - -# -# LWIP -# -CONFIG_LWIP_LOCAL_HOSTNAME="espressif" -# CONFIG_LWIP_NETIF_API is not set -CONFIG_LWIP_TCPIP_TASK_PRIO=18 -# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set -# CONFIG_LWIP_CHECK_THREAD_SAFETY is not set -CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y -# CONFIG_LWIP_L2_TO_L3_COPY is not set -# CONFIG_LWIP_IRAM_OPTIMIZATION is not set -# CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set -CONFIG_LWIP_TIMERS_ONDEMAND=y -CONFIG_LWIP_ND6=y -# CONFIG_LWIP_FORCE_ROUTER_FORWARDING is not set -CONFIG_LWIP_MAX_SOCKETS=10 -# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set -# CONFIG_LWIP_SO_LINGER is not set -CONFIG_LWIP_SO_REUSE=y -CONFIG_LWIP_SO_REUSE_RXTOALL=y -# CONFIG_LWIP_SO_RCVBUF is not set -# CONFIG_LWIP_NETBUF_RECVINFO is not set -CONFIG_LWIP_IP_DEFAULT_TTL=64 -CONFIG_LWIP_IP4_FRAG=y -CONFIG_LWIP_IP6_FRAG=y -# CONFIG_LWIP_IP4_REASSEMBLY is not set -# CONFIG_LWIP_IP6_REASSEMBLY is not set -CONFIG_LWIP_IP_REASS_MAX_PBUFS=10 -# CONFIG_LWIP_IP_FORWARD is not set -# CONFIG_LWIP_STATS is not set -CONFIG_LWIP_ESP_GRATUITOUS_ARP=y -CONFIG_LWIP_GARP_TMR_INTERVAL=60 -CONFIG_LWIP_ESP_MLDV6_REPORT=y -CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 -CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 -CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y -# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set -CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y -# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set -CONFIG_LWIP_DHCP_OPTIONS_LEN=68 -CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 -CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 - -# -# DHCP server -# -CONFIG_LWIP_DHCPS=y -CONFIG_LWIP_DHCPS_LEASE_UNIT=60 -CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 -# end of DHCP server - -# CONFIG_LWIP_AUTOIP is not set -CONFIG_LWIP_IPV4=y -CONFIG_LWIP_IPV6=y -# CONFIG_LWIP_IPV6_AUTOCONFIG is not set -CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 -# CONFIG_LWIP_IPV6_FORWARD is not set -# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set -CONFIG_LWIP_NETIF_LOOPBACK=y -CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 - -# -# TCP -# -CONFIG_LWIP_MAX_ACTIVE_TCP=16 -CONFIG_LWIP_MAX_LISTENING_TCP=16 -CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y -CONFIG_LWIP_TCP_MAXRTX=12 -CONFIG_LWIP_TCP_SYNMAXRTX=12 -CONFIG_LWIP_TCP_MSS=1440 -CONFIG_LWIP_TCP_TMR_INTERVAL=250 -CONFIG_LWIP_TCP_MSL=60000 -CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 -CONFIG_LWIP_TCP_WND_DEFAULT=5760 -CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 -CONFIG_LWIP_TCP_QUEUE_OOSEQ=y -CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 -CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 -# CONFIG_LWIP_TCP_SACK_OUT is not set -CONFIG_LWIP_TCP_OVERSIZE_MSS=y -# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set -CONFIG_LWIP_TCP_RTO_TIME=1500 -# end of TCP - -# -# UDP -# -CONFIG_LWIP_MAX_UDP_PCBS=16 -CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 -# end of UDP - -# -# Checksums -# -# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set -# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set -CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y -# end of Checksums - -CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set -CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF -CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 -CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 -CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 -# CONFIG_LWIP_PPP_SUPPORT is not set -CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 -CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 -# CONFIG_LWIP_SLIP_SUPPORT is not set - -# -# ICMP -# -CONFIG_LWIP_ICMP=y -# CONFIG_LWIP_MULTICAST_PING is not set -# CONFIG_LWIP_BROADCAST_PING is not set -# end of ICMP - -# -# LWIP RAW API -# -CONFIG_LWIP_MAX_RAW_PCBS=16 -# end of LWIP RAW API - -# -# SNTP -# -CONFIG_LWIP_SNTP_MAX_SERVERS=1 -# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set -CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 -# end of SNTP - -# -# DNS -# -CONFIG_LWIP_DNS_MAX_SERVERS=3 -# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set -# end of DNS - -CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 -CONFIG_LWIP_ESP_LWIP_ASSERT=y - -# -# Hooks -# -# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set -CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y -# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y -# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set -CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y -# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set -# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y -# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set -CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set -CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set -# CONFIG_LWIP_HOOK_IP6_INPUT_NONE is not set -CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT=y -# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set -# end of Hooks - -# CONFIG_LWIP_DEBUG is not set -# end of LWIP - -# -# mbedTLS -# -CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y -# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set -# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set -CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y -CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 -CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 -# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set -# CONFIG_MBEDTLS_DEBUG is not set - -# -# mbedTLS v3.x related -# -# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set -# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set -# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set -# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set -CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y -CONFIG_MBEDTLS_PKCS7_C=y -# end of mbedTLS v3.x related - -# -# Certificate Bundle -# -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set -# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 -# end of Certificate Bundle - -# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set -CONFIG_MBEDTLS_CMAC_C=y -CONFIG_MBEDTLS_HARDWARE_AES=y -# CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER is not set -CONFIG_MBEDTLS_HARDWARE_MPI=y -# CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set -CONFIG_MBEDTLS_HARDWARE_SHA=y -CONFIG_MBEDTLS_ROM_MD5=y -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set -CONFIG_MBEDTLS_HAVE_TIME=y -# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set -# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set -CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y -CONFIG_MBEDTLS_SHA512_C=y -# CONFIG_MBEDTLS_SHA3_C is not set -CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y -# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set -# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set -# CONFIG_MBEDTLS_TLS_DISABLED is not set -CONFIG_MBEDTLS_TLS_SERVER=y -CONFIG_MBEDTLS_TLS_CLIENT=y -CONFIG_MBEDTLS_TLS_ENABLED=y - -# -# TLS Key Exchange Methods -# -# CONFIG_MBEDTLS_PSK_MODES is not set -CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y -# end of TLS Key Exchange Methods - -CONFIG_MBEDTLS_SSL_RENEGOTIATION=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y -# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set -# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set -CONFIG_MBEDTLS_SSL_ALPN=y -CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y -CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y - -# -# Symmetric Ciphers -# -CONFIG_MBEDTLS_AES_C=y -# CONFIG_MBEDTLS_CAMELLIA_C is not set -# CONFIG_MBEDTLS_DES_C is not set -# CONFIG_MBEDTLS_BLOWFISH_C is not set -# CONFIG_MBEDTLS_XTEA_C is not set -CONFIG_MBEDTLS_CCM_C=y -CONFIG_MBEDTLS_GCM_C=y -# CONFIG_MBEDTLS_NIST_KW_C is not set -# end of Symmetric Ciphers - -# CONFIG_MBEDTLS_RIPEMD160_C is not set - -# -# Certificates -# -CONFIG_MBEDTLS_PEM_PARSE_C=y -CONFIG_MBEDTLS_PEM_WRITE_C=y -CONFIG_MBEDTLS_X509_CRL_PARSE_C=y -CONFIG_MBEDTLS_X509_CSR_PARSE_C=y -# end of Certificates - -CONFIG_MBEDTLS_ECP_C=y -# CONFIG_MBEDTLS_DHM_C is not set -CONFIG_MBEDTLS_ECDH_C=y -CONFIG_MBEDTLS_ECDSA_C=y -# CONFIG_MBEDTLS_ECJPAKE_C is not set -CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y -CONFIG_MBEDTLS_ECP_NIST_OPTIM=y -# CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM is not set -# CONFIG_MBEDTLS_POLY1305_C is not set -# CONFIG_MBEDTLS_CHACHA20_C is not set -# CONFIG_MBEDTLS_HKDF_C is not set -# CONFIG_MBEDTLS_THREADING_C is not set -CONFIG_MBEDTLS_ERROR_STRINGS=y -# end of mbedTLS - -# -# ESP-MQTT Configurations -# -CONFIG_MQTT_PROTOCOL_311=y -# CONFIG_MQTT_PROTOCOL_5 is not set -CONFIG_MQTT_TRANSPORT_SSL=y -CONFIG_MQTT_TRANSPORT_WEBSOCKET=y -CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y -# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set -# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set -# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set -# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set -# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set -# CONFIG_MQTT_CUSTOM_OUTBOX is not set -# end of ESP-MQTT Configurations - -# -# Newlib -# -CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set -CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y -# CONFIG_NEWLIB_NANO_FORMAT is not set -CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y -# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set -# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set -# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set -# end of Newlib - -# -# NVS -# -# CONFIG_NVS_ASSERT_ERROR_CHECK is not set -# end of NVS - -# -# OpenThread -# -# CONFIG_OPENTHREAD_ENABLED is not set - -# -# OpenThread Spinel -# -# CONFIG_OPENTHREAD_SPINEL_ONLY is not set -# end of OpenThread Spinel -# end of OpenThread - -# -# Protocomm -# -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y -# end of Protocomm - -# -# PThreads -# -CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_PTHREAD_STACK_MIN=768 -CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y -# CONFIG_PTHREAD_DEFAULT_CORE_0 is not set -# CONFIG_PTHREAD_DEFAULT_CORE_1 is not set -CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 -CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" -# end of PThreads - -# -# MMU Config -# -CONFIG_MMU_PAGE_SIZE_64KB=y -CONFIG_MMU_PAGE_MODE="64KB" -CONFIG_MMU_PAGE_SIZE=0x10000 -# end of MMU Config - -# -# Main Flash configuration -# - -# -# SPI Flash behavior when brownout -# -CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y -CONFIG_SPI_FLASH_BROWNOUT_RESET=y -# end of SPI Flash behavior when brownout - -# -# Optional and Experimental Features (READ DOCS FIRST) -# - -# -# Features here require specific hardware (READ DOCS FIRST!) -# -# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set -# end of Optional and Experimental Features (READ DOCS FIRST) -# end of Main Flash configuration - -# -# SPI Flash driver -# -# CONFIG_SPI_FLASH_VERIFY_WRITE is not set -# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set -CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y -CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set -# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set -# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set -CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y -CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 -CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 -CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 -# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set -# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set -# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set - -# -# Auto-detect flash chips -# -CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_GD_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_ISSI_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_MXIC_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_WINBOND_SUPPORTED=y -CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y -# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set -# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set -# end of Auto-detect flash chips - -CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y -# end of SPI Flash driver - -# -# SPIFFS Configuration -# -CONFIG_SPIFFS_MAX_PARTITIONS=3 - -# -# SPIFFS Cache Configuration -# -CONFIG_SPIFFS_CACHE=y -CONFIG_SPIFFS_CACHE_WR=y -# CONFIG_SPIFFS_CACHE_STATS is not set -# end of SPIFFS Cache Configuration - -CONFIG_SPIFFS_PAGE_CHECK=y -CONFIG_SPIFFS_GC_MAX_RUNS=10 -# CONFIG_SPIFFS_GC_STATS is not set -CONFIG_SPIFFS_PAGE_SIZE=256 -CONFIG_SPIFFS_OBJ_NAME_LEN=32 -# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set -CONFIG_SPIFFS_USE_MAGIC=y -CONFIG_SPIFFS_USE_MAGIC_LENGTH=y -CONFIG_SPIFFS_META_LENGTH=4 -CONFIG_SPIFFS_USE_MTIME=y - -# -# Debug Configuration -# -# CONFIG_SPIFFS_DBG is not set -# CONFIG_SPIFFS_API_DBG is not set -# CONFIG_SPIFFS_GC_DBG is not set -# CONFIG_SPIFFS_CACHE_DBG is not set -# CONFIG_SPIFFS_CHECK_DBG is not set -# CONFIG_SPIFFS_TEST_VISUALISATION is not set -# end of Debug Configuration -# end of SPIFFS Configuration - -# -# TCP Transport -# - -# -# Websocket -# -CONFIG_WS_TRANSPORT=y -CONFIG_WS_BUFFER_SIZE=1024 -# CONFIG_WS_DYNAMIC_BUFFER is not set -# end of Websocket -# end of TCP Transport - -# -# Ultra Low Power (ULP) Co-processor -# -# CONFIG_ULP_COPROC_ENABLED is not set -# end of Ultra Low Power (ULP) Co-processor - -# -# Unity unit testing library -# -CONFIG_UNITY_ENABLE_FLOAT=y -CONFIG_UNITY_ENABLE_DOUBLE=y -# CONFIG_UNITY_ENABLE_64BIT is not set -# CONFIG_UNITY_ENABLE_COLOR is not set -CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y -# CONFIG_UNITY_ENABLE_FIXTURE is not set -# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set -# end of Unity unit testing library - -# -# Virtual file system -# -CONFIG_VFS_SUPPORT_IO=y -CONFIG_VFS_SUPPORT_DIR=y -CONFIG_VFS_SUPPORT_SELECT=y -CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y -# CONFIG_VFS_SELECT_IN_RAM is not set -CONFIG_VFS_SUPPORT_TERMIOS=y -CONFIG_VFS_MAX_COUNT=8 - -# -# Host File System I/O (Semihosting) -# -CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -# end of Host File System I/O (Semihosting) -# end of Virtual file system - -# -# Wear Levelling -# -# CONFIG_WL_SECTOR_SIZE_512 is not set -CONFIG_WL_SECTOR_SIZE_4096=y -CONFIG_WL_SECTOR_SIZE=4096 -# end of Wear Levelling - -# -# Wi-Fi Provisioning Manager -# -CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 -CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 -# CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION is not set -CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y -# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set -# end of Wi-Fi Provisioning Manager -# end of Component config - -# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set - -# Deprecated options for backward compatibility -# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set -# CONFIG_NO_BLOBS is not set -# CONFIG_ESP32_NO_BLOBS is not set -# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set -# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set -CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y -# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set -CONFIG_LOG_BOOTLOADER_LEVEL=3 -# CONFIG_APP_ROLLBACK_ENABLE is not set -# CONFIG_FLASH_ENCRYPTION_ENABLED is not set -# CONFIG_FLASHMODE_QIO is not set -# CONFIG_FLASHMODE_QOUT is not set -CONFIG_FLASHMODE_DIO=y -# CONFIG_FLASHMODE_DOUT is not set -CONFIG_MONITOR_BAUD=115200 -CONFIG_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y -# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set -# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set -CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y -# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set -CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 -# CONFIG_CXX_EXCEPTIONS is not set -CONFIG_STACK_CHECK_NONE=y -# CONFIG_STACK_CHECK_NORM is not set -# CONFIG_STACK_CHECK_STRONG is not set -# CONFIG_STACK_CHECK_ALL is not set -# CONFIG_WARN_WRITE_STRINGS is not set -# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set -CONFIG_ESP32_APPTRACE_DEST_NONE=y -CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y -CONFIG_ADC2_DISABLE_DAC=y -# CONFIG_MCPWM_ISR_IN_IRAM is not set -# CONFIG_EVENT_LOOP_PROFILING is not set -CONFIG_POST_EVENTS_FROM_ISR=y -CONFIG_POST_EVENTS_FROM_IRAM_ISR=y -# CONFIG_OTA_ALLOW_HTTP is not set -# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set -CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y -CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 -# CONFIG_ESP_SYSTEM_PD_FLASH is not set -CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 -CONFIG_ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY=2000 -CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y -CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y -# CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set -# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set -# CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set -# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set -# CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set -# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set -CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 -# CONFIG_ESP32_XTAL_FREQ_26 is not set -CONFIG_ESP32_XTAL_FREQ_40=y -# CONFIG_ESP32_XTAL_FREQ_AUTO is not set -CONFIG_ESP32_XTAL_FREQ=40 -CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP32_PHY_MAX_TX_POWER=20 -# CONFIG_REDUCE_PHY_TX_POWER is not set -# CONFIG_ESP32_REDUCE_PHY_TX_POWER is not set -# CONFIG_SPIRAM_SUPPORT is not set -# CONFIG_ESP32_SPIRAM_SUPPORT is not set -# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set -CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y -# CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160 -CONFIG_TRACEMEM_RESERVE_DRAM=0x0 -# CONFIG_ESP32_PANIC_PRINT_HALT is not set -CONFIG_ESP32_PANIC_PRINT_REBOOT=y -# CONFIG_ESP32_PANIC_SILENT_REBOOT is not set -# CONFIG_ESP32_PANIC_GDBSTUB is not set -CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 -CONFIG_MAIN_TASK_STACK_SIZE=3584 -CONFIG_CONSOLE_UART_DEFAULT=y -# CONFIG_CONSOLE_UART_CUSTOM is not set -# CONFIG_CONSOLE_UART_NONE is not set -# CONFIG_ESP_CONSOLE_UART_NONE is not set -CONFIG_CONSOLE_UART=y -CONFIG_CONSOLE_UART_NUM=0 -CONFIG_CONSOLE_UART_BAUDRATE=115200 -CONFIG_INT_WDT=y -CONFIG_INT_WDT_TIMEOUT_MS=300 -CONFIG_INT_WDT_CHECK_CPU1=y -CONFIG_TASK_WDT=y -CONFIG_ESP_TASK_WDT=y -# CONFIG_TASK_WDT_PANIC is not set -CONFIG_TASK_WDT_TIMEOUT_S=5 -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y -# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set -CONFIG_ESP32_DEBUG_OCDAWARE=y -CONFIG_BROWNOUT_DET=y -CONFIG_ESP32_BROWNOUT_DET=y -CONFIG_BROWNOUT_DET_LVL_SEL_0=y -CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y -# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set -# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set -CONFIG_BROWNOUT_DET_LVL=0 -CONFIG_ESP32_BROWNOUT_DET_LVL=0 -# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set -CONFIG_IPC_TASK_STACK_SIZE=1024 -CONFIG_TIMER_TASK_STACK_SIZE=3584 -CONFIG_ESP32_WIFI_ENABLED=y -CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 -CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y -CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 -# CONFIG_ESP32_WIFI_CSI_ENABLED is not set -CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP32_WIFI_TX_BA_WIN=6 -CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_RX_BA_WIN=6 -CONFIG_ESP32_WIFI_RX_BA_WIN=6 -CONFIG_ESP32_WIFI_NVS_ENABLED=y -CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y -# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set -CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 -CONFIG_ESP32_WIFI_IRAM_OPT=y -CONFIG_ESP32_WIFI_RX_IRAM_OPT=y -CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y -CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y -CONFIG_WPA_MBEDTLS_CRYPTO=y -CONFIG_WPA_MBEDTLS_TLS_CLIENT=y -# CONFIG_WPA_WAPI_PSK is not set -# CONFIG_WPA_11KV_SUPPORT is not set -# CONFIG_WPA_MBO_SUPPORT is not set -# CONFIG_WPA_DPP_SUPPORT is not set -# CONFIG_WPA_11R_SUPPORT is not set -# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set -# CONFIG_WPA_WPS_STRICT is not set -# CONFIG_WPA_DEBUG_PRINT is not set -# CONFIG_WPA_TESTING_OPTIONS is not set -# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set -# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set -CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y -CONFIG_TIMER_TASK_PRIORITY=1 -CONFIG_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_TIMER_QUEUE_LENGTH=10 -# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set -# CONFIG_HAL_ASSERTION_SILIENT is not set -# CONFIG_L2_TO_L3_COPY is not set -CONFIG_ESP_GRATUITOUS_ARP=y -CONFIG_GARP_TMR_INTERVAL=60 -CONFIG_TCPIP_RECVMBOX_SIZE=32 -CONFIG_TCP_MAXRTX=12 -CONFIG_TCP_SYNMAXRTX=12 -CONFIG_TCP_MSS=1440 -CONFIG_TCP_MSL=60000 -CONFIG_TCP_SND_BUF_DEFAULT=5760 -CONFIG_TCP_WND_DEFAULT=5760 -CONFIG_TCP_RECVMBOX_SIZE=6 -CONFIG_TCP_QUEUE_OOSEQ=y -CONFIG_TCP_OVERSIZE_MSS=y -# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_TCP_OVERSIZE_DISABLE is not set -CONFIG_UDP_RECVMBOX_SIZE=6 -CONFIG_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set -# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set -CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF -# CONFIG_PPP_SUPPORT is not set -CONFIG_ESP32_TIME_SYSCALL_USE_RTC_HRT=y -CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y -# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set -# CONFIG_ESP32_TIME_SYSCALL_USE_HRT is not set -# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set -# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set -CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_ESP32_PTHREAD_STACK_MIN=768 -CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y -# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set -# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set -CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 -CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" -CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set -# CONFIG_ESP32_ULP_COPROC_ENABLED is not set -CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_SUPPORT_TERMIOS=y -CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -# End of deprecated options diff --git a/workspace.code-workspace b/workspace.code-workspace index ce19acf..d5132c0 100644 --- a/workspace.code-workspace +++ b/workspace.code-workspace @@ -10,8 +10,8 @@ "board/esp32-wrover-kit-3.3v.cfg" ], "idf.port": "COM3", - "idf.flashBaudRate": 921600, - "idf.monitorBaudRate": 115200, + "idf.flashBaudRate": "921600", + "idf.monitorBaudRate": "115200", "cmake.sourceDirectory": "${workspaceFolder}" } }