From 33518dca2b268b6d0cb6d52f8c5542671f25bad0 Mon Sep 17 00:00:00 2001 From: Terrence Date: Tue, 29 Oct 2024 00:22:29 +0800 Subject: [PATCH] add config files for known boards --- CMakeLists.txt | 2 +- main/Application.cc | 234 +- main/Application.h | 33 +- main/AudioDevice.cc | 33 +- main/Board.cc | 4 + main/Board.h | 43 + main/BoxAudioDevice.cc | 26 +- main/BuiltinLed.cc | 137 + main/BuiltinLed.h | 52 + main/Button.cc | 15 + main/CMakeLists.txt | 42 +- main/Display.cc | 105 +- main/Display.h | 4 + main/FirmwareUpgrade.cc | 38 +- main/FirmwareUpgrade.h | 5 +- main/Kconfig.projbuild | 217 +- main/Ml307Board.cc | 98 + main/Ml307Board.h | 23 + main/SystemReset.h | 9 +- main/WakeWordDetect.cc | 1 + main/WifiBoard.cc | 95 + main/WifiBoard.h | 18 + .../bread-compact-ml307/CompactMl307Board.cc | 18 + main/boards/bread-compact-ml307/config.h | 45 + .../bread-compact-wifi/CompactWifiBoard.cc | 19 + main/boards/bread-compact-wifi/config.h | 40 + main/boards/esp-box-3/EspBox3Board.cc | 20 + main/boards/esp-box-3/config.h | 32 + main/boards/kevin-box-0/KevinBoxBoard.cc | 48 + main/boards/kevin-box-0/config.h | 35 + main/idf_component.yml | 4 +- main/main.cc | 16 +- partitions.csv | 1 + sdkconfig.box | 2667 ----------------- versions.py | 2 +- 35 files changed, 1000 insertions(+), 3181 deletions(-) create mode 100644 main/Board.cc create mode 100644 main/Board.h create mode 100644 main/BuiltinLed.cc create mode 100644 main/BuiltinLed.h create mode 100644 main/Ml307Board.cc create mode 100644 main/Ml307Board.h create mode 100644 main/WifiBoard.cc create mode 100644 main/WifiBoard.h create mode 100644 main/boards/bread-compact-ml307/CompactMl307Board.cc create mode 100644 main/boards/bread-compact-ml307/config.h create mode 100644 main/boards/bread-compact-wifi/CompactWifiBoard.cc create mode 100644 main/boards/bread-compact-wifi/config.h create mode 100644 main/boards/esp-box-3/EspBox3Board.cc create mode 100644 main/boards/esp-box-3/config.h create mode 100644 main/boards/kevin-box-0/KevinBoxBoard.cc create mode 100644 main/boards/kevin-box-0/config.h delete mode 100644 sdkconfig.box diff --git a/CMakeLists.txt b/CMakeLists.txt index e4321830..a8e1247a 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ # CMakeLists in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.16) -set(PROJECT_VER "0.4.1") +set(PROJECT_VER "0.5.0") include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(xiaozhi) diff --git a/main/Application.cc b/main/Application.cc index b20494cc..19f03ae9 100644 --- a/main/Application.cc +++ b/main/Application.cc @@ -1,6 +1,4 @@ #include -#include -#include #include #include #include @@ -10,6 +8,7 @@ #include #include #include +#include #include "Application.h" @@ -17,29 +16,20 @@ Application::Application() - : boot_button_((gpio_num_t)CONFIG_BOOT_BUTTON_GPIO), - volume_up_button_((gpio_num_t)CONFIG_VOLUME_UP_BUTTON_GPIO), - volume_down_button_((gpio_num_t)CONFIG_VOLUME_DOWN_BUTTON_GPIO), -#ifdef CONFIG_USE_DISPLAY - display_(CONFIG_DISPLAY_SDA_PIN, CONFIG_DISPLAY_SCL_PIN), -#endif -#ifdef CONFIG_USE_ML307 - ml307_at_modem_(CONFIG_ML307_TX_PIN, CONFIG_ML307_RX_PIN, 4096), - http_(ml307_at_modem_), -#else - http_(), -#endif - firmware_upgrade_(http_) + : boot_button_((gpio_num_t)BOOT_BUTTON_GPIO), + volume_up_button_((gpio_num_t)VOLUME_UP_BUTTON_GPIO), + volume_down_button_((gpio_num_t)VOLUME_DOWN_BUTTON_GPIO), + display_(DISPLAY_SDA_PIN, DISPLAY_SCL_PIN) { event_group_ = xEventGroupCreate(); opus_encoder_.Configure(16000, 1); opus_decoder_ = opus_decoder_create(opus_decode_sample_rate_, 1, NULL); - if (opus_decode_sample_rate_ != CONFIG_AUDIO_OUTPUT_SAMPLE_RATE) { - output_resampler_.Configure(CONFIG_AUDIO_OUTPUT_SAMPLE_RATE, opus_decode_sample_rate_); + if (opus_decode_sample_rate_ != AUDIO_OUTPUT_SAMPLE_RATE) { + output_resampler_.Configure(AUDIO_OUTPUT_SAMPLE_RATE, opus_decode_sample_rate_); } - if (16000 != CONFIG_AUDIO_INPUT_SAMPLE_RATE) { - input_resampler_.Configure(CONFIG_AUDIO_INPUT_SAMPLE_RATE, 16000); + if (16000 != AUDIO_INPUT_SAMPLE_RATE) { + input_resampler_.Configure(AUDIO_INPUT_SAMPLE_RATE, 16000); } firmware_upgrade_.SetCheckVersionUrl(CONFIG_OTA_VERSION_URL); @@ -47,18 +37,29 @@ Application::Application() } Application::~Application() { + if (update_display_timer_ != nullptr) { + esp_timer_stop(update_display_timer_); + esp_timer_delete(update_display_timer_); + } + if (ws_client_ != nullptr) { + delete ws_client_; + } if (opus_decoder_ != nullptr) { opus_decoder_destroy(opus_decoder_); } if (audio_encode_task_stack_ != nullptr) { free(audio_encode_task_stack_); } + if (audio_device_ != nullptr) { + delete audio_device_; + } vEventGroupDelete(event_group_); } void Application::CheckNewVersion() { // Check if there is a new firmware version available + firmware_upgrade_.SetBoardJson(Board::GetInstance().GetJson()); firmware_upgrade_.CheckVersion(); if (firmware_upgrade_.HasNewVersion()) { // Wait for the chat state to be idle @@ -67,11 +68,9 @@ void Application::CheckNewVersion() { } SetChatState(kChatStateUpgrading); firmware_upgrade_.StartUpgrade([this](int progress, size_t speed) { -#ifdef CONFIG_USE_DISPLAY char buffer[64]; snprintf(buffer, sizeof(buffer), "Upgrading...\n %d%% %zuKB/s", progress, speed / 1024); display_.SetText(buffer); -#endif }); // If upgrade success, the device will reboot and never reach here ESP_LOGI(TAG, "Firmware upgrade failed..."); @@ -81,138 +80,19 @@ void Application::CheckNewVersion() { } } -#ifdef CONFIG_USE_DISPLAY - -#ifdef CONFIG_USE_ML307 -static std::string csq_to_string(int csq) { - if (csq == -1) { - return "No network"; - } else if (csq >= 0 && csq <= 9) { - return "Very bad"; - } else if (csq >= 10 && csq <= 14) { - return "Bad"; - } else if (csq >= 15 && csq <= 19) { - return "Fair"; - } else if (csq >= 20 && csq <= 24) { - return "Good"; - } else if (csq >= 25 && csq <= 31) { - return "Very good"; - } - return "Invalid"; -} -#else -static std::string rssi_to_string(int rssi) { - if (rssi >= -55) { - return "Very good"; - } else if (rssi >= -65) { - return "Good"; - } else if (rssi >= -75) { - return "Fair"; - } else if (rssi >= -85) { - return "Poor"; - } else { - return "No network"; - } -} -#endif - -void Application::UpdateDisplay() { - while (true) { - if (chat_state_ == kChatStateIdle) { -#ifdef CONFIG_USE_ML307 - std::string network_name = ml307_at_modem_.GetCarrierName(); - int signal_quality = ml307_at_modem_.GetCsq(); - if (signal_quality == -1) { - network_name = "No network"; - } else { - ESP_LOGI(TAG, "%s CSQ: %d", network_name.c_str(), signal_quality); - display_.SetText(network_name + "\n" + csq_to_string(signal_quality) + " (" + std::to_string(signal_quality) + ")"); - } -#else - auto& wifi_station = WifiStation::GetInstance(); - int8_t rssi = wifi_station.GetRssi(); - display_.SetText(wifi_station.GetSsid() + "\n" + rssi_to_string(rssi) + " (" + std::to_string(rssi) + ")"); -#endif - } - vTaskDelay(pdMS_TO_TICKS(10 * 1000)); - } -} -#endif - void Application::Start() { auto& builtin_led = BuiltinLed::GetInstance(); -#ifdef CONFIG_USE_ML307 builtin_led.SetBlue(); builtin_led.StartContinuousBlink(100); - ml307_at_modem_.SetDebug(false); - ml307_at_modem_.SetBaudRate(921600); - // Print the ML307 modem information - std::string module_name = ml307_at_modem_.GetModuleName(); - ESP_LOGI(TAG, "ML307 Module: %s", module_name.c_str()); -#ifdef CONFIG_USE_DISPLAY - display_.SetText(std::string("Wait for network\n") + module_name); -#endif - ml307_at_modem_.ResetConnections(); - ml307_at_modem_.WaitForNetworkReady(); - std::string imei = ml307_at_modem_.GetImei(); - std::string iccid = ml307_at_modem_.GetIccid(); - ESP_LOGI(TAG, "ML307 IMEI: %s", imei.c_str()); - ESP_LOGI(TAG, "ML307 ICCID: %s", iccid.c_str()); + auto& board = Board::GetInstance(); + board.Initialize(); - // If low power, the material ready event will be triggered by the modem because of a reset - ml307_at_modem_.OnMaterialReady([this]() { - ESP_LOGI(TAG, "ML307 material ready"); - Schedule([this]() { - SetChatState(kChatStateIdle); - }); - }); - - // Set the board type for OTA - std::string carrier_name = ml307_at_modem_.GetCarrierName(); - int csq = ml307_at_modem_.GetCsq(); - std::string board_json = std::string("{\"type\":\"compact.4g\","); - board_json += "\"revision\":\"" + module_name + "\","; - board_json += "\"carrier\":\"" + carrier_name + "\","; - board_json += "\"csq\":\"" + std::to_string(csq) + "\","; - board_json += "\"imei\":\"" + imei + "\","; - board_json += "\"iccid\":\"" + iccid + "\"}"; - firmware_upgrade_.SetBoardJson(board_json); -#else - // Try to connect to WiFi, if failed, launch the WiFi configuration AP - auto& wifi_station = WifiStation::GetInstance(); -#ifdef CONFIG_USE_DISPLAY - display_.SetText(std::string("Connect to WiFi\n") + wifi_station.GetSsid()); -#endif - builtin_led.SetBlue(); - builtin_led.StartContinuousBlink(100); - wifi_station.Start(); - if (!wifi_station.IsConnected()) { - builtin_led.SetBlue(); - builtin_led.Blink(1000, 500); - auto& wifi_ap = WifiConfigurationAp::GetInstance(); - wifi_ap.SetSsidPrefix("Xiaozhi"); -#ifdef CONFIG_USE_DISPLAY - display_.SetText(wifi_ap.GetSsid() + "\n" + wifi_ap.GetWebServerUrl()); -#endif - wifi_ap.Start(); - return; - } - - // Set the board type for OTA - std::string board_json = std::string("{\"type\":\"compact.wifi\","); - board_json += "\"ssid\":\"" + wifi_station.GetSsid() + "\","; - board_json += "\"rssi\":" + std::to_string(wifi_station.GetRssi()) + ","; - board_json += "\"channel\":" + std::to_string(wifi_station.GetChannel()) + ","; - board_json += "\"ip\":\"" + wifi_station.GetIpAddress() + "\","; - board_json += "\"mac\":\"" + SystemInfo::GetMacAddress() + "\"}"; - firmware_upgrade_.SetBoardJson(board_json); -#endif - - audio_device_.Initialize(); - audio_device_.OnInputData([this](std::vector&& data) { - if (16000 != CONFIG_AUDIO_INPUT_SAMPLE_RATE) { - if (audio_device_.input_channels() == 2) { + audio_device_ = board.CreateAudioDevice(); + audio_device_->Initialize(); + audio_device_->OnInputData([this](std::vector&& data) { + if (16000 != AUDIO_INPUT_SAMPLE_RATE) { + if (audio_device_->input_channels() == 2) { auto left_channel = std::vector(data.size() / 2); auto right_channel = std::vector(data.size() / 2); for (size_t i = 0, j = 0; i < left_channel.size(); ++i, j += 2) { @@ -268,7 +148,7 @@ void Application::Start() { }, "play_audio", 4096 * 4, this, 4, NULL); #ifdef CONFIG_USE_AFE_SR - wake_word_detect_.Initialize(audio_device_.input_channels(), audio_device_.input_reference()); + wake_word_detect_.Initialize(audio_device_->input_channels(), audio_device_->input_reference()); wake_word_detect_.OnVadStateChange([this](bool speaking) { Schedule([this, speaking]() { auto& builtin_led = BuiltinLed::GetInstance(); @@ -317,7 +197,7 @@ void Application::Start() { }); wake_word_detect_.StartDetection(); - audio_processor_.Initialize(audio_device_.input_channels(), audio_device_.input_reference()); + audio_processor_.Initialize(audio_device_->input_channels(), audio_device_->input_reference()); audio_processor_.OnOutput([this](std::vector&& data) { Schedule([this, data = std::move(data)]() { if (chat_state_ == kChatStateListening) { @@ -361,45 +241,37 @@ void Application::Start() { volume_up_button_.OnClick([this]() { Schedule([this]() { - auto volume = audio_device_.output_volume() + 10; + auto volume = audio_device_->output_volume() + 10; if (volume > 100) { volume = 100; } - audio_device_.SetOutputVolume(volume); -#ifdef CONFIG_USE_DISPLAY + audio_device_->SetOutputVolume(volume); display_.ShowNotification("Volume\n" + std::to_string(volume)); -#endif }); }); volume_up_button_.OnLongPress([this]() { Schedule([this]() { - audio_device_.SetOutputVolume(100); -#ifdef CONFIG_USE_DISPLAY + audio_device_->SetOutputVolume(100); display_.ShowNotification("Volume\n100"); -#endif }); }); volume_down_button_.OnClick([this]() { Schedule([this]() { - auto volume = audio_device_.output_volume() - 10; + auto volume = audio_device_->output_volume() - 10; if (volume < 0) { volume = 0; } - audio_device_.SetOutputVolume(volume); -#ifdef CONFIG_USE_DISPLAY + audio_device_->SetOutputVolume(volume); display_.ShowNotification("Volume\n" + std::to_string(volume)); -#endif }); }); volume_down_button_.OnLongPress([this]() { Schedule([this]() { - audio_device_.SetOutputVolume(0); -#ifdef CONFIG_USE_DISPLAY + audio_device_->SetOutputVolume(0); display_.ShowNotification("Volume\n0"); -#endif }); }); @@ -416,14 +288,8 @@ void Application::Start() { vTaskDelete(NULL); }, "check_new_version", 4096 * 2, this, 1, NULL); -#ifdef CONFIG_USE_DISPLAY - // Launch a task to update the display - xTaskCreate([](void* arg) { - Application* app = (Application*)arg; - app->UpdateDisplay(); - vTaskDelete(NULL); - }, "update_display", 4096, this, 1, NULL); -#endif + chat_state_ = kChatStateIdle; + display_.UpdateDisplay(); } void Application::Schedule(std::function callback) { @@ -450,6 +316,7 @@ void Application::MainLoop() { void Application::SetChatState(ChatState state) { const char* state_str[] = { + "unknown", "idle", "connecting", "listening", @@ -457,13 +324,14 @@ void Application::SetChatState(ChatState state) { "wake_word_detected", "testing", "upgrading", - "unknown" + "invalid_state" }; chat_state_ = state; ESP_LOGI(TAG, "STATE: %s", state_str[chat_state_]); auto& builtin_led = BuiltinLed::GetInstance(); switch (chat_state_) { + case kChatStateUnknown: case kChatStateIdle: builtin_led.TurnOff(); break; @@ -557,7 +425,7 @@ void Application::AudioEncodeTask() { continue; } - if (opus_decode_sample_rate_ != CONFIG_AUDIO_OUTPUT_SAMPLE_RATE) { + if (opus_decode_sample_rate_ != AUDIO_OUTPUT_SAMPLE_RATE) { int target_size = output_resampler_.GetOutputSamples(frame_size); std::vector resampled(target_size); output_resampler_.Process(packet->pcm.data(), frame_size, resampled.data()); @@ -580,7 +448,7 @@ void Application::HandleAudioPacket(AudioPacket* packet) { } // This will block until the audio device has finished playing the audio - audio_device_.OutputData(packet->pcm); + audio_device_->OutputData(packet->pcm); if (break_speaking_) { skip_to_end_ = true; @@ -589,7 +457,7 @@ void Application::HandleAudioPacket(AudioPacket* packet) { int frame_size = opus_decode_sample_rate_ / 1000 * opus_duration_ms_; std::vector silence(frame_size); bzero(silence.data(), silence.size() * sizeof(int16_t)); - audio_device_.OutputData(silence); + audio_device_->OutputData(silence); } break; } @@ -643,9 +511,9 @@ void Application::SetDecodeSampleRate(int sample_rate) { opus_decoder_destroy(opus_decoder_); opus_decode_sample_rate_ = sample_rate; opus_decoder_ = opus_decoder_create(opus_decode_sample_rate_, 1, NULL); - if (opus_decode_sample_rate_ != CONFIG_AUDIO_OUTPUT_SAMPLE_RATE) { - ESP_LOGI(TAG, "Resampling audio from %d to %d", opus_decode_sample_rate_, CONFIG_AUDIO_OUTPUT_SAMPLE_RATE); - output_resampler_.Configure(opus_decode_sample_rate_, CONFIG_AUDIO_OUTPUT_SAMPLE_RATE); + if (opus_decode_sample_rate_ != AUDIO_OUTPUT_SAMPLE_RATE) { + ESP_LOGI(TAG, "Resampling audio from %d to %d", opus_decode_sample_rate_, AUDIO_OUTPUT_SAMPLE_RATE); + output_resampler_.Configure(opus_decode_sample_rate_, AUDIO_OUTPUT_SAMPLE_RATE); } } @@ -657,15 +525,7 @@ void Application::StartWebSocketClient() { std::string url = CONFIG_WEBSOCKET_URL; std::string token = "Bearer " + std::string(CONFIG_WEBSOCKET_ACCESS_TOKEN); -#ifdef CONFIG_USE_ML307 - ws_client_ = new WebSocket(new Ml307SslTransport(ml307_at_modem_, 0)); -#else - if (url.find("wss://") == 0) { - ws_client_ = new WebSocket(new TlsTransport()); - } else { - ws_client_ = new WebSocket(new TcpTransport()); - } -#endif + ws_client_ = Board::GetInstance().CreateWebSocket(); ws_client_->SetHeader("Authorization", token.c_str()); ws_client_->SetHeader("Protocol-Version", std::to_string(PROTOCOL_VERSION).c_str()); ws_client_->SetHeader("Device-Id", SystemInfo::GetMacAddress().c_str()); diff --git a/main/Application.h b/main/Application.h index 78cbe5f7..b2e1bc2b 100644 --- a/main/Application.h +++ b/main/Application.h @@ -4,9 +4,6 @@ #include #include #include -#include -#include -#include #include #include @@ -16,8 +13,9 @@ #include #include -#include "BoxAudioDevice.h" +#include "AudioDevice.h" #include "Display.h" +#include "Board.h" #include "FirmwareUpgrade.h" #ifdef CONFIG_USE_AFE_SR @@ -59,6 +57,7 @@ struct AudioPacket { enum ChatState { + kChatStateUnknown, kChatStateIdle, kChatStateConnecting, kChatStateListening, @@ -75,6 +74,10 @@ public: } void Start(); + ChatState GetChatState() const { return chat_state_; } + Display& GetDisplay() { return display_; } + void Schedule(std::function callback); + void SetChatState(ChatState state); // 删除拷贝构造函数和赋值运算符 Application(const Application&) = delete; @@ -87,23 +90,11 @@ private: Button boot_button_; Button volume_up_button_; Button volume_down_button_; -#ifdef CONFIG_AUDIO_CODEC_ES8311_ES7210 - BoxAudioDevice audio_device_; -#else - AudioDevice audio_device_; -#endif -#ifdef CONFIG_USE_DISPLAY + AudioDevice* audio_device_ = nullptr; Display display_; -#endif #ifdef CONFIG_USE_AFE_SR WakeWordDetect wake_word_detect_; AudioProcessor audio_processor_; -#endif -#ifdef CONFIG_USE_ML307 - Ml307AtModem ml307_at_modem_; - Ml307Http http_; -#else - EspHttp http_; #endif FirmwareUpgrade firmware_upgrade_; std::mutex mutex_; @@ -111,9 +102,10 @@ private: std::list> main_tasks_; WebSocket* ws_client_ = nullptr; EventGroupHandle_t event_group_; - volatile ChatState chat_state_ = kChatStateIdle; + volatile ChatState chat_state_ = kChatStateUnknown; volatile bool break_speaking_ = false; bool skip_to_end_ = false; + esp_timer_handle_t update_display_timer_ = nullptr; // Audio encode / decode TaskHandle_t audio_encode_task_ = nullptr; @@ -127,7 +119,7 @@ private: OpusDecoder* opus_decoder_ = nullptr; int opus_duration_ms_ = 60; - int opus_decode_sample_rate_ = CONFIG_AUDIO_OUTPUT_SAMPLE_RATE; + int opus_decode_sample_rate_ = AUDIO_OUTPUT_SAMPLE_RATE; OpusResampler input_resampler_; OpusResampler output_resampler_; @@ -136,13 +128,10 @@ private: StackType_t* check_new_version_task_stack_ = nullptr; void MainLoop(); - void Schedule(std::function callback); BinaryProtocol* AllocateBinaryProtocol(const uint8_t* payload, size_t payload_size); void SetDecodeSampleRate(int sample_rate); - void SetChatState(ChatState state); void StartWebSocketClient(); void CheckNewVersion(); - void UpdateDisplay(); void AudioEncodeTask(); void AudioPlayTask(); diff --git a/main/AudioDevice.cc b/main/AudioDevice.cc index 2029b556..417f0863 100644 --- a/main/AudioDevice.cc +++ b/main/AudioDevice.cc @@ -1,12 +1,15 @@ #include "AudioDevice.h" +#include "Board.h" + #include #include #include + #define TAG "AudioDevice" AudioDevice::AudioDevice() - : input_sample_rate_(CONFIG_AUDIO_INPUT_SAMPLE_RATE), - output_sample_rate_(CONFIG_AUDIO_OUTPUT_SAMPLE_RATE) { + : input_sample_rate_(AUDIO_INPUT_SAMPLE_RATE), + output_sample_rate_(AUDIO_OUTPUT_SAMPLE_RATE) { } AudioDevice::~AudioDevice() { @@ -22,7 +25,7 @@ AudioDevice::~AudioDevice() { } void AudioDevice::Initialize() { -#ifdef CONFIG_AUDIO_I2S_METHOD_SIMPLEX +#ifdef AUDIO_I2S_METHOD_SIMPLEX CreateSimplexChannels(); #else CreateDuplexChannels(); @@ -30,7 +33,7 @@ void AudioDevice::Initialize() { } void AudioDevice::CreateDuplexChannels() { -#ifdef CONFIG_AUDIO_I2S_METHOD_DUPLEX +#ifndef AUDIO_I2S_METHOD_SIMPLEX duplex_ = true; i2s_chan_config_t chan_cfg = { @@ -65,10 +68,10 @@ void AudioDevice::CreateDuplexChannels() { }, .gpio_cfg = { .mclk = I2S_GPIO_UNUSED, - .bclk = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_BCLK, - .ws = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_LRCK, - .dout = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_DOUT, - .din = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_DIN, + .bclk = (gpio_num_t)AUDIO_I2S_GPIO_BCLK, + .ws = (gpio_num_t)AUDIO_I2S_GPIO_LRCK, + .dout = (gpio_num_t)AUDIO_I2S_GPIO_DOUT, + .din = (gpio_num_t)AUDIO_I2S_GPIO_DIN, .invert_flags = { .mclk_inv = false, .bclk_inv = false, @@ -85,7 +88,7 @@ void AudioDevice::CreateDuplexChannels() { } void AudioDevice::CreateSimplexChannels() { -#ifdef CONFIG_AUDIO_I2S_METHOD_SIMPLEX +#ifdef AUDIO_I2S_METHOD_SIMPLEX // Create a new channel for speaker i2s_chan_config_t chan_cfg = { .id = I2S_NUM_0, @@ -119,9 +122,9 @@ void AudioDevice::CreateSimplexChannels() { }, .gpio_cfg = { .mclk = I2S_GPIO_UNUSED, - .bclk = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_SPK_GPIO_BCLK, - .ws = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_SPK_GPIO_LRCK, - .dout = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_SPK_GPIO_DOUT, + .bclk = (gpio_num_t)AUDIO_I2S_SPK_GPIO_BCLK, + .ws = (gpio_num_t)AUDIO_I2S_SPK_GPIO_LRCK, + .dout = (gpio_num_t)AUDIO_I2S_SPK_GPIO_DOUT, .din = I2S_GPIO_UNUSED, .invert_flags = { .mclk_inv = false, @@ -136,10 +139,10 @@ void AudioDevice::CreateSimplexChannels() { chan_cfg.id = I2S_NUM_1; ESP_ERROR_CHECK(i2s_new_channel(&chan_cfg, nullptr, &rx_handle_)); std_cfg.clk_cfg.sample_rate_hz = (uint32_t)input_sample_rate_; - std_cfg.gpio_cfg.bclk = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_MIC_GPIO_SCK; - std_cfg.gpio_cfg.ws = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_MIC_GPIO_WS; + std_cfg.gpio_cfg.bclk = (gpio_num_t)AUDIO_I2S_MIC_GPIO_SCK; + std_cfg.gpio_cfg.ws = (gpio_num_t)AUDIO_I2S_MIC_GPIO_WS; std_cfg.gpio_cfg.dout = I2S_GPIO_UNUSED; - std_cfg.gpio_cfg.din = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_MIC_GPIO_DIN; + std_cfg.gpio_cfg.din = (gpio_num_t)AUDIO_I2S_MIC_GPIO_DIN; ESP_ERROR_CHECK(i2s_channel_init_std_mode(rx_handle_, &std_cfg)); ESP_ERROR_CHECK(i2s_channel_enable(tx_handle_)); diff --git a/main/Board.cc b/main/Board.cc new file mode 100644 index 00000000..269f9d3c --- /dev/null +++ b/main/Board.cc @@ -0,0 +1,4 @@ +#include "Board.h" +#include + +// static const char *TAG = "Board"; diff --git a/main/Board.h b/main/Board.h new file mode 100644 index 00000000..5e958cab --- /dev/null +++ b/main/Board.h @@ -0,0 +1,43 @@ +#ifndef BOARD_H +#define BOARD_H + +#include "config.h" +#include +#include +#include +#include + +void* create_board(); + +class Board { +public: + static Board& GetInstance() { + static Board* instance = nullptr; + if (nullptr == instance) { + instance = static_cast(create_board()); + } + return *instance; + } + + virtual void Initialize() = 0; + virtual ~Board() = default; + virtual AudioDevice* CreateAudioDevice() = 0; + virtual Http* CreateHttp() = 0; + virtual WebSocket* CreateWebSocket() = 0; + virtual bool GetNetworkState(std::string& network_name, int& signal_quality, std::string& signal_quality_text) = 0; + virtual std::string GetJson() = 0; + +protected: + Board() = default; + +private: + Board(const Board&) = delete; // 禁用拷贝构造函数 + Board& operator=(const Board&) = delete; // 禁用赋值操作 +}; + +#define DECLARE_BOARD(BOARD_CLASS_NAME) \ +void* create_board() { \ + return new BOARD_CLASS_NAME(); \ +} + +#endif // BOARD_H diff --git a/main/BoxAudioDevice.cc b/main/BoxAudioDevice.cc index a2b7135f..1a9af202 100644 --- a/main/BoxAudioDevice.cc +++ b/main/BoxAudioDevice.cc @@ -1,4 +1,6 @@ #include "BoxAudioDevice.h" +#include "Board.h" + #include #include @@ -25,14 +27,14 @@ BoxAudioDevice::~BoxAudioDevice() { void BoxAudioDevice::Initialize() { duplex_ = true; // 是否双工 - input_reference_ = CONFIG_AUDIO_CODEC_INPUT_REFERENCE; // 是否使用参考输入,实现回声消除 + input_reference_ = AUDIO_INPUT_REFERENCE; // 是否使用参考输入,实现回声消除 input_channels_ = input_reference_ ? 2 : 1; // 输入通道数 // Initialize I2C peripheral i2c_master_bus_config_t i2c_bus_cfg = { .i2c_port = I2C_NUM_0, - .sda_io_num = (gpio_num_t)CONFIG_AUDIO_CODEC_I2C_SDA_PIN, - .scl_io_num = (gpio_num_t)CONFIG_AUDIO_CODEC_I2C_SCL_PIN, + .sda_io_num = (gpio_num_t)AUDIO_CODEC_I2C_SDA_PIN, + .scl_io_num = (gpio_num_t)AUDIO_CODEC_I2C_SCL_PIN, .clk_source = I2C_CLK_SRC_DEFAULT, .glitch_ignore_cnt = 7, .intr_priority = 0, @@ -70,7 +72,7 @@ void BoxAudioDevice::Initialize() { es8311_cfg.ctrl_if = out_ctrl_if_; es8311_cfg.gpio_if = gpio_if_; es8311_cfg.codec_mode = ESP_CODEC_DEV_WORK_MODE_DAC; - es8311_cfg.pa_pin = CONFIG_AUDIO_CODEC_PA_PIN; + es8311_cfg.pa_pin = AUDIO_CODEC_PA_PIN; es8311_cfg.use_mclk = true; es8311_cfg.hw_gain.pa_voltage = 5.0; es8311_cfg.hw_gain.codec_dac_voltage = 3.3; @@ -160,10 +162,10 @@ void BoxAudioDevice::CreateDuplexChannels() { .bit_order_lsb = false }, .gpio_cfg = { - .mclk = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_MCLK, - .bclk = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_BCLK, - .ws = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_LRCK, - .dout = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_DOUT, + .mclk = (gpio_num_t)AUDIO_I2S_GPIO_MCLK, + .bclk = (gpio_num_t)AUDIO_I2S_GPIO_BCLK, + .ws = (gpio_num_t)AUDIO_I2S_GPIO_LRCK, + .dout = (gpio_num_t)AUDIO_I2S_GPIO_DOUT, .din = I2S_GPIO_UNUSED, .invert_flags = { .mclk_inv = false, @@ -196,11 +198,11 @@ void BoxAudioDevice::CreateDuplexChannels() { .total_slot = I2S_TDM_AUTO_SLOT_NUM }, .gpio_cfg = { - .mclk = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_MCLK, - .bclk = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_BCLK, - .ws = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_LRCK, + .mclk = (gpio_num_t)AUDIO_I2S_GPIO_MCLK, + .bclk = (gpio_num_t)AUDIO_I2S_GPIO_BCLK, + .ws = (gpio_num_t)AUDIO_I2S_GPIO_LRCK, .dout = I2S_GPIO_UNUSED, - .din = (gpio_num_t)CONFIG_AUDIO_DEVICE_I2S_GPIO_DIN, + .din = (gpio_num_t)AUDIO_I2S_GPIO_DIN, .invert_flags = { .mclk_inv = false, .bclk_inv = false, diff --git a/main/BuiltinLed.cc b/main/BuiltinLed.cc new file mode 100644 index 00000000..2ef7b945 --- /dev/null +++ b/main/BuiltinLed.cc @@ -0,0 +1,137 @@ +#include "BuiltinLed.h" +#include "Board.h" +#include +#include + +#define TAG "builtin_led" + +BuiltinLed::BuiltinLed() { + mutex_ = xSemaphoreCreateMutex(); + blink_event_group_ = xEventGroupCreate(); + xEventGroupSetBits(blink_event_group_, BLINK_TASK_STOPPED_BIT); + + if (BUILTIN_LED_GPIO == GPIO_NUM_NC) { + ESP_LOGI(TAG, "Builtin LED not connected"); + return; + } + Initialize(); + SetGrey(); +} + +BuiltinLed::~BuiltinLed() { + StopBlinkInternal(); + if (led_strip_ != nullptr) { + led_strip_del(led_strip_); + } + if (mutex_ != nullptr) { + vSemaphoreDelete(mutex_); + } + if (blink_event_group_ != nullptr) { + vEventGroupDelete(blink_event_group_); + } +} + +BuiltinLed& BuiltinLed::GetInstance() { + static BuiltinLed instance; + return instance; +} + +void BuiltinLed::Initialize() { + led_strip_config_t strip_config = {}; + strip_config.strip_gpio_num = BUILTIN_LED_GPIO; + strip_config.max_leds = 1; + strip_config.led_pixel_format = LED_PIXEL_FORMAT_GRB; + strip_config.led_model = LED_MODEL_WS2812; + + led_strip_rmt_config_t rmt_config = {}; + rmt_config.resolution_hz = 10 * 1000 * 1000; // 10MHz + + ESP_ERROR_CHECK(led_strip_new_rmt_device(&strip_config, &rmt_config, &led_strip_)); + led_strip_clear(led_strip_); +} + +void BuiltinLed::SetColor(uint8_t r, uint8_t g, uint8_t b) { + r_ = r; + g_ = g; + b_ = b; +} + +void BuiltinLed::TurnOn() { + if (led_strip_ == nullptr) { + return; + } + StopBlinkInternal(); + xSemaphoreTake(mutex_, portMAX_DELAY); + led_strip_set_pixel(led_strip_, 0, r_, g_, b_); + led_strip_refresh(led_strip_); + xSemaphoreGive(mutex_); +} + +void BuiltinLed::TurnOff() { + if (led_strip_ == nullptr) { + return; + } + StopBlinkInternal(); + xSemaphoreTake(mutex_, portMAX_DELAY); + led_strip_clear(led_strip_); + xSemaphoreGive(mutex_); +} + +void BuiltinLed::BlinkOnce() { + Blink(1, 100); +} + +void BuiltinLed::Blink(int times, int interval_ms) { + StartBlinkTask(times, interval_ms); +} + +void BuiltinLed::StartContinuousBlink(int interval_ms) { + StartBlinkTask(BLINK_INFINITE, interval_ms); +} + +void BuiltinLed::StartBlinkTask(int times, int interval_ms) { + if (led_strip_ == nullptr) { + return; + } + StopBlinkInternal(); + xSemaphoreTake(mutex_, portMAX_DELAY); + + blink_times_ = times; + blink_interval_ms_ = interval_ms; + should_blink_ = true; + + xEventGroupClearBits(blink_event_group_, BLINK_TASK_STOPPED_BIT); + xEventGroupSetBits(blink_event_group_, BLINK_TASK_RUNNING_BIT); + + xTaskCreate([](void* obj) { + auto this_ = static_cast(obj); + int count = 0; + while (this_->should_blink_ && (this_->blink_times_ == BLINK_INFINITE || count < this_->blink_times_)) { + xSemaphoreTake(this_->mutex_, portMAX_DELAY); + led_strip_set_pixel(this_->led_strip_, 0, this_->r_, this_->g_, this_->b_); + led_strip_refresh(this_->led_strip_); + xSemaphoreGive(this_->mutex_); + + vTaskDelay(this_->blink_interval_ms_ / portTICK_PERIOD_MS); + if (!this_->should_blink_) break; + + xSemaphoreTake(this_->mutex_, portMAX_DELAY); + led_strip_clear(this_->led_strip_); + xSemaphoreGive(this_->mutex_); + + vTaskDelay(this_->blink_interval_ms_ / portTICK_PERIOD_MS); + if (this_->blink_times_ != BLINK_INFINITE) count++; + } + this_->blink_task_ = nullptr; + xEventGroupClearBits(this_->blink_event_group_, BLINK_TASK_RUNNING_BIT); + xEventGroupSetBits(this_->blink_event_group_, BLINK_TASK_STOPPED_BIT); + vTaskDelete(NULL); + }, "blink", 2048, this, tskIDLE_PRIORITY, &blink_task_); + + xSemaphoreGive(mutex_); +} + +void BuiltinLed::StopBlinkInternal() { + should_blink_ = false; + xEventGroupWaitBits(blink_event_group_, BLINK_TASK_STOPPED_BIT, pdFALSE, pdTRUE, portMAX_DELAY); +} diff --git a/main/BuiltinLed.h b/main/BuiltinLed.h new file mode 100644 index 00000000..a22daa0e --- /dev/null +++ b/main/BuiltinLed.h @@ -0,0 +1,52 @@ +#ifndef _BUILTIN_LED_H_ +#define _BUILTIN_LED_H_ + +#include +#include +#include +#include +#include + +#define BLINK_INFINITE -1 +#define BLINK_TASK_STOPPED_BIT BIT0 +#define BLINK_TASK_RUNNING_BIT BIT1 + +#define DEFAULT_BRIGHTNESS 16 + +class BuiltinLed { +public: + static BuiltinLed& GetInstance(); + + void BlinkOnce(); + void Blink(int times, int interval_ms); + void StartContinuousBlink(int interval_ms); + void TurnOn(); + void TurnOff(); + void SetColor(uint8_t r, uint8_t g, uint8_t b); + void SetWhite(uint8_t brightness = DEFAULT_BRIGHTNESS) { SetColor(brightness, brightness, brightness); } + void SetGrey(uint8_t brightness = DEFAULT_BRIGHTNESS) { SetColor(brightness, brightness, brightness); } + void SetRed(uint8_t brightness = DEFAULT_BRIGHTNESS) { SetColor(brightness, 0, 0); } + void SetGreen(uint8_t brightness = DEFAULT_BRIGHTNESS) { SetColor(0, brightness, 0); } + void SetBlue(uint8_t brightness = DEFAULT_BRIGHTNESS) { SetColor(0, 0, brightness); } + +private: + BuiltinLed(); + ~BuiltinLed(); + BuiltinLed(const BuiltinLed&) = delete; + BuiltinLed& operator=(const BuiltinLed&) = delete; + + SemaphoreHandle_t mutex_; + EventGroupHandle_t blink_event_group_; + TaskHandle_t blink_task_ = nullptr; + led_strip_handle_t led_strip_ = nullptr; + uint8_t r_ = 0, g_ = 0, b_ = 0; + int blink_times_ = 0; + int blink_interval_ms_ = 0; + std::atomic should_blink_{false}; + + void Initialize(); + void StartBlinkTask(int times, int interval_ms); + void StopBlinkInternal(); +}; + +#endif // _BUILTIN_LED_H_ diff --git a/main/Button.cc b/main/Button.cc index 46ffd847..e18d8bc0 100644 --- a/main/Button.cc +++ b/main/Button.cc @@ -4,6 +4,9 @@ static const char* TAG = "Button"; Button::Button(gpio_num_t gpio_num) : gpio_num_(gpio_num) { + if (gpio_num == GPIO_NUM_NC) { + return; + } button_config_t button_config = { .type = BUTTON_TYPE_GPIO, .long_press_time = 1000, @@ -27,6 +30,9 @@ Button::~Button() { } void Button::OnPress(std::function callback) { + if (button_handle_ == nullptr) { + return; + } on_press_ = callback; iot_button_register_cb(button_handle_, BUTTON_PRESS_DOWN, [](void* handle, void* usr_data) { Button* button = static_cast(usr_data); @@ -37,6 +43,9 @@ void Button::OnPress(std::function callback) { } void Button::OnLongPress(std::function callback) { + if (button_handle_ == nullptr) { + return; + } on_long_press_ = callback; iot_button_register_cb(button_handle_, BUTTON_LONG_PRESS_START, [](void* handle, void* usr_data) { Button* button = static_cast(usr_data); @@ -47,6 +56,9 @@ void Button::OnLongPress(std::function callback) { } void Button::OnClick(std::function callback) { + if (button_handle_ == nullptr) { + return; + } on_click_ = callback; iot_button_register_cb(button_handle_, BUTTON_SINGLE_CLICK, [](void* handle, void* usr_data) { Button* button = static_cast(usr_data); @@ -57,6 +69,9 @@ void Button::OnClick(std::function callback) { } void Button::OnDoubleClick(std::function callback) { + if (button_handle_ == nullptr) { + return; + } on_double_click_ = callback; iot_button_register_cb(button_handle_, BUTTON_DOUBLE_CLICK, [](void* handle, void* usr_data) { Button* button = static_cast(usr_data); diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index f0ed567e..4376166a 100755 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -3,18 +3,50 @@ set(SOURCES "AudioDevice.cc" "SystemInfo.cc" "SystemReset.cc" "Application.cc" - "Display.cc" "Button.cc" + "BuiltinLed.cc" + "Display.cc" + "Board.cc" "main.cc" ) +set(INCLUDE_DIRS ".") + +# 根据 BOARD_TYPE 配置添加对应的板级文件 +if(CONFIG_BOARD_TYPE_BREAD_COMPACT_WIFI) + # add all files from boards/bread-compact-wifi + set(BOARD_TYPE "bread-compact-wifi") + file(GLOB BOARD_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_TYPE}/*.cc) + list(APPEND SOURCES ${BOARD_SOURCES} "WifiBoard.cc") + list(APPEND INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_TYPE}) +elseif(CONFIG_BOARD_TYPE_BREAD_COMPACT_ML307) + # add all files from boards/bread-compact-ml307 + set(BOARD_TYPE "bread-compact-ml307") + file(GLOB BOARD_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_TYPE}/*.cc) + list(APPEND SOURCES ${BOARD_SOURCES} "Ml307Board.cc") + list(APPEND INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_TYPE}) +elseif(CONFIG_BOARD_TYPE_ESP_BOX_3) + # add all files from boards/esp-box-3 + set(BOARD_TYPE "esp-box-3") + file(GLOB BOARD_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_TYPE}/*.cc) + list(APPEND SOURCES ${BOARD_SOURCES} "WifiBoard.cc") + list(APPEND INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_TYPE}) + list(APPEND SOURCES "BoxAudioDevice.cc") +elseif(CONFIG_BOARD_TYPE_KEVIN_BOX_0) + # add all files from boards/kevin-box-0 + set(BOARD_TYPE "kevin-box-0") + file(GLOB BOARD_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_TYPE}/*.cc) + list(APPEND SOURCES ${BOARD_SOURCES} "Ml307Board.cc") + list(APPEND INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_TYPE}) + list(APPEND SOURCES "BoxAudioDevice.cc") +endif() if(CONFIG_USE_AFE_SR) list(APPEND SOURCES "AudioProcessor.cc" "WakeWordDetect.cc") endif() -if(CONFIG_AUDIO_CODEC_ES8311_ES7210) - list(APPEND SOURCES "BoxAudioDevice.cc") -endif() idf_component_register(SRCS ${SOURCES} - INCLUDE_DIRS "." + INCLUDE_DIRS ${INCLUDE_DIRS} ) + +# 使用 target_compile_definitions 来定义 BOARD_TYPE +target_compile_definitions(${COMPONENT_LIB} PRIVATE BOARD_TYPE=\"${BOARD_TYPE}\") \ No newline at end of file diff --git a/main/Display.cc b/main/Display.cc index 8106a61c..dfaba1e0 100644 --- a/main/Display.cc +++ b/main/Display.cc @@ -1,6 +1,3 @@ - -#include "Display.h" - #include #include #include @@ -9,11 +6,17 @@ #include #include +#include "Display.h" +#include "Board.h" +#include "Application.h" + #define TAG "Display" -#ifdef CONFIG_USE_DISPLAY - Display::Display(int sda_pin, int scl_pin) : sda_pin_(sda_pin), scl_pin_(scl_pin) { + if (sda_pin_ == GPIO_NUM_NC || scl_pin_ == GPIO_NUM_NC) { + ESP_LOGI(TAG, "Display not connected"); + return; + } ESP_LOGI(TAG, "Display Pins: %d, %d", sda_pin_, scl_pin_); i2c_master_bus_config_t bus_config = { @@ -55,7 +58,7 @@ Display::Display(int sda_pin, int scl_pin) : sda_pin_(sda_pin), scl_pin_(scl_pin panel_config.bits_per_pixel = 1; esp_lcd_panel_ssd1306_config_t ssd1306_config = { - .height = CONFIG_DISPLAY_HEIGHT + .height = DISPLAY_HEIGHT }; panel_config.vendor_config = &ssd1306_config; @@ -68,50 +71,72 @@ Display::Display(int sda_pin, int scl_pin) : sda_pin_(sda_pin), scl_pin_(scl_pin ESP_LOGE(TAG, "Failed to initialize display"); return; } + ESP_ERROR_CHECK(esp_lcd_panel_mirror(panel_, true, true)); ESP_LOGI(TAG, "Initialize LVGL"); lvgl_port_cfg_t port_cfg = ESP_LVGL_PORT_INIT_CONFIG(); lvgl_port_init(&port_cfg); - const lvgl_port_display_cfg_t display_cfg = { - .io_handle = panel_io_, - .panel_handle = panel_, - .buffer_size = 128 * CONFIG_DISPLAY_HEIGHT, - .double_buffer = true, - .hres = 128, - .vres = CONFIG_DISPLAY_HEIGHT, - .monochrome = true, - .rotation = { - .swap_xy = 0, - .mirror_x = 0, - .mirror_y = 0, - }, - .flags = { - .buff_dma = 0, - .buff_spiram = 0, - }, - }; - disp_ = lvgl_port_add_disp(&display_cfg); - lv_disp_set_rotation(disp_, LV_DISP_ROT_180); - // Set the display to on ESP_LOGI(TAG, "Turning display on"); ESP_ERROR_CHECK(esp_lcd_panel_disp_on_off(panel_, true)); + + ESP_LOGI(TAG, "Adding LCD screen"); + const lvgl_port_display_cfg_t display_cfg = { + .io_handle = panel_io_, + .panel_handle = panel_, + .control_handle = nullptr, + .buffer_size = DISPLAY_WIDTH * DISPLAY_HEIGHT, + .double_buffer = false, + .trans_size = 0, + .hres = DISPLAY_WIDTH, + .vres = DISPLAY_HEIGHT, + .monochrome = true, + .rotation = { + .swap_xy = false, + .mirror_x = true, + .mirror_y = true, + }, + .flags = { + .buff_dma = 1, + .buff_spiram = 0, + .sw_rotate = 0, + .full_refresh = 0, + .direct_mode = 0, + }, + }; + disp_ = lvgl_port_add_disp(&display_cfg);; ESP_LOGI(TAG, "Display Loading..."); if (lvgl_port_lock(0)) { label_ = lv_label_create(lv_disp_get_scr_act(disp_)); + // lv_obj_set_style_text_font(label_, font_, 0); lv_label_set_text(label_, "Initializing..."); lv_obj_set_width(label_, disp_->driver->hor_res); lv_obj_set_height(label_, disp_->driver->ver_res); notification_ = lv_label_create(lv_disp_get_scr_act(disp_)); + // lv_obj_set_style_text_font(notification_, font_, 0); lv_label_set_text(notification_, "Notification\nTest"); lv_obj_set_width(notification_, disp_->driver->hor_res); lv_obj_set_height(notification_, disp_->driver->ver_res); lv_obj_set_style_opa(notification_, LV_OPA_MIN, 0); lvgl_port_unlock(); } + + // Create a timer to update the display every 10 seconds + esp_timer_create_args_t update_display_timer_args = { + .callback = [](void *arg) { + Display* display = static_cast(arg); + display->UpdateDisplay(); + }, + .arg = this, + .dispatch_method = ESP_TIMER_TASK, + .name = "UpdateDisplay", + .skip_unhandled_events = false, + }; + ESP_ERROR_CHECK(esp_timer_create(&update_display_timer_args, &update_display_timer_)); + ESP_ERROR_CHECK(esp_timer_start_periodic(update_display_timer_, 10 * 1000000)); } Display::~Display() { @@ -119,6 +144,10 @@ Display::~Display() { esp_timer_stop(notification_timer_); esp_timer_delete(notification_timer_); } + if (update_display_timer_ != nullptr) { + esp_timer_stop(update_display_timer_); + esp_timer_delete(update_display_timer_); + } lvgl_port_lock(0); if (label_ != nullptr) { @@ -127,6 +156,10 @@ Display::~Display() { } lvgl_port_unlock(); + if (font_ != nullptr) { + lv_font_free(font_); + } + if (disp_ != nullptr) { lvgl_port_deinit(); esp_lcd_panel_del(panel_); @@ -176,4 +209,20 @@ void Display::ShowNotification(const std::string &text) { } } -#endif +void Display::UpdateDisplay() { + auto chat_state = Application::GetInstance().GetChatState(); + if (chat_state == kChatStateIdle || chat_state == kChatStateConnecting || chat_state == kChatStateListening) { + std::string text; + auto& board = Board::GetInstance(); + std::string network_name; + int signal_quality; + std::string signal_quality_text; + if (!board.GetNetworkState(network_name, signal_quality, signal_quality_text)) { + text = "No network"; + } else { + ESP_LOGI(TAG, "%s CSQ: %d", network_name.c_str(), signal_quality); + text = network_name + "\n" + signal_quality_text + " (" + std::to_string(signal_quality) + ")"; + } + SetText(text); + } +} diff --git a/main/Display.h b/main/Display.h index c57bc622..fdd280d3 100644 --- a/main/Display.h +++ b/main/Display.h @@ -17,6 +17,8 @@ public: void SetText(const std::string &text); void ShowNotification(const std::string &text); + void UpdateDisplay(); + private: int sda_pin_; int scl_pin_; @@ -26,9 +28,11 @@ private: esp_lcd_panel_io_handle_t panel_io_ = nullptr; esp_lcd_panel_handle_t panel_ = nullptr; lv_disp_t *disp_ = nullptr; + lv_font_t *font_ = nullptr; lv_obj_t *label_ = nullptr; lv_obj_t *notification_ = nullptr; esp_timer_handle_t notification_timer_ = nullptr; + esp_timer_handle_t update_display_timer_ = nullptr; std::string text_; }; diff --git a/main/FirmwareUpgrade.cc b/main/FirmwareUpgrade.cc index 3fd8a40c..4b29b6bc 100644 --- a/main/FirmwareUpgrade.cc +++ b/main/FirmwareUpgrade.cc @@ -1,5 +1,7 @@ #include "FirmwareUpgrade.h" #include "SystemInfo.h" +#include "Board.h" + #include #include #include @@ -15,7 +17,7 @@ #define TAG "FirmwareUpgrade" -FirmwareUpgrade::FirmwareUpgrade(Http& http) : http_(http) { +FirmwareUpgrade::FirmwareUpgrade() { } FirmwareUpgrade::~FirmwareUpgrade() { @@ -38,16 +40,18 @@ void FirmwareUpgrade::CheckVersion() { return; } + auto http = Board::GetInstance().CreateHttp(); for (const auto& header : headers_) { - http_.SetHeader(header.first, header.second); + http->SetHeader(header.first, header.second); } - http_.SetHeader("Content-Type", "application/json"); - http_.SetContent(GetPostData()); - http_.Open("POST", check_version_url_); + http->SetHeader("Content-Type", "application/json"); + http->SetContent(GetPostData()); + http->Open("POST", check_version_url_); - auto response = http_.GetBody(); - http_.Close(); + auto response = http->GetBody(); + http->Close(); + delete http; // Response: { "firmware": { "version": "1.0.0", "url": "http://" } } // Parse the JSON response and check if the version is newer @@ -123,15 +127,17 @@ void FirmwareUpgrade::Upgrade(const std::string& firmware_url) { bool image_header_checked = false; std::string image_header; - if (!http_.Open("GET", firmware_url)) { + auto http = Board::GetInstance().CreateHttp(); + if (!http->Open("GET", firmware_url)) { ESP_LOGE(TAG, "Failed to open HTTP connection"); + delete http; return; } - size_t content_length = http_.GetBodyLength(); + size_t content_length = http->GetBodyLength(); if (content_length == 0) { ESP_LOGE(TAG, "Failed to get content length"); - http_.Close(); + delete http; return; } @@ -139,10 +145,10 @@ void FirmwareUpgrade::Upgrade(const std::string& firmware_url) { size_t total_read = 0, recent_read = 0; auto last_calc_time = esp_timer_get_time(); while (true) { - int ret = http_.Read(buffer, sizeof(buffer)); + int ret = http->Read(buffer, sizeof(buffer)); if (ret < 0) { ESP_LOGE(TAG, "Failed to read HTTP data: %s", esp_err_to_name(ret)); - http_.Close(); + delete http; return; } @@ -174,13 +180,13 @@ void FirmwareUpgrade::Upgrade(const std::string& firmware_url) { auto current_version = esp_app_get_description()->version; if (memcmp(new_app_info.version, current_version, sizeof(new_app_info.version)) == 0) { ESP_LOGE(TAG, "Firmware version is the same, skipping upgrade"); - http_.Close(); + delete http; return; } if (esp_ota_begin(update_partition, OTA_WITH_SEQUENTIAL_WRITES, &update_handle)) { esp_ota_abort(update_handle); - http_.Close(); + delete http; ESP_LOGE(TAG, "Failed to begin OTA"); return; } @@ -192,11 +198,11 @@ void FirmwareUpgrade::Upgrade(const std::string& firmware_url) { if (err != ESP_OK) { ESP_LOGE(TAG, "Failed to write OTA data: %s", esp_err_to_name(err)); esp_ota_abort(update_handle); - http_.Close(); + delete http; return; } } - http_.Close(); + delete http; esp_err_t err = esp_ota_end(update_handle); if (err != ESP_OK) { diff --git a/main/FirmwareUpgrade.h b/main/FirmwareUpgrade.h index a7f282f6..c160830e 100644 --- a/main/FirmwareUpgrade.h +++ b/main/FirmwareUpgrade.h @@ -5,11 +5,9 @@ #include #include -#include - class FirmwareUpgrade { public: - FirmwareUpgrade(Http& http); + FirmwareUpgrade(); ~FirmwareUpgrade(); void SetBoardJson(const std::string& board_json); @@ -21,7 +19,6 @@ public: void MarkCurrentVersionValid(); private: - Http& http_; std::string check_version_url_; bool has_new_version_ = false; std::string firmware_version_; diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index b580576c..7c50fe6b 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -18,218 +18,25 @@ config WEBSOCKET_ACCESS_TOKEN help Access token for websocket communication. -config AUDIO_INPUT_SAMPLE_RATE - int "Audio Input Sample Rate" - default 16000 +choice BOARD_TYPE + prompt "Board Type" + default BOARD_TYPE_BREAD_COMPACT_WIFI help - Audio input sample rate. - -config AUDIO_OUTPUT_SAMPLE_RATE - int "Audio Output Sample Rate" - default 24000 - help - Audio output sample rate. - -choice AUDIO_CODEC - prompt "Audio Codec" - default AUDIO_CODEC_NONE - help - Audio codec. - config AUDIO_CODEC_ES8311_ES7210 - bool "Box: ES8311 + ES7210" - config AUDIO_CODEC_NONE - bool "None" + Board type. 开发板类型 + config BOARD_TYPE_BREAD_COMPACT_WIFI + bool "面包板新版接线(WiFi)" + config BOARD_TYPE_BREAD_COMPACT_ML307 + bool "面包板新版接线(ML307 AT)" + config BOARD_TYPE_ESP_BOX_3 + bool "ESP BOX 3" + config BOARD_TYPE_KEVIN_BOX_0 + bool "Kevin Box 0" endchoice -menu "Box Audio Codec I2C and PA Control" - depends on AUDIO_CODEC_ES8311_ES7210 - - config AUDIO_CODEC_I2C_SDA_PIN - int "Audio Codec I2C SDA Pin" - default 39 - help - Audio codec I2C SDA pin. - - config AUDIO_CODEC_I2C_SCL_PIN - int "Audio Codec I2C SCL Pin" - default 38 - help - Audio codec I2C SCL pin. - - config AUDIO_CODEC_PA_PIN - int "Audio Codec PA Pin" - default 40 - help - Audio codec PA pin. - - config AUDIO_CODEC_INPUT_REFERENCE - bool "Audio Codec Input Reference" - default y - help - Audio codec input reference. -endmenu - -choice AUDIO_I2S_METHOD - prompt "Audio I2S Method" - default AUDIO_I2S_METHOD_SIMPLEX if AUDIO_CODEC_NONE - default AUDIO_I2S_METHOD_DUPLEX if AUDIO_CODEC_ES8311_ES7210 - help - Audio I2S method. - config AUDIO_I2S_METHOD_SIMPLEX - bool "Simplex" - help - Use I2S 0 as the audio input and I2S 1 as the audio output. - config AUDIO_I2S_METHOD_DUPLEX - bool "Duplex" - help - Use I2S 0 as the audio input and audio output. -endchoice - -menu "Audio I2S Simplex" - depends on AUDIO_I2S_METHOD_SIMPLEX - - config AUDIO_DEVICE_I2S_MIC_GPIO_WS - int "I2S MIC GPIO WS" - default 4 - help - GPIO number of the I2S MIC WS. - - config AUDIO_DEVICE_I2S_MIC_GPIO_SCK - int "I2S MIC GPIO BCLK" - default 5 - help - GPIO number of the I2S MIC SCK. - - config AUDIO_DEVICE_I2S_MIC_GPIO_DIN - int "I2S MIC GPIO DIN" - default 6 - help - GPIO number of the I2S MIC DIN. - - config AUDIO_DEVICE_I2S_SPK_GPIO_DOUT - int "I2S SPK GPIO DOUT" - default 7 - help - GPIO number of the I2S SPK DOUT. - - config AUDIO_DEVICE_I2S_SPK_GPIO_BCLK - int "I2S SPK GPIO BCLK" - default 15 - help - GPIO number of the I2S SPK BCLK. - - config AUDIO_DEVICE_I2S_SPK_GPIO_LRCK - int "I2S SPK GPIO WS" - default 16 - help - GPIO number of the I2S SPK LRCK. - -endmenu - -menu "Audio I2S Duplex" - depends on AUDIO_I2S_METHOD_DUPLEX - - config AUDIO_DEVICE_I2S_GPIO_MCLK - int "I2S GPIO MCLK" - default -1 - help - GPIO number of the I2S WS. - - config AUDIO_DEVICE_I2S_GPIO_LRCK - int "I2S GPIO LRCK" - default 4 - help - GPIO number of the I2S LRCK. - - config AUDIO_DEVICE_I2S_GPIO_BCLK - int "I2S GPIO BCLK / SCLK" - default 5 - help - GPIO number of the I2S BCLK. - - config AUDIO_DEVICE_I2S_GPIO_DIN - int "I2S GPIO DIN" - default 6 - help - GPIO number of the I2S DIN. - - config AUDIO_DEVICE_I2S_GPIO_DOUT - int "I2S GPIO DOUT" - default 7 - help - GPIO number of the I2S DOUT. - -endmenu - -config BOOT_BUTTON_GPIO - int "Boot Button GPIO" - default 0 - help - GPIO number of the boot button. - -config VOLUME_UP_BUTTON_GPIO - int "Volume Up Button GPIO" - default 40 - help - GPIO number of the volume up button. - -config VOLUME_DOWN_BUTTON_GPIO - int "Volume Down Button GPIO" - default 39 - help - GPIO number of the volume down button. - config USE_AFE_SR bool "Use Espressif AFE SR" default y help Use AFE SR for wake word detection. -config USE_ML307 - bool "Use ML307" - default n - help - Use ML307 as the modem. - -config ML307_RX_PIN - int "ML307 RX Pin" - default 11 - depends on USE_ML307 - help - GPIO number of the ML307 RX. - -config ML307_TX_PIN - int "ML307 TX Pin" - default 12 - depends on USE_ML307 - help - GPIO number of the ML307 TX. - -config USE_DISPLAY - bool "Use Display" - default n - help - Use Display. - -config DISPLAY_HEIGHT - int "Display Height" - default 32 - depends on USE_DISPLAY - help - Display height in pixels. - -config DISPLAY_SDA_PIN - int "Display SDA Pin" - default 41 - depends on USE_DISPLAY - help - GPIO number of the Display SDA. - -config DISPLAY_SCL_PIN - int "Display SCL Pin" - default 42 - depends on USE_DISPLAY - help - GPIO number of the Display SCL. - endmenu diff --git a/main/Ml307Board.cc b/main/Ml307Board.cc new file mode 100644 index 00000000..b2294d81 --- /dev/null +++ b/main/Ml307Board.cc @@ -0,0 +1,98 @@ +#include "Ml307Board.h" +#include "Application.h" + +#include +#include +#include +#include +#include + +static const char *TAG = "Ml307Board"; + +static std::string csq_to_string(int csq) { + if (csq == -1) { + return "No network"; + } else if (csq >= 0 && csq <= 9) { + return "Very bad"; + } else if (csq >= 10 && csq <= 14) { + return "Bad"; + } else if (csq >= 15 && csq <= 19) { + return "Fair"; + } else if (csq >= 20 && csq <= 24) { + return "Good"; + } else if (csq >= 25 && csq <= 31) { + return "Very good"; + } + return "Invalid"; +} + + +Ml307Board::Ml307Board() : modem_(ML307_TX_PIN, ML307_RX_PIN, 4096) { +} + +void Ml307Board::StartModem() { + auto& application = Application::GetInstance(); + auto& display = application.GetDisplay(); + modem_.SetDebug(false); + modem_.SetBaudRate(921600); + // Print the ML307 modem information + std::string module_name = modem_.GetModuleName(); + ESP_LOGI(TAG, "ML307 Module: %s", module_name.c_str()); + display.SetText(std::string("Wait for network\n") + module_name); + modem_.ResetConnections(); + modem_.WaitForNetworkReady(); + + std::string imei = modem_.GetImei(); + std::string iccid = modem_.GetIccid(); + ESP_LOGI(TAG, "ML307 IMEI: %s", imei.c_str()); + ESP_LOGI(TAG, "ML307 ICCID: %s", iccid.c_str()); + + // If low power, the material ready event will be triggered by the modem because of a reset + modem_.OnMaterialReady([&application]() { + ESP_LOGI(TAG, "ML307 material ready"); + application.Schedule([&application]() { + application.SetChatState(kChatStateIdle); + }); + }); +} + +void Ml307Board::Initialize() { + ESP_LOGI(TAG, "Initializing Ml307Board"); + StartModem(); +} + +AudioDevice* Ml307Board::CreateAudioDevice() { + return new AudioDevice(); +} + +Http* Ml307Board::CreateHttp() { + return new Ml307Http(modem_); +} + +WebSocket* Ml307Board::CreateWebSocket() { + return new WebSocket(new Ml307SslTransport(modem_, 0)); +} + +bool Ml307Board::GetNetworkState(std::string& network_name, int& signal_quality, std::string& signal_quality_text) { + network_name = modem_.GetCarrierName(); + signal_quality = modem_.GetCsq(); + signal_quality_text = csq_to_string(signal_quality); + return signal_quality != -1; +} + +std::string Ml307Board::GetJson() { + // Set the board type for OTA + std::string board_type = BOARD_TYPE; + std::string module_name = modem_.GetModuleName(); + std::string carrier_name = modem_.GetCarrierName(); + std::string imei = modem_.GetImei(); + std::string iccid = modem_.GetIccid(); + int csq = modem_.GetCsq(); + std::string board_json = std::string("{\"type\":\"" + board_type + "\","); + board_json += "\"revision\":\"" + module_name + "\","; + board_json += "\"carrier\":\"" + carrier_name + "\","; + board_json += "\"csq\":\"" + std::to_string(csq) + "\","; + board_json += "\"imei\":\"" + imei + "\","; + board_json += "\"iccid\":\"" + iccid + "\"}"; + return board_json; +} diff --git a/main/Ml307Board.h b/main/Ml307Board.h new file mode 100644 index 00000000..18cd572f --- /dev/null +++ b/main/Ml307Board.h @@ -0,0 +1,23 @@ +#ifndef ML307_BOARD_H +#define ML307_BOARD_H + +#include "Board.h" +#include + +class Ml307Board : public Board { +protected: + Ml307AtModem modem_; + + void StartModem(); + +public: + Ml307Board(); + virtual void Initialize() override; + virtual AudioDevice* CreateAudioDevice() override; + virtual Http* CreateHttp() override; + virtual WebSocket* CreateWebSocket() override; + virtual bool GetNetworkState(std::string& network_name, int& signal_quality, std::string& signal_quality_text) override; + virtual std::string GetJson() override; +}; + +#endif // ML307_BOARD_H diff --git a/main/SystemReset.h b/main/SystemReset.h index 0c34a771..2b81a9cd 100644 --- a/main/SystemReset.h +++ b/main/SystemReset.h @@ -3,11 +3,18 @@ class SystemReset { public: - SystemReset(); + static SystemReset& GetInstance() { + static SystemReset instance; + return instance; + } void CheckButtons(); private: + SystemReset(); // 构造函数私有化 + SystemReset(const SystemReset&) = delete; // 禁用拷贝构造 + SystemReset& operator=(const SystemReset&) = delete; // 禁用赋值操作 + void ResetNvsFlash(); void ResetToFactory(); void RestartInSeconds(int seconds); diff --git a/main/WakeWordDetect.cc b/main/WakeWordDetect.cc index 0610b4d6..7dc147b0 100644 --- a/main/WakeWordDetect.cc +++ b/main/WakeWordDetect.cc @@ -1,5 +1,6 @@ #include #include +#include #include "WakeWordDetect.h" #include "Application.h" diff --git a/main/WifiBoard.cc b/main/WifiBoard.cc new file mode 100644 index 00000000..fa657ba6 --- /dev/null +++ b/main/WifiBoard.cc @@ -0,0 +1,95 @@ +#include "WifiBoard.h" +#include "Application.h" +#include "WifiStation.h" +#include "WifiConfigurationAp.h" +#include "SystemInfo.h" +#include "BuiltinLed.h" + +#include +#include +#include +#include +#include +#include +#include + +static const char *TAG = "WifiBoard"; + +static std::string rssi_to_string(int rssi) { + if (rssi >= -55) { + return "Very good"; + } else if (rssi >= -65) { + return "Good"; + } else if (rssi >= -75) { + return "Fair"; + } else if (rssi >= -85) { + return "Poor"; + } else { + return "No network"; + } +} + +void WifiBoard::StartWifi() { + auto& application = Application::GetInstance(); + auto& display = application.GetDisplay(); + auto& builtin_led = BuiltinLed::GetInstance(); + + // Try to connect to WiFi, if failed, launch the WiFi configuration AP + auto& wifi_station = WifiStation::GetInstance(); + display.SetText(std::string("Connect to WiFi\n") + wifi_station.GetSsid()); + wifi_station.Start(); + if (!wifi_station.IsConnected()) { + builtin_led.SetBlue(); + builtin_led.Blink(1000, 500); + auto& wifi_ap = WifiConfigurationAp::GetInstance(); + wifi_ap.SetSsidPrefix("Xiaozhi"); + display.SetText(wifi_ap.GetSsid() + "\n" + wifi_ap.GetWebServerUrl()); + wifi_ap.Start(); + // Wait until the WiFi configuration is finished + while (true) { + vTaskDelay(pdMS_TO_TICKS(1000)); + } + } +} + +void WifiBoard::Initialize() { + ESP_LOGI(TAG, "Initializing WifiBoard"); + StartWifi(); +} + +Http* WifiBoard::CreateHttp() { + return new EspHttp(); +} + +WebSocket* WifiBoard::CreateWebSocket() { + std::string url = CONFIG_WEBSOCKET_URL; + if (url.find("wss://") == 0) { + return new WebSocket(new TlsTransport()); + } else { + return new WebSocket(new TcpTransport()); + } +} + +bool WifiBoard::GetNetworkState(std::string& network_name, int& signal_quality, std::string& signal_quality_text) { + auto& wifi_station = WifiStation::GetInstance(); + if (!wifi_station.IsConnected()) { + return false; + } + network_name = wifi_station.GetSsid(); + signal_quality = wifi_station.GetRssi(); + signal_quality_text = rssi_to_string(signal_quality); + return signal_quality != -1; +} + +std::string WifiBoard::GetJson() { + // Set the board type for OTA + auto& wifi_station = WifiStation::GetInstance(); + std::string board_type = BOARD_TYPE; + std::string board_json = std::string("{\"type\":\"" + board_type + "\","); + board_json += "\"ssid\":\"" + wifi_station.GetSsid() + "\","; + board_json += "\"rssi\":" + std::to_string(wifi_station.GetRssi()) + ","; + board_json += "\"channel\":" + std::to_string(wifi_station.GetChannel()) + ","; + board_json += "\"ip\":\"" + wifi_station.GetIpAddress() + "\","; + board_json += "\"mac\":\"" + SystemInfo::GetMacAddress() + "\"}"; + return board_json; +} diff --git a/main/WifiBoard.h b/main/WifiBoard.h new file mode 100644 index 00000000..4c8b2ced --- /dev/null +++ b/main/WifiBoard.h @@ -0,0 +1,18 @@ +#ifndef WIFI_BOARD_H +#define WIFI_BOARD_H + +#include "Board.h" + +class WifiBoard : public Board { +protected: + virtual void StartWifi(); + +public: + virtual void Initialize() override; + virtual Http* CreateHttp() override; + virtual WebSocket* CreateWebSocket() override; + virtual bool GetNetworkState(std::string& network_name, int& signal_quality, std::string& signal_quality_text) override; + virtual std::string GetJson() override; +}; + +#endif // WIFI_BOARD_H diff --git a/main/boards/bread-compact-ml307/CompactMl307Board.cc b/main/boards/bread-compact-ml307/CompactMl307Board.cc new file mode 100644 index 00000000..50a9e778 --- /dev/null +++ b/main/boards/bread-compact-ml307/CompactMl307Board.cc @@ -0,0 +1,18 @@ +#include "Ml307Board.h" +#include + +#define TAG "CompactMl307Board" + +class CompactMl307Board : public Ml307Board { +public: + virtual void Initialize() override { + ESP_LOGI(TAG, "Initializing CompactMl307Board"); + Ml307Board::Initialize(); + } + + virtual AudioDevice* CreateAudioDevice() override { + return new AudioDevice(); + } +}; + +DECLARE_BOARD(CompactMl307Board); diff --git a/main/boards/bread-compact-ml307/config.h b/main/boards/bread-compact-ml307/config.h new file mode 100644 index 00000000..ff3c19e7 --- /dev/null +++ b/main/boards/bread-compact-ml307/config.h @@ -0,0 +1,45 @@ +#ifndef _BOARD_CONFIG_H_ +#define _BOARD_CONFIG_H_ + +#include + +#define AUDIO_INPUT_SAMPLE_RATE 16000 +#define AUDIO_OUTPUT_SAMPLE_RATE 24000 + +#define AUDIO_I2S_METHOD_SIMPLEX + +#ifdef AUDIO_I2S_METHOD_SIMPLEX + +#define AUDIO_I2S_MIC_GPIO_WS GPIO_NUM_4 +#define AUDIO_I2S_MIC_GPIO_SCK GPIO_NUM_5 +#define AUDIO_I2S_MIC_GPIO_DIN GPIO_NUM_6 +#define AUDIO_I2S_SPK_GPIO_DOUT GPIO_NUM_7 +#define AUDIO_I2S_SPK_GPIO_BCLK GPIO_NUM_15 +#define AUDIO_I2S_SPK_GPIO_LRCK GPIO_NUM_16 + +#else + +#define AUDIO_I2S_GPIO_LRCK GPIO_NUM_4 +#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_5 +#define AUDIO_I2S_GPIO_DIN GPIO_NUM_6 +#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_7 + +#endif + +#define BUILTIN_LED_GPIO GPIO_NUM_48 +#define BOOT_BUTTON_GPIO GPIO_NUM_0 +#define VOLUME_UP_BUTTON_GPIO GPIO_NUM_40 +#define VOLUME_DOWN_BUTTON_GPIO GPIO_NUM_39 + + +#define DISPLAY_WIDTH 128 +#define DISPLAY_HEIGHT 32 +#define DISPLAY_SDA_PIN GPIO_NUM_41 +#define DISPLAY_SCL_PIN GPIO_NUM_42 + + +#define ML307_RX_PIN GPIO_NUM_11 +#define ML307_TX_PIN GPIO_NUM_12 + + +#endif // _BOARD_CONFIG_H_ diff --git a/main/boards/bread-compact-wifi/CompactWifiBoard.cc b/main/boards/bread-compact-wifi/CompactWifiBoard.cc new file mode 100644 index 00000000..44fce62e --- /dev/null +++ b/main/boards/bread-compact-wifi/CompactWifiBoard.cc @@ -0,0 +1,19 @@ +#include "WifiBoard.h" + +#include + +#define TAG "CompactWifiBoard" + +class CompactWifiBoard : public WifiBoard { +public: + virtual void Initialize() override { + ESP_LOGI(TAG, "Initializing CompactWifiBoard"); + WifiBoard::Initialize(); + } + + virtual AudioDevice* CreateAudioDevice() override { + return new AudioDevice(); + } +}; + +DECLARE_BOARD(CompactWifiBoard); diff --git a/main/boards/bread-compact-wifi/config.h b/main/boards/bread-compact-wifi/config.h new file mode 100644 index 00000000..bc0d58c4 --- /dev/null +++ b/main/boards/bread-compact-wifi/config.h @@ -0,0 +1,40 @@ +#ifndef _BOARD_CONFIG_H_ +#define _BOARD_CONFIG_H_ + +#include + +#define AUDIO_INPUT_SAMPLE_RATE 16000 +#define AUDIO_OUTPUT_SAMPLE_RATE 24000 + +#define AUDIO_I2S_METHOD_SIMPLEX + +#ifdef AUDIO_I2S_METHOD_SIMPLEX + +#define AUDIO_I2S_MIC_GPIO_WS GPIO_NUM_4 +#define AUDIO_I2S_MIC_GPIO_SCK GPIO_NUM_5 +#define AUDIO_I2S_MIC_GPIO_DIN GPIO_NUM_6 +#define AUDIO_I2S_SPK_GPIO_DOUT GPIO_NUM_7 +#define AUDIO_I2S_SPK_GPIO_BCLK GPIO_NUM_15 +#define AUDIO_I2S_SPK_GPIO_LRCK GPIO_NUM_16 + +#else + +#define AUDIO_I2S_GPIO_LRCK GPIO_NUM_4 +#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_5 +#define AUDIO_I2S_GPIO_DIN GPIO_NUM_6 +#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_7 + +#endif + + +#define BUILTIN_LED_GPIO GPIO_NUM_48 +#define BOOT_BUTTON_GPIO GPIO_NUM_0 +#define VOLUME_UP_BUTTON_GPIO GPIO_NUM_40 +#define VOLUME_DOWN_BUTTON_GPIO GPIO_NUM_39 + +#define DISPLAY_WIDTH 128 +#define DISPLAY_HEIGHT 32 +#define DISPLAY_SDA_PIN GPIO_NUM_41 +#define DISPLAY_SCL_PIN GPIO_NUM_42 + +#endif // _BOARD_CONFIG_H_ diff --git a/main/boards/esp-box-3/EspBox3Board.cc b/main/boards/esp-box-3/EspBox3Board.cc new file mode 100644 index 00000000..673354c9 --- /dev/null +++ b/main/boards/esp-box-3/EspBox3Board.cc @@ -0,0 +1,20 @@ +#include "WifiBoard.h" +#include "BoxAudioDevice.h" + +#include + +#define TAG "EspBox3Board" + +class EspBox3Board : public WifiBoard { +public: + virtual void Initialize() override { + ESP_LOGI(TAG, "Initializing EspBox3Board"); + WifiBoard::Initialize(); + } + + virtual AudioDevice* CreateAudioDevice() override { + return new BoxAudioDevice(); + } +}; + +DECLARE_BOARD(EspBox3Board); diff --git a/main/boards/esp-box-3/config.h b/main/boards/esp-box-3/config.h new file mode 100644 index 00000000..bf1cd006 --- /dev/null +++ b/main/boards/esp-box-3/config.h @@ -0,0 +1,32 @@ +#ifndef _BOARD_CONFIG_H_ +#define _BOARD_CONFIG_H_ + +#include + +#define AUDIO_INPUT_SAMPLE_RATE 16000 +#define AUDIO_OUTPUT_SAMPLE_RATE 16000 + +#define AUDIO_INPUT_REFERENCE true + +#define AUDIO_I2S_GPIO_MCLK GPIO_NUM_2 +#define AUDIO_I2S_GPIO_LRCK GPIO_NUM_45 +#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_17 +#define AUDIO_I2S_GPIO_DIN GPIO_NUM_16 +#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_15 + +#define AUDIO_CODEC_PA_PIN GPIO_NUM_46 +#define AUDIO_CODEC_I2C_SDA_PIN GPIO_NUM_8 +#define AUDIO_CODEC_I2C_SCL_PIN GPIO_NUM_18 + +#define BUILTIN_LED_GPIO GPIO_NUM_NC +#define BOOT_BUTTON_GPIO GPIO_NUM_0 +#define VOLUME_UP_BUTTON_GPIO GPIO_NUM_NC +#define VOLUME_DOWN_BUTTON_GPIO GPIO_NUM_NC + +#define DISPLAY_WIDTH 128 +#define DISPLAY_HEIGHT 64 +#define DISPLAY_SDA_PIN GPIO_NUM_NC +#define DISPLAY_SCL_PIN GPIO_NUM_NC + + +#endif // _BOARD_CONFIG_H_ diff --git a/main/boards/kevin-box-0/KevinBoxBoard.cc b/main/boards/kevin-box-0/KevinBoxBoard.cc new file mode 100644 index 00000000..7402e384 --- /dev/null +++ b/main/boards/kevin-box-0/KevinBoxBoard.cc @@ -0,0 +1,48 @@ +#include "Ml307Board.h" +#include "BoxAudioDevice.h" + +#include +#include +#include + +static const char *TAG = "KevinBoxBoard"; + +class KevinBoxBoard : public Ml307Board { +private: + void MountStorage() { + // Mount the storage partition + esp_vfs_spiffs_conf_t conf = { + .base_path = "/storage", + .partition_label = "storage", + .max_files = 5, + .format_if_mount_failed = true, + }; + esp_vfs_spiffs_register(&conf); + } + + void Enable4GModule() { + // Make GPIO15 HIGH to enable the 4G module + gpio_config_t ml307_enable_config = { + .pin_bit_mask = (1ULL << 15), + .mode = GPIO_MODE_OUTPUT, + .pull_up_en = GPIO_PULLUP_DISABLE, + .pull_down_en = GPIO_PULLDOWN_DISABLE, + .intr_type = GPIO_INTR_DISABLE, + }; + gpio_config(&ml307_enable_config); + gpio_set_level(GPIO_NUM_15, 1); + } +public: + virtual void Initialize() override { + ESP_LOGI(TAG, "Initializing KevinBoxBoard"); + MountStorage(); + Enable4GModule(); + Ml307Board::Initialize(); + } + + virtual AudioDevice* CreateAudioDevice() override { + return new BoxAudioDevice(); + } +}; + +DECLARE_BOARD(KevinBoxBoard); diff --git a/main/boards/kevin-box-0/config.h b/main/boards/kevin-box-0/config.h new file mode 100644 index 00000000..efa86ae1 --- /dev/null +++ b/main/boards/kevin-box-0/config.h @@ -0,0 +1,35 @@ +#ifndef _BOARD_CONFIG_H_ +#define _BOARD_CONFIG_H_ + +#include + +#define AUDIO_INPUT_SAMPLE_RATE 24000 +#define AUDIO_OUTPUT_SAMPLE_RATE 24000 + +#define AUDIO_INPUT_REFERENCE true + +#define AUDIO_I2S_GPIO_MCLK GPIO_NUM_0 +#define AUDIO_I2S_GPIO_LRCK GPIO_NUM_47 +#define AUDIO_I2S_GPIO_BCLK GPIO_NUM_48 +#define AUDIO_I2S_GPIO_DIN GPIO_NUM_45 +#define AUDIO_I2S_GPIO_DOUT GPIO_NUM_21 + +#define AUDIO_CODEC_PA_PIN GPIO_NUM_40 +#define AUDIO_CODEC_I2C_SDA_PIN GPIO_NUM_39 +#define AUDIO_CODEC_I2C_SCL_PIN GPIO_NUM_38 + +#define BUILTIN_LED_GPIO GPIO_NUM_8 +#define BOOT_BUTTON_GPIO GPIO_NUM_0 +#define VOLUME_UP_BUTTON_GPIO GPIO_NUM_6 +#define VOLUME_DOWN_BUTTON_GPIO GPIO_NUM_7 + +#define DISPLAY_WIDTH 128 +#define DISPLAY_HEIGHT 64 +#define DISPLAY_SDA_PIN GPIO_NUM_4 +#define DISPLAY_SCL_PIN GPIO_NUM_5 + +#define ML307_RX_PIN GPIO_NUM_17 +#define ML307_TX_PIN GPIO_NUM_16 + + +#endif // _BOARD_CONFIG_H_ diff --git a/main/idf_component.yml b/main/idf_component.yml index 0fc7b9e8..e7bbbaa0 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -1,14 +1,14 @@ ## IDF Component Manager Manifest File dependencies: - 78/esp-builtin-led: "^1.0.2" 78/esp-wifi-connect: "^1.2.0" 78/esp-opus-encoder: "^1.0.2" 78/esp-ml307: "^1.2.1" + espressif/led_strip: "^2.4.1" espressif/esp_codec_dev: "^1.3.1" espressif/esp-sr: "^1.9.0" espressif/button: "^3.3.1" lvgl/lvgl: "^8.4.0" - esp_lvgl_port: "^1.4.0" + esp_lvgl_port: "^2.4.1" ## Required IDF version idf: version: ">=5.3" diff --git a/main/main.cc b/main/main.cc index c77887b1..020dc7d4 100755 --- a/main/main.cc +++ b/main/main.cc @@ -13,22 +13,8 @@ extern "C" void app_main(void) { -#ifdef CONFIG_AUDIO_CODEC_ES8311_ES7210 - // Make GPIO15 HIGH to enable the 4G module - gpio_config_t ml307_enable_config = { - .pin_bit_mask = (1ULL << 15), - .mode = GPIO_MODE_OUTPUT, - .pull_up_en = GPIO_PULLUP_DISABLE, - .pull_down_en = GPIO_PULLDOWN_DISABLE, - .intr_type = GPIO_INTR_DISABLE, - }; - gpio_config(&ml307_enable_config); - gpio_set_level(GPIO_NUM_15, 1); -#endif - // Check if the reset button is pressed - SystemReset system_reset; - system_reset.CheckButtons(); + SystemReset::GetInstance().CheckButtons(); // Initialize the default event loop ESP_ERROR_CHECK(esp_event_loop_create_default()); diff --git a/partitions.csv b/partitions.csv index 7940758e..3a94796a 100644 --- a/partitions.csv +++ b/partitions.csv @@ -4,6 +4,7 @@ nvs, data, nvs, 0x9000, 0x4000, otadata, data, ota, 0xd000, 0x2000, phy_init, data, phy, 0xf000, 0x1000, model, data, spiffs, 0x10000, 0xF0000, +storage, data, spiffs, 0x100000, 1M, factory, app, factory, 0x200000, 4M, ota_0, app, ota_0, 0x600000, 4M, ota_1, app, ota_1, 0xA00000, 4M, diff --git a/sdkconfig.box b/sdkconfig.box deleted file mode 100644 index 896a75e7..00000000 --- a/sdkconfig.box +++ /dev/null @@ -1,2667 +0,0 @@ -# -# Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.3.0 Project Configuration -# -CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 -CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 -CONFIG_SOC_ADC_SUPPORTED=y -CONFIG_SOC_UART_SUPPORTED=y -CONFIG_SOC_PCNT_SUPPORTED=y -CONFIG_SOC_PHY_SUPPORTED=y -CONFIG_SOC_WIFI_SUPPORTED=y -CONFIG_SOC_TWAI_SUPPORTED=y -CONFIG_SOC_GDMA_SUPPORTED=y -CONFIG_SOC_AHB_GDMA_SUPPORTED=y -CONFIG_SOC_GPTIMER_SUPPORTED=y -CONFIG_SOC_LCDCAM_SUPPORTED=y -CONFIG_SOC_MCPWM_SUPPORTED=y -CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y -CONFIG_SOC_CACHE_SUPPORT_WRAP=y -CONFIG_SOC_ULP_SUPPORTED=y -CONFIG_SOC_ULP_FSM_SUPPORTED=y -CONFIG_SOC_RISCV_COPROC_SUPPORTED=y -CONFIG_SOC_BT_SUPPORTED=y -CONFIG_SOC_USB_OTG_SUPPORTED=y -CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y -CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y -CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y -CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y -CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y -CONFIG_SOC_EFUSE_SUPPORTED=y -CONFIG_SOC_SDMMC_HOST_SUPPORTED=y -CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y -CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED=y -CONFIG_SOC_RTC_MEM_SUPPORTED=y -CONFIG_SOC_PSRAM_DMA_CAPABLE=y -CONFIG_SOC_XT_WDT_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_SYSTIMER_SUPPORTED=y -CONFIG_SOC_SUPPORT_COEXISTENCE=y -CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y -CONFIG_SOC_AES_SUPPORTED=y -CONFIG_SOC_MPI_SUPPORTED=y -CONFIG_SOC_SHA_SUPPORTED=y -CONFIG_SOC_HMAC_SUPPORTED=y -CONFIG_SOC_DIG_SIGN_SUPPORTED=y -CONFIG_SOC_FLASH_ENC_SUPPORTED=y -CONFIG_SOC_SECURE_BOOT_SUPPORTED=y -CONFIG_SOC_MEMPROT_SUPPORTED=y -CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y -CONFIG_SOC_BOD_SUPPORTED=y -CONFIG_SOC_CLK_TREE_SUPPORTED=y -CONFIG_SOC_MPU_SUPPORTED=y -CONFIG_SOC_WDT_SUPPORTED=y -CONFIG_SOC_SPI_FLASH_SUPPORTED=y -CONFIG_SOC_RNG_SUPPORTED=y -CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y -CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y -CONFIG_SOC_LP_PERIPH_SHARE_INTERRUPT=y -CONFIG_SOC_PM_SUPPORTED=y -CONFIG_SOC_XTAL_SUPPORT_40M=y -CONFIG_SOC_APPCPU_HAS_CLOCK_GATING_BUG=y -CONFIG_SOC_ADC_RTC_CTRL_SUPPORTED=y -CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y -CONFIG_SOC_ADC_ARBITER_SUPPORTED=y -CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED=y -CONFIG_SOC_ADC_MONITOR_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=24 -CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=12 -CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 -CONFIG_SOC_ADC_DIGI_RESULT_BYTES=4 -CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 -CONFIG_SOC_ADC_DIGI_IIR_FILTER_NUM=2 -CONFIG_SOC_ADC_DIGI_MONITOR_NUM=2 -CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=83333 -CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=611 -CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=12 -CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 -CONFIG_SOC_ADC_CALIBRATION_V1_SUPPORTED=y -CONFIG_SOC_ADC_SELF_HW_CALI_SUPPORTED=y -CONFIG_SOC_ADC_SHARED_POWER=y -CONFIG_SOC_APB_BACKUP_DMA=y -CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y -CONFIG_SOC_CACHE_WRITEBACK_SUPPORTED=y -CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y -CONFIG_SOC_CPU_CORES_NUM=2 -CONFIG_SOC_CPU_INTR_NUM=32 -CONFIG_SOC_CPU_HAS_FPU=y -CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y -CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 -CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 -CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=64 -CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=4096 -CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16 -CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100 -CONFIG_SOC_AHB_GDMA_VERSION=1 -CONFIG_SOC_GDMA_NUM_GROUPS_MAX=1 -CONFIG_SOC_GDMA_PAIRS_PER_GROUP=5 -CONFIG_SOC_GDMA_PAIRS_PER_GROUP_MAX=5 -CONFIG_SOC_AHB_GDMA_SUPPORT_PSRAM=y -CONFIG_SOC_GPIO_PORT=1 -CONFIG_SOC_GPIO_PIN_COUNT=49 -CONFIG_SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER=y -CONFIG_SOC_GPIO_FILTER_CLK_SUPPORT_APB=y -CONFIG_SOC_GPIO_SUPPORT_RTC_INDEPENDENT=y -CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y -CONFIG_SOC_GPIO_VALID_GPIO_MASK=0x1FFFFFFFFFFFF -CONFIG_SOC_GPIO_IN_RANGE_MAX=48 -CONFIG_SOC_GPIO_OUT_RANGE_MAX=48 -CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x0001FFFFFC000000 -CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y -CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 -CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8 -CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8 -CONFIG_SOC_DEDIC_GPIO_OUT_AUTO_ENABLE=y -CONFIG_SOC_I2C_NUM=2 -CONFIG_SOC_HP_I2C_NUM=2 -CONFIG_SOC_I2C_FIFO_LEN=32 -CONFIG_SOC_I2C_CMD_REG_NUM=8 -CONFIG_SOC_I2C_SUPPORT_SLAVE=y -CONFIG_SOC_I2C_SUPPORT_HW_CLR_BUS=y -CONFIG_SOC_I2C_SUPPORT_XTAL=y -CONFIG_SOC_I2C_SUPPORT_RTC=y -CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y -CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y -CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y -CONFIG_SOC_I2S_NUM=2 -CONFIG_SOC_I2S_HW_VERSION_2=y -CONFIG_SOC_I2S_SUPPORTS_XTAL=y -CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y -CONFIG_SOC_I2S_SUPPORTS_PCM=y -CONFIG_SOC_I2S_SUPPORTS_PDM=y -CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y -CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2 -CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y -CONFIG_SOC_I2S_PDM_MAX_RX_LINES=4 -CONFIG_SOC_I2S_SUPPORTS_TDM=y -CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y -CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y -CONFIG_SOC_LEDC_CHANNEL_NUM=8 -CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=14 -CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y -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_MCPWM_SWSYNC_CAN_PROPAGATE=y -CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1 -CONFIG_SOC_MMU_PERIPH_NUM=1 -CONFIG_SOC_PCNT_GROUPS=1 -CONFIG_SOC_PCNT_UNITS_PER_GROUP=4 -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=4 -CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=4 -CONFIG_SOC_RMT_CHANNELS_PER_GROUP=8 -CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=48 -CONFIG_SOC_RMT_SUPPORT_RX_PINGPONG=y -CONFIG_SOC_RMT_SUPPORT_RX_DEMODULATION=y -CONFIG_SOC_RMT_SUPPORT_TX_ASYNC_STOP=y -CONFIG_SOC_RMT_SUPPORT_TX_LOOP_COUNT=y -CONFIG_SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP=y -CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y -CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y -CONFIG_SOC_RMT_SUPPORT_XTAL=y -CONFIG_SOC_RMT_SUPPORT_RC_FAST=y -CONFIG_SOC_RMT_SUPPORT_APB=y -CONFIG_SOC_RMT_SUPPORT_DMA=y -CONFIG_SOC_LCD_I80_SUPPORTED=y -CONFIG_SOC_LCD_RGB_SUPPORTED=y -CONFIG_SOC_LCD_I80_BUSES=1 -CONFIG_SOC_LCD_RGB_PANELS=1 -CONFIG_SOC_LCD_I80_BUS_WIDTH=16 -CONFIG_SOC_LCD_RGB_DATA_WIDTH=16 -CONFIG_SOC_LCD_SUPPORT_RGB_YUV_CONV=y -CONFIG_SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH=128 -CONFIG_SOC_RTC_CNTL_CPU_PD_REG_FILE_NUM=549 -CONFIG_SOC_RTC_CNTL_TAGMEM_PD_DMA_BUS_WIDTH=128 -CONFIG_SOC_RTCIO_PIN_COUNT=22 -CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y -CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y -CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y -CONFIG_SOC_SDM_GROUPS=y -CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8 -CONFIG_SOC_SDM_CLK_SUPPORT_APB=y -CONFIG_SOC_SPI_PERIPH_NUM=3 -CONFIG_SOC_SPI_MAX_CS_NUM=6 -CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 -CONFIG_SOC_SPI_SUPPORT_DDRCLK=y -CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y -CONFIG_SOC_SPI_SUPPORT_CD_SIG=y -CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y -CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y -CONFIG_SOC_SPI_SUPPORT_CLK_APB=y -CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y -CONFIG_SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUT=y -CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y -CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16 -CONFIG_SOC_SPI_SUPPORT_OCT=y -CONFIG_SOC_SPI_SCT_SUPPORTED=y -CONFIG_SOC_SPI_SCT_REG_NUM=14 -CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y -CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA -CONFIG_SOC_MEMSPI_SRC_FREQ_120M=y -CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y -CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y -CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y -CONFIG_SOC_SPIRAM_SUPPORTED=y -CONFIG_SOC_SPIRAM_XIP_SUPPORTED=y -CONFIG_SOC_SYSTIMER_COUNTER_NUM=2 -CONFIG_SOC_SYSTIMER_ALARM_NUM=3 -CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32 -CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20 -CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y -CONFIG_SOC_SYSTIMER_INT_LEVEL=y -CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y -CONFIG_SOC_TIMER_GROUPS=2 -CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=2 -CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54 -CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y -CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y -CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4 -CONFIG_SOC_TOUCH_SENSOR_VERSION=2 -CONFIG_SOC_TOUCH_SENSOR_NUM=15 -CONFIG_SOC_TOUCH_PROXIMITY_CHANNEL_NUM=3 -CONFIG_SOC_TOUCH_PROXIMITY_MEAS_DONE_SUPPORTED=y -CONFIG_SOC_TOUCH_SAMPLER_NUM=1 -CONFIG_SOC_TWAI_CONTROLLER_NUM=1 -CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y -CONFIG_SOC_TWAI_BRP_MIN=2 -CONFIG_SOC_TWAI_BRP_MAX=16384 -CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y -CONFIG_SOC_UART_NUM=3 -CONFIG_SOC_UART_HP_NUM=3 -CONFIG_SOC_UART_FIFO_LEN=128 -CONFIG_SOC_UART_BITRATE_MAX=5000000 -CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y -CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y -CONFIG_SOC_UART_SUPPORT_APB_CLK=y -CONFIG_SOC_UART_SUPPORT_RTC_CLK=y -CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y -CONFIG_SOC_USB_OTG_PERIPH_NUM=1 -CONFIG_SOC_SHA_DMA_MAX_BUFFER_SIZE=3968 -CONFIG_SOC_SHA_SUPPORT_DMA=y -CONFIG_SOC_SHA_SUPPORT_RESUME=y -CONFIG_SOC_SHA_GDMA=y -CONFIG_SOC_SHA_SUPPORT_SHA1=y -CONFIG_SOC_SHA_SUPPORT_SHA224=y -CONFIG_SOC_SHA_SUPPORT_SHA256=y -CONFIG_SOC_SHA_SUPPORT_SHA384=y -CONFIG_SOC_SHA_SUPPORT_SHA512=y -CONFIG_SOC_SHA_SUPPORT_SHA512_224=y -CONFIG_SOC_SHA_SUPPORT_SHA512_256=y -CONFIG_SOC_SHA_SUPPORT_SHA512_T=y -CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 -CONFIG_SOC_MPI_OPERATIONS_NUM=3 -CONFIG_SOC_RSA_MAX_BIT_LEN=4096 -CONFIG_SOC_AES_SUPPORT_DMA=y -CONFIG_SOC_AES_GDMA=y -CONFIG_SOC_AES_SUPPORT_AES_128=y -CONFIG_SOC_AES_SUPPORT_AES_256=y -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_WIFI_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_BT_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_CPU_PD=y -CONFIG_SOC_PM_SUPPORT_TAGMEM_PD=y -CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y -CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y -CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y -CONFIG_SOC_PM_SUPPORT_MAC_BB_PD=y -CONFIG_SOC_PM_SUPPORT_MODEM_PD=y -CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y -CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y -CONFIG_SOC_PM_CPU_RETENTION_BY_RTCCNTL=y -CONFIG_SOC_PM_MODEM_RETENTION_BY_BACKUPDMA=y -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_EFUSE_DIS_DOWNLOAD_ICACHE=y -CONFIG_SOC_EFUSE_DIS_DOWNLOAD_DCACHE=y -CONFIG_SOC_EFUSE_HARD_DIS_JTAG=y -CONFIG_SOC_EFUSE_DIS_USB_JTAG=y -CONFIG_SOC_EFUSE_SOFT_DIS_JTAG=y -CONFIG_SOC_EFUSE_DIS_DIRECT_BOOT=y -CONFIG_SOC_EFUSE_DIS_ICACHE=y -CONFIG_SOC_EFUSE_BLOCK9_KEY_PURPOSE_QUIRK=y -CONFIG_SOC_SECURE_BOOT_V2_RSA=y -CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3 -CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y -CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y -CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64 -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_OPTIONS=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_256=y -CONFIG_SOC_MEMPROT_CPU_PREFETCH_PAD_SIZE=16 -CONFIG_SOC_MEMPROT_MEM_ALIGN_SIZE=256 -CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 -CONFIG_SOC_MAC_BB_PD_MEM_SIZE=192 -CONFIG_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH=12 -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y -CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y -CONFIG_SOC_SPI_MEM_SUPPORT_OPI_MODE=y -CONFIG_SOC_SPI_MEM_SUPPORT_TIMING_TUNING=y -CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y -CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y -CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY=y -CONFIG_SOC_MEMSPI_CORE_CLK_SHARED_WITH_PSRAM=y -CONFIG_SOC_COEX_HW_PTI=y -CONFIG_SOC_EXTERNAL_COEX_LEADER_TX_LINE=y -CONFIG_SOC_SDMMC_USE_GPIO_MATRIX=y -CONFIG_SOC_SDMMC_NUM_SLOTS=2 -CONFIG_SOC_SDMMC_SUPPORT_XTAL_CLOCK=y -CONFIG_SOC_SDMMC_DELAY_PHASE_NUM=4 -CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y -CONFIG_SOC_WIFI_HW_TSF=y -CONFIG_SOC_WIFI_FTM_SUPPORT=y -CONFIG_SOC_WIFI_GCMP_SUPPORT=y -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_PHY_NEEDS_USB_WORKAROUND=y -CONFIG_SOC_BLE_SUPPORTED=y -CONFIG_SOC_BLE_MESH_SUPPORTED=y -CONFIG_SOC_BLE_50_SUPPORTED=y -CONFIG_SOC_BLE_DEVICE_PRIVACY_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_TOOLCHAIN="gcc" -CONFIG_IDF_TARGET_ARCH_XTENSA=y -CONFIG_IDF_TARGET_ARCH="xtensa" -CONFIG_IDF_TARGET="esp32s3" -CONFIG_IDF_INIT_VERSION="5.3.0" -CONFIG_IDF_TARGET_ESP32S3=y -CONFIG_IDF_FIRMWARE_CHIP_ID=0x0009 - -# -# 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 -# end of Build type - -# -# Bootloader config -# - -# -# Bootloader manager -# -CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y -CONFIG_BOOTLOADER_PROJECT_VER=1 -# end of Bootloader manager - -CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0 -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set -CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF=y -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set -CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y -# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_INFO is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set -CONFIG_BOOTLOADER_LOG_LEVEL=0 - -# -# 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_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=y -# CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK is not set -CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y -CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON=y -CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS=y -CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0x10 -# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set -CONFIG_BOOTLOADER_RESERVE_RTC_MEM=y -# end of Bootloader config - -# -# Security features -# -CONFIG_SECURE_BOOT_V2_RSA_SUPPORTED=y -CONFIG_SECURE_BOOT_V2_PREFERRED=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 -CONFIG_SECURE_ROM_DL_MODE_ENABLED=y -# 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=9 -# 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_UART_CLK_IS_XTAL=y -CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y -CONFIG_ESP_ROM_USB_OTG_NUM=3 -CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=4 -CONFIG_ESP_ROM_HAS_ERASE_0_REGION_BUG=y -CONFIG_ESP_ROM_HAS_ENCRYPTED_WRITES_USING_LEGACY_DRV=y -CONFIG_ESP_ROM_GET_CLK_FREQ=y -CONFIG_ESP_ROM_HAS_HAL_WDT=y -CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y -CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y -CONFIG_ESP_ROM_HAS_SPI_FLASH=y -CONFIG_ESP_ROM_HAS_ETS_PRINTF_BUG=y -CONFIG_ESP_ROM_HAS_NEWLIB=y -CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y -CONFIG_ESP_ROM_HAS_NEWLIB_32BIT_TIME=y -CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y -CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y -CONFIG_ESP_ROM_HAS_FLASH_COUNT_PAGES_BUG=y -CONFIG_ESP_ROM_HAS_CACHE_SUSPEND_WAITI_BUG=y -CONFIG_ESP_ROM_HAS_CACHE_WRITEBACK_BUG=y -CONFIG_ESP_ROM_HAS_SW_FLOAT=y -CONFIG_ESP_ROM_HAS_VERSION=y -CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y - -# -# Boot ROM Behavior -# -CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y -# CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set -# CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH is not set -# CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set -# end of Boot ROM Behavior - -# -# Serial flasher config -# -# CONFIG_ESPTOOLPY_NO_STUB is not set -# CONFIG_ESPTOOLPY_OCT_FLASH is not set -CONFIG_ESPTOOLPY_FLASH_MODE_AUTO_DETECT=y -CONFIG_ESPTOOLPY_FLASHMODE_QIO=y -# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -# CONFIG_ESPTOOLPY_FLASHMODE_DIO is not set -# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set -CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y -CONFIG_ESPTOOLPY_FLASHMODE="dio" -# CONFIG_ESPTOOLPY_FLASHFREQ_120M is not set -CONFIG_ESPTOOLPY_FLASHFREQ_80M=y -# CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set -# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set -CONFIG_ESPTOOLPY_FLASHFREQ_80M_DEFAULT=y -CONFIG_ESPTOOLPY_FLASHFREQ="80m" -# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="16MB" -# 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 - -# -# Xiaozhi Assistant -# -CONFIG_OTA_VERSION_URL="https://api.tenclass.net/xiaozhi/ota/" -CONFIG_WEBSOCKET_URL="wss://api.tenclass.net/xiaozhi/v1/" -CONFIG_WEBSOCKET_ACCESS_TOKEN="test-token" -CONFIG_AUDIO_INPUT_SAMPLE_RATE=24000 -CONFIG_AUDIO_OUTPUT_SAMPLE_RATE=24000 -CONFIG_AUDIO_CODEC_ES8311_ES7210=y -# CONFIG_AUDIO_CODEC_NONE is not set - -# -# Box Audio Codec I2C and PA Control -# -CONFIG_AUDIO_CODEC_I2C_SDA_PIN=39 -CONFIG_AUDIO_CODEC_I2C_SCL_PIN=38 -CONFIG_AUDIO_CODEC_PA_PIN=40 -CONFIG_AUDIO_CODEC_INPUT_REFERENCE=y -# end of Box Audio Codec I2C and PA Control - -# CONFIG_AUDIO_I2S_METHOD_SIMPLEX is not set -CONFIG_AUDIO_I2S_METHOD_DUPLEX=y - -# -# Audio I2S Duplex -# -CONFIG_AUDIO_DEVICE_I2S_GPIO_MCLK=0 -CONFIG_AUDIO_DEVICE_I2S_GPIO_LRCK=47 -CONFIG_AUDIO_DEVICE_I2S_GPIO_BCLK=48 -CONFIG_AUDIO_DEVICE_I2S_GPIO_DIN=45 -CONFIG_AUDIO_DEVICE_I2S_GPIO_DOUT=21 -# end of Audio I2S Duplex - -CONFIG_BOOT_BUTTON_GPIO=0 -CONFIG_VOLUME_UP_BUTTON_GPIO=6 -CONFIG_VOLUME_DOWN_BUTTON_GPIO=7 -CONFIG_USE_AFE_SR=y -CONFIG_USE_ML307=y -CONFIG_ML307_RX_PIN=17 -CONFIG_ML307_TX_PIN=16 -CONFIG_USE_DISPLAY=y -CONFIG_DISPLAY_HEIGHT=64 -CONFIG_DISPLAY_SDA_PIN=4 -CONFIG_DISPLAY_SCL_PIN=5 -# end of Xiaozhi Assistant - -# -# Builtin LED -# -CONFIG_BUILTIN_LED_GPIO=8 -# end of Builtin LED - -# -# ESP Speech Recognition -# -CONFIG_MODEL_IN_FLASH=y -# CONFIG_MODEL_IN_SDCARD is not set -CONFIG_USE_AFE=y -CONFIG_AFE_INTERFACE_V1=y -# CONFIG_USE_NSNET is not set -CONFIG_USE_WAKENET=y -# CONFIG_SR_WN_WN8_ALEXA is not set -# CONFIG_SR_WN_WN9_HILEXIN is not set -# CONFIG_SR_WN_WN9_XIAOAITONGXUE is not set -# CONFIG_SR_WN_WN9_ALEXA is not set -# CONFIG_SR_WN_WN9_HIESP is not set -# CONFIG_SR_WN_WN9_HIMFIVE is not set -CONFIG_SR_WN_WN9_NIHAOXIAOZHI_TTS=y -# CONFIG_SR_WN_WN9_JARVIS_TTS is not set -# CONFIG_SR_WN_WN9_COMPUTER_TTS is not set -# CONFIG_SR_WN_WN9_HEYWILLOW_TTS is not set -# CONFIG_SR_WN_WN9_SOPHIA_TTS is not set -# CONFIG_SR_WN_WN9_NIHAOXIAOXIN_TTS is not set -# CONFIG_SR_WN_WN9_XIAOMEITONGXUE_TTS is not set -# CONFIG_SR_WN_WN9_HIXIAOXING_TTS is not set -# CONFIG_SR_WN_WN9_MYCROFT_TTS is not set -# CONFIG_SR_WN_WN9_HEYPRINTER_TTS is not set -# CONFIG_SR_WN_WN9_XIAOLONGXIAOLONG_TTS is not set -# CONFIG_SR_WN_WN9_MIAOMIAOTONGXUE_TTS is not set -# CONFIG_SR_WN_WN9_HIJOY_TTS is not set -# CONFIG_SR_WN_WN9_HILILI_TTS is not set -# CONFIG_SR_WN_WN9_HITELLY_TTS is not set -# CONFIG_SR_WN_WN9_HEYWANDA_TTS is not set -# CONFIG_SR_WN_WN9_HIMIAOMIAO_TTS is not set -# CONFIG_SR_WN_WN9_XIAOBINXIAOBIN_TTS is not set -# CONFIG_SR_WN_WN9_ASTROLABE_TTS is not set -# CONFIG_SR_WN_WN9_CUSTOMWORD is not set -# CONFIG_SR_WN_LOAD_MULIT_WORD is not set -# CONFIG_USE_MULTINET is not set -# end of ESP Speech Recognition - -# -# Compiler options -# -CONFIG_COMPILER_OPTIMIZATION_DEBUG=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_DISABLE_GCC13_WARNINGS is not set -# CONFIG_COMPILER_DUMP_RTL_FILES is not set -CONFIG_COMPILER_RT_LIB_GCCLIB=y -CONFIG_COMPILER_RT_LIB_NAME="gcc" -# CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING is not set -CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y -# 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_USB_CDC 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 - -# -# Console Library -# -# CONFIG_CONSOLE_SORTED_HELP is not set -# end of Console Library - -# -# Driver Configurations -# - -# -# TWAI Configuration -# -# CONFIG_TWAI_ISR_IN_IRAM is not set -CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y -# end of TWAI Configuration - -# -# Legacy ADC Driver Configuration -# -# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set - -# -# Legacy ADC Calibration Configuration -# -# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy ADC Calibration Configuration -# end of Legacy ADC Driver Configuration - -# -# Legacy MCPWM Driver Configurations -# -# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy MCPWM Driver Configurations - -# -# Legacy Timer Group Driver Configurations -# -# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy Timer Group Driver Configurations - -# -# Legacy RMT Driver Configurations -# -# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy RMT Driver Configurations - -# -# Legacy I2S Driver Configurations -# -# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy I2S Driver Configurations - -# -# Legacy PCNT Driver Configurations -# -# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy PCNT Driver Configurations - -# -# Legacy SDM Driver Configurations -# -# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy SDM Driver Configurations - -# -# Legacy Temperature Sensor Driver Configurations -# -# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy Temperature Sensor Driver Configurations -# end of Driver Configurations - -# -# eFuse Bit Manager -# -# CONFIG_EFUSE_CUSTOM_TABLE is not set -# CONFIG_EFUSE_VIRTUAL is not set -CONFIG_EFUSE_MAX_BLK_LEN=256 -# end of eFuse Bit Manager - -# -# ESP-TLS -# -CONFIG_ESP_TLS_USING_MBEDTLS=y -CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y -# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set -# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL 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 -# CONFIG_ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 is not set -# CONFIG_ADC_ENABLE_DEBUG_LOG is not set -# end of ADC and ADC Calibration - -# -# Wireless Coexistence -# -CONFIG_ESP_COEX_ENABLED=y -# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set -# end of Wireless Coexistence - -# -# Common ESP-related -# -CONFIG_ESP_ERR_TO_NAME_LOOKUP=y -# end of Common ESP-related - -# -# ESP-Driver:GPIO Configurations -# -# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set -# end of ESP-Driver:GPIO Configurations - -# -# ESP-Driver:GPTimer Configurations -# -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_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:GPTimer Configurations - -# -# ESP-Driver:I2C Configurations -# -# CONFIG_I2C_ISR_IRAM_SAFE is not set -# CONFIG_I2C_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:I2C Configurations - -# -# ESP-Driver:I2S Configurations -# -# CONFIG_I2S_ISR_IRAM_SAFE is not set -# CONFIG_I2S_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:I2S Configurations - -# -# ESP-Driver:LEDC Configurations -# -# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set -# end of ESP-Driver:LEDC Configurations - -# -# ESP-Driver:MCPWM Configurations -# -# CONFIG_MCPWM_ISR_IRAM_SAFE is not set -# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set -# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:MCPWM Configurations - -# -# ESP-Driver:PCNT Configurations -# -# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set -# CONFIG_PCNT_ISR_IRAM_SAFE is not set -# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:PCNT Configurations - -# -# ESP-Driver:RMT Configurations -# -# CONFIG_RMT_ISR_IRAM_SAFE is not set -# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set -# CONFIG_RMT_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:RMT Configurations - -# -# ESP-Driver:Sigma Delta Modulator Configurations -# -# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set -# CONFIG_SDM_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:Sigma Delta Modulator Configurations - -# -# ESP-Driver:SPI Configurations -# -# 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 ESP-Driver:SPI Configurations - -# -# ESP-Driver:Temperature Sensor Configurations -# -# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:Temperature Sensor Configurations - -# -# ESP-Driver:UART Configurations -# -# CONFIG_UART_ISR_IN_IRAM is not set -# end of ESP-Driver:UART Configurations - -# -# ESP-Driver:USB Serial/JTAG Configuration -# -CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=y -# end of ESP-Driver:USB Serial/JTAG Configuration - -# -# Ethernet -# -CONFIG_ETH_ENABLED=y -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 -# -CONFIG_ESP_GDBSTUB_ENABLED=y -# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set -CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y -CONFIG_ESP_GDBSTUB_MAX_TASKS=32 -# 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 -# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set -# end of ESP HTTP client - -# -# HTTP Server -# -CONFIG_HTTPD_MAX_REQ_HDR_LEN=2048 -CONFIG_HTTPD_MAX_URI_LEN=2048 -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_ESP32S3_REV_MIN_0=y -# CONFIG_ESP32S3_REV_MIN_1 is not set -# CONFIG_ESP32S3_REV_MIN_2 is not set -CONFIG_ESP32S3_REV_MIN_FULL=0 -CONFIG_ESP_REV_MIN_FULL=0 - -# -# Maximum Supported ESP32-S3 Revision (Rev v0.99) -# -CONFIG_ESP32S3_REV_MAX_FULL=99 -CONFIG_ESP_REV_MAX_FULL=99 -# 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_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4 -# CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_TWO is not set -CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_FOUR=y -CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES=4 -# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set -# end of MAC Config - -# -# Sleep Config -# -CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y -CONFIG_ESP_SLEEP_PSRAM_LEAKAGE_WORKAROUND=y -CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU=y -CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y -CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y -CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 -# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set -# CONFIG_ESP_SLEEP_DEBUG is not set -CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y -# 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 - -# -# GDMA Configurations -# -CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y -# CONFIG_GDMA_ISR_IRAM_SAFE is not set -# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set -# end of GDMA Configurations - -# -# Main XTAL Config -# -CONFIG_XTAL_FREQ_40=y -CONFIG_XTAL_FREQ=40 -# end of Main XTAL Config - -CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y -# 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 -# CONFIG_LCD_RGB_ISR_IRAM_SAFE is not set -# CONFIG_LCD_RGB_RESTART_IN_VSYNC 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_ENABLED=y -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_USB=y -# 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_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y -CONFIG_PM_RESTORE_CACHE_TAGMEM_AFTER_LIGHT_SLEEP=y -# end of Power Management - -# -# ESP PSRAM -# -CONFIG_SPIRAM=y - -# -# SPI RAM config -# -# CONFIG_SPIRAM_MODE_QUAD is not set -CONFIG_SPIRAM_MODE_OCT=y -CONFIG_SPIRAM_TYPE_AUTO=y -# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set -CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y -CONFIG_SPIRAM_CLK_IO=30 -CONFIG_SPIRAM_CS_IO=26 -# CONFIG_SPIRAM_XIP_FROM_PSRAM is not set -# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set -# CONFIG_SPIRAM_RODATA is not set -CONFIG_SPIRAM_SPEED_80M=y -# CONFIG_SPIRAM_SPEED_40M is not set -CONFIG_SPIRAM_SPEED=80 -# CONFIG_SPIRAM_ECC_ENABLE is not set -CONFIG_SPIRAM_BOOT_INIT=y -# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set -# CONFIG_SPIRAM_USE_MEMMAP is not set -# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set -CONFIG_SPIRAM_USE_MALLOC=y -# CONFIG_SPIRAM_MEMTEST is not set -CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096 -CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y -CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768 -# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set -# end of SPI RAM config -# 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 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240 - -# -# Cache config -# -# CONFIG_ESP32S3_INSTRUCTION_CACHE_16KB is not set -CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB=y -CONFIG_ESP32S3_INSTRUCTION_CACHE_SIZE=0x8000 -# CONFIG_ESP32S3_INSTRUCTION_CACHE_4WAYS is not set -CONFIG_ESP32S3_INSTRUCTION_CACHE_8WAYS=y -CONFIG_ESP32S3_ICACHE_ASSOCIATED_WAYS=8 -CONFIG_ESP32S3_INSTRUCTION_CACHE_LINE_32B=y -CONFIG_ESP32S3_INSTRUCTION_CACHE_LINE_SIZE=32 -# CONFIG_ESP32S3_DATA_CACHE_16KB is not set -# CONFIG_ESP32S3_DATA_CACHE_32KB is not set -CONFIG_ESP32S3_DATA_CACHE_64KB=y -CONFIG_ESP32S3_DATA_CACHE_SIZE=0x10000 -# CONFIG_ESP32S3_DATA_CACHE_4WAYS is not set -CONFIG_ESP32S3_DATA_CACHE_8WAYS=y -CONFIG_ESP32S3_DCACHE_ASSOCIATED_WAYS=8 -# CONFIG_ESP32S3_DATA_CACHE_LINE_32B is not set -CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y -CONFIG_ESP32S3_DATA_CACHE_LINE_SIZE=64 -# end of Cache config - -# -# Memory -# -# CONFIG_ESP32S3_RTCDATA_IN_FAST_MEM is not set -# CONFIG_ESP32S3_USE_FIXED_STATIC_RAM_SIZE is not set -# end of Memory - -# -# Trace memory -# -# CONFIG_ESP32S3_TRAX is not set -CONFIG_ESP32S3_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_PANIC_REBOOT_DELAY_SECONDS=0 -CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y -CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y - -# -# Memory protection -# -CONFIG_ESP_SYSTEM_MEMPROT_FEATURE=y -CONFIG_ESP_SYSTEM_MEMPROT_FEATURE_LOCK=y -# 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_USB_CDC is not set -# CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG is not set -# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set -# CONFIG_ESP_CONSOLE_NONE is not set -# CONFIG_ESP_CONSOLE_SECONDARY_NONE is not set -CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y -CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y -CONFIG_ESP_CONSOLE_UART=y -CONFIG_ESP_CONSOLE_UART_NUM=0 -CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_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_4=y - -# -# Brownout Detector -# -CONFIG_ESP_BROWNOUT_DET=y -CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set -CONFIG_ESP_BROWNOUT_DET_LVL=7 -# end of Brownout Detector - -CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y -CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y -# end of ESP System Settings - -# -# IPC (Inter-Processor Call) -# -CONFIG_ESP_IPC_TASK_STACK_SIZE=1280 -CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y -CONFIG_ESP_IPC_ISR_ENABLE=y -# end of IPC (Inter-Processor Call) - -# -# ESP Timer (High Resolution 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_CPU0=y -# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set -CONFIG_ESP_TIMER_IMPL_SYSTIMER=y -# end of ESP Timer (High Resolution Timer) - -# -# Wi-Fi -# -CONFIG_ESP_WIFI_ENABLED=y -CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 -CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -CONFIG_ESP_WIFI_STATIC_TX_BUFFER=y -CONFIG_ESP_WIFI_TX_BUFFER_TYPE=0 -CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM=16 -CONFIG_ESP_WIFI_CACHE_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=16 -# CONFIG_ESP_WIFI_AMSDU_TX_ENABLED is not set -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_FTM_ENABLE is not set -CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y -# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set -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_MBEDTLS_CRYPTO=y -CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y -# CONFIG_ESP_WIFI_WAPI_PSK is not set -# CONFIG_ESP_WIFI_SUITE_B_192 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_ALLOC_PREFER_EXTRAM=y -# CONFIG_FATFS_USE_FASTSEEK is not set -CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 -# CONFIG_FATFS_IMMEDIATE_FSYNC is not set -# CONFIG_FATFS_USE_LABEL is not set -CONFIG_FATFS_LINK_LOCK=y -# 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_SERVICE_TASK_NAME="Tmr Svc" -# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set -# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU1 is not set -CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y -CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF -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=y -CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y -# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set -# CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID is not set -CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y -CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U32=y -# CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U64 is not set -# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG 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_TASK_PRE_DELETION_HOOK is not set -# 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_TICK_SUPPORT_SYSTIMER=y -CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y -# CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set -CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y -CONFIG_FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER=y -# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set -# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -# end of Port - -CONFIG_FREERTOS_PORT=y -CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF -CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y -CONFIG_FREERTOS_DEBUG_OCDAWARE=y -CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y -CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y -CONFIG_FREERTOS_NUMBER_OF_CORES=2 -# 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_WDT_USE_ROM_IMPL=y -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_TASK_TRACKING 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_MASTER_LEVEL is not set -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_ENABLE=y -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 -CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y -# 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_ACCEPTMBOX_SIZE=6 -CONFIG_LWIP_TCP_QUEUE_OOSEQ=y -CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 -CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=0 -# 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_WND_SCALE 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_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 -CONFIG_LWIP_SNTP_STARTUP_DELAY=y -CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 -# 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_IP6_INPUT_NONE=y -# CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT is not set -# 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 is not set -CONFIG_MBEDTLS_EXTERNAL_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_DEPRECATED_LIST 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_AES_USE_INTERRUPT=y -CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0 -CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y -CONFIG_MBEDTLS_HARDWARE_MPI=y -# CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set -CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y -CONFIG_MBEDTLS_MPI_INTERRUPT_LEVEL=0 -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_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=y -# 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 - -CONFIG_STDATOMIC_S32C1I_SPIRAM_WORKAROUND=y - -# -# NVS -# -# CONFIG_NVS_ENCRYPTION is not set -# CONFIG_NVS_ASSERT_ERROR_CHECK is not set -# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set -# end of NVS - -# -# OpenThread -# -# CONFIG_OPENTHREAD_ENABLED is not set - -# -# Thread Operational Dataset -# -CONFIG_OPENTHREAD_NETWORK_NAME="OpenThread-ESP" -CONFIG_OPENTHREAD_MESH_LOCAL_PREFIX="fd00:db8:a0:0::/64" -CONFIG_OPENTHREAD_NETWORK_CHANNEL=15 -CONFIG_OPENTHREAD_NETWORK_PANID=0x1234 -CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe" -CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff" -CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" -# end of Thread Operational Dataset - -CONFIG_OPENTHREAD_XTAL_ACCURACY=130 -# CONFIG_OPENTHREAD_SPINEL_ONLY is not set -CONFIG_OPENTHREAD_RX_ON_WHEN_IDLE=y - -# -# Thread Address Query Config -# -# end of Thread Address Query Config -# 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_HPM_ENA is not set -CONFIG_SPI_FLASH_HPM_AUTO=y -# CONFIG_SPI_FLASH_HPM_DIS is not set -CONFIG_SPI_FLASH_HPM_ON=y -CONFIG_SPI_FLASH_HPM_DC_AUTO=y -# CONFIG_SPI_FLASH_HPM_DC_DISABLE is not set -CONFIG_SPI_FLASH_SUSPEND_QVL_SUPPORTED=y -# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set -CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 -# 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_ROM_IMPL is not set -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_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_VENDOR_BOYA_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_TH_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=y -CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_MXIC_OPI_CHIP=y -# 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 - -# -# ULP Debugging Options -# -# end of ULP Debugging Options -# 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 - -# -# USB-OTG -# -CONFIG_USB_HOST_CONTROL_TRANSFER_MAX_SIZE=256 -CONFIG_USB_HOST_HW_BUFFER_BIAS_BALANCED=y -# CONFIG_USB_HOST_HW_BUFFER_BIAS_IN is not set -# CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT is not set - -# -# Root Hub configuration -# -CONFIG_USB_HOST_DEBOUNCE_DELAY_MS=250 -CONFIG_USB_HOST_RESET_HOLD_MS=30 -CONFIG_USB_HOST_RESET_RECOVERY_MS=30 -CONFIG_USB_HOST_SET_ADDR_RECOVERY_MS=10 -# end of Root Hub configuration - -# CONFIG_USB_HOST_ENABLE_ENUM_FILTER_CALLBACK is not set -CONFIG_USB_OTG_SUPPORTED=y -# end of USB-OTG - -# -# 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 - -# -# DSP Library -# -CONFIG_DSP_OPTIMIZATIONS_SUPPORTED=y -# CONFIG_DSP_ANSI is not set -CONFIG_DSP_OPTIMIZED=y -CONFIG_DSP_OPTIMIZATION=1 -# CONFIG_DSP_MAX_FFT_SIZE_512 is not set -# CONFIG_DSP_MAX_FFT_SIZE_1024 is not set -# CONFIG_DSP_MAX_FFT_SIZE_2048 is not set -CONFIG_DSP_MAX_FFT_SIZE_4096=y -# CONFIG_DSP_MAX_FFT_SIZE_8192 is not set -# CONFIG_DSP_MAX_FFT_SIZE_16384 is not set -# CONFIG_DSP_MAX_FFT_SIZE_32768 is not set -CONFIG_DSP_MAX_FFT_SIZE=4096 -# end of DSP Library - -# -# IoT Button -# -CONFIG_BUTTON_PERIOD_TIME_MS=5 -CONFIG_BUTTON_DEBOUNCE_TICKS=2 -CONFIG_BUTTON_SHORT_PRESS_TIME_MS=180 -CONFIG_BUTTON_LONG_PRESS_TIME_MS=1500 -CONFIG_BUTTON_LONG_PRESS_TOLERANCE_MS=20 -CONFIG_BUTTON_SERIAL_TIME_MS=20 -# CONFIG_GPIO_BUTTON_SUPPORT_POWER_SAVE is not set -CONFIG_ADC_BUTTON_MAX_CHANNEL=3 -CONFIG_ADC_BUTTON_MAX_BUTTON_PER_CHANNEL=8 -CONFIG_ADC_BUTTON_SAMPLE_TIMES=1 -# end of IoT Button - -# -# CMake Utilities -# -# CONFIG_CU_RELINKER_ENABLE is not set -# CONFIG_CU_DIAGNOSTICS_COLOR_NEVER is not set -CONFIG_CU_DIAGNOSTICS_COLOR_ALWAYS=y -# CONFIG_CU_DIAGNOSTICS_COLOR_AUTO is not set -# CONFIG_CU_GCC_LTO_ENABLE is not set -# CONFIG_CU_GCC_STRING_1BYTE_ALIGN is not set -# end of CMake Utilities - -# -# Audio Codec Device Configuration -# -CONFIG_CODEC_ES8311_SUPPORT=y -CONFIG_CODEC_ES7210_SUPPORT=y -CONFIG_CODEC_ES7243_SUPPORT=y -CONFIG_CODEC_ES7243E_SUPPORT=y -CONFIG_CODEC_ES8156_SUPPORT=y -CONFIG_CODEC_AW88298_SUPPORT=y -CONFIG_CODEC_ES8374_SUPPORT=y -CONFIG_CODEC_ES8388_SUPPORT=y -CONFIG_CODEC_TAS5805M_SUPPORT=y -# CONFIG_CODEC_ZL38063_SUPPORT is not set -# end of Audio Codec Device Configuration - -# -# LVGL configuration -# -CONFIG_LV_CONF_SKIP=y -# CONFIG_LV_CONF_MINIMAL is not set - -# -# Color settings -# -# CONFIG_LV_COLOR_DEPTH_32 is not set -CONFIG_LV_COLOR_DEPTH_16=y -# CONFIG_LV_COLOR_DEPTH_8 is not set -# CONFIG_LV_COLOR_DEPTH_1 is not set -CONFIG_LV_COLOR_DEPTH=16 -# CONFIG_LV_COLOR_16_SWAP is not set -# CONFIG_LV_COLOR_SCREEN_TRANSP is not set -CONFIG_LV_COLOR_MIX_ROUND_OFS=128 -CONFIG_LV_COLOR_CHROMA_KEY_HEX=0x00FF00 -# end of Color settings - -# -# Memory settings -# -# CONFIG_LV_MEM_CUSTOM is not set -CONFIG_LV_MEM_SIZE_KILOBYTES=32 -CONFIG_LV_MEM_ADDR=0x0 -CONFIG_LV_MEM_BUF_MAX_NUM=16 -# CONFIG_LV_MEMCPY_MEMSET_STD is not set -# end of Memory settings - -# -# HAL Settings -# -CONFIG_LV_DISP_DEF_REFR_PERIOD=30 -CONFIG_LV_INDEV_DEF_READ_PERIOD=30 -# CONFIG_LV_TICK_CUSTOM is not set -CONFIG_LV_DPI_DEF=130 -# end of HAL Settings - -# -# Feature configuration -# - -# -# Drawing -# -CONFIG_LV_DRAW_COMPLEX=y -CONFIG_LV_SHADOW_CACHE_SIZE=0 -CONFIG_LV_CIRCLE_CACHE_SIZE=4 -CONFIG_LV_LAYER_SIMPLE_BUF_SIZE=24576 -CONFIG_LV_IMG_CACHE_DEF_SIZE=0 -CONFIG_LV_GRADIENT_MAX_STOPS=2 -CONFIG_LV_GRAD_CACHE_DEF_SIZE=0 -# CONFIG_LV_DITHER_GRADIENT is not set -CONFIG_LV_DISP_ROT_MAX_BUF=10240 -# end of Drawing - -# -# GPU -# -# CONFIG_LV_USE_GPU_ARM2D is not set -# CONFIG_LV_USE_GPU_STM32_DMA2D is not set -# CONFIG_LV_USE_GPU_RA6M3_G2D is not set -# CONFIG_LV_USE_GPU_SWM341_DMA2D is not set -# CONFIG_LV_USE_GPU_NXP_PXP is not set -# CONFIG_LV_USE_GPU_NXP_VG_LITE is not set -# CONFIG_LV_USE_GPU_SDL is not set -# end of GPU - -# -# Logging -# -# CONFIG_LV_USE_LOG is not set -# end of Logging - -# -# Asserts -# -CONFIG_LV_USE_ASSERT_NULL=y -CONFIG_LV_USE_ASSERT_MALLOC=y -# CONFIG_LV_USE_ASSERT_STYLE is not set -# CONFIG_LV_USE_ASSERT_MEM_INTEGRITY is not set -# CONFIG_LV_USE_ASSERT_OBJ is not set -CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h" -# end of Asserts - -# -# Others -# -# CONFIG_LV_USE_PERF_MONITOR is not set -# CONFIG_LV_USE_MEM_MONITOR is not set -# CONFIG_LV_USE_REFR_DEBUG is not set -# CONFIG_LV_SPRINTF_CUSTOM is not set -# CONFIG_LV_SPRINTF_USE_FLOAT is not set -CONFIG_LV_USE_USER_DATA=y -# CONFIG_LV_ENABLE_GC is not set -# end of Others - -# -# Compiler settings -# -# CONFIG_LV_BIG_ENDIAN_SYSTEM is not set -CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE=1 -# CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM is not set -# CONFIG_LV_USE_LARGE_COORD is not set -# end of Compiler settings -# end of Feature configuration - -# -# Font usage -# - -# -# Enable built-in fonts -# -# CONFIG_LV_FONT_MONTSERRAT_8 is not set -# CONFIG_LV_FONT_MONTSERRAT_10 is not set -# CONFIG_LV_FONT_MONTSERRAT_12 is not set -CONFIG_LV_FONT_MONTSERRAT_14=y -# CONFIG_LV_FONT_MONTSERRAT_16 is not set -# CONFIG_LV_FONT_MONTSERRAT_18 is not set -# CONFIG_LV_FONT_MONTSERRAT_20 is not set -# CONFIG_LV_FONT_MONTSERRAT_22 is not set -# CONFIG_LV_FONT_MONTSERRAT_24 is not set -# CONFIG_LV_FONT_MONTSERRAT_26 is not set -# CONFIG_LV_FONT_MONTSERRAT_28 is not set -# CONFIG_LV_FONT_MONTSERRAT_30 is not set -# CONFIG_LV_FONT_MONTSERRAT_32 is not set -# CONFIG_LV_FONT_MONTSERRAT_34 is not set -# CONFIG_LV_FONT_MONTSERRAT_36 is not set -# CONFIG_LV_FONT_MONTSERRAT_38 is not set -# CONFIG_LV_FONT_MONTSERRAT_40 is not set -# CONFIG_LV_FONT_MONTSERRAT_42 is not set -# CONFIG_LV_FONT_MONTSERRAT_44 is not set -# CONFIG_LV_FONT_MONTSERRAT_46 is not set -# CONFIG_LV_FONT_MONTSERRAT_48 is not set -# CONFIG_LV_FONT_MONTSERRAT_12_SUBPX is not set -# CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED is not set -# CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set -# CONFIG_LV_FONT_SIMSUN_16_CJK is not set -# CONFIG_LV_FONT_UNSCII_8 is not set -# CONFIG_LV_FONT_UNSCII_16 is not set -# CONFIG_LV_FONT_CUSTOM is not set -# end of Enable built-in fonts - -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12 is not set -CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14=y -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12_SUBPX is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED is not set -# CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW is not set -# CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK is not set -# CONFIG_LV_FONT_DEFAULT_UNSCII_8 is not set -# CONFIG_LV_FONT_DEFAULT_UNSCII_16 is not set -# CONFIG_LV_FONT_FMT_TXT_LARGE is not set -# CONFIG_LV_USE_FONT_COMPRESSED is not set -# CONFIG_LV_USE_FONT_SUBPX is not set -CONFIG_LV_USE_FONT_PLACEHOLDER=y -# end of Font usage - -# -# Text Settings -# -CONFIG_LV_TXT_ENC_UTF8=y -# CONFIG_LV_TXT_ENC_ASCII is not set -CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_" -CONFIG_LV_TXT_LINE_BREAK_LONG_LEN=0 -CONFIG_LV_TXT_COLOR_CMD="#" -# CONFIG_LV_USE_BIDI is not set -# CONFIG_LV_USE_ARABIC_PERSIAN_CHARS is not set -# end of Text Settings - -# -# Widget usage -# -CONFIG_LV_USE_ARC=y -CONFIG_LV_USE_BAR=y -CONFIG_LV_USE_BTN=y -CONFIG_LV_USE_BTNMATRIX=y -CONFIG_LV_USE_CANVAS=y -CONFIG_LV_USE_CHECKBOX=y -CONFIG_LV_USE_DROPDOWN=y -CONFIG_LV_USE_IMG=y -CONFIG_LV_USE_LABEL=y -CONFIG_LV_LABEL_TEXT_SELECTION=y -CONFIG_LV_LABEL_LONG_TXT_HINT=y -CONFIG_LV_USE_LINE=y -CONFIG_LV_USE_ROLLER=y -CONFIG_LV_ROLLER_INF_PAGES=7 -CONFIG_LV_USE_SLIDER=y -CONFIG_LV_USE_SWITCH=y -CONFIG_LV_USE_TEXTAREA=y -CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME=1500 -CONFIG_LV_USE_TABLE=y -# end of Widget usage - -# -# Extra Widgets -# -CONFIG_LV_USE_ANIMIMG=y -CONFIG_LV_USE_CALENDAR=y -# CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY is not set -CONFIG_LV_USE_CALENDAR_HEADER_ARROW=y -CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN=y -CONFIG_LV_USE_CHART=y -CONFIG_LV_USE_COLORWHEEL=y -CONFIG_LV_USE_IMGBTN=y -CONFIG_LV_USE_KEYBOARD=y -CONFIG_LV_USE_LED=y -CONFIG_LV_USE_LIST=y -CONFIG_LV_USE_MENU=y -CONFIG_LV_USE_METER=y -CONFIG_LV_USE_MSGBOX=y -CONFIG_LV_USE_SPAN=y -CONFIG_LV_SPAN_SNIPPET_STACK_SIZE=64 -CONFIG_LV_USE_SPINBOX=y -CONFIG_LV_USE_SPINNER=y -CONFIG_LV_USE_TABVIEW=y -CONFIG_LV_USE_TILEVIEW=y -CONFIG_LV_USE_WIN=y -# end of Extra Widgets - -# -# Themes -# -CONFIG_LV_USE_THEME_DEFAULT=y -# CONFIG_LV_THEME_DEFAULT_DARK is not set -CONFIG_LV_THEME_DEFAULT_GROW=y -CONFIG_LV_THEME_DEFAULT_TRANSITION_TIME=80 -CONFIG_LV_USE_THEME_BASIC=y -# CONFIG_LV_USE_THEME_MONO is not set -# end of Themes - -# -# Layouts -# -CONFIG_LV_USE_FLEX=y -CONFIG_LV_USE_GRID=y -# end of Layouts - -# -# 3rd Party Libraries -# -# CONFIG_LV_USE_FS_STDIO is not set -# CONFIG_LV_USE_FS_POSIX is not set -# CONFIG_LV_USE_FS_WIN32 is not set -# CONFIG_LV_USE_FS_FATFS is not set -# CONFIG_LV_USE_FS_LITTLEFS is not set -# CONFIG_LV_USE_PNG is not set -# CONFIG_LV_USE_BMP is not set -# CONFIG_LV_USE_SJPG is not set -# CONFIG_LV_USE_GIF is not set -# CONFIG_LV_USE_QRCODE is not set -# CONFIG_LV_USE_FREETYPE is not set -# CONFIG_LV_USE_TINY_TTF is not set -# CONFIG_LV_USE_RLOTTIE is not set -# CONFIG_LV_USE_FFMPEG is not set -# end of 3rd Party Libraries - -# -# Others -# -CONFIG_LV_USE_SNAPSHOT=y -# CONFIG_LV_USE_MONKEY is not set -# CONFIG_LV_USE_GRIDNAV is not set -# CONFIG_LV_USE_FRAGMENT is not set -# CONFIG_LV_USE_IMGFONT is not set -# CONFIG_LV_USE_MSG is not set -# CONFIG_LV_USE_IME_PINYIN is not set -# end of Others - -# -# Examples -# -CONFIG_LV_BUILD_EXAMPLES=y -# end of Examples - -# -# Demos -# -# CONFIG_LV_USE_DEMO_WIDGETS is not set -# CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER is not set -# CONFIG_LV_USE_DEMO_BENCHMARK is not set -# CONFIG_LV_USE_DEMO_STRESS is not set -# CONFIG_LV_USE_DEMO_MUSIC is not set -# end of Demos -# end of LVGL configuration -# 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_LOG_BOOTLOADER_LEVEL_NONE=y -# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_INFO is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set -CONFIG_LOG_BOOTLOADER_LEVEL=0 -CONFIG_APP_ROLLBACK_ENABLE=y -# CONFIG_APP_ANTI_ROLLBACK is not set -# CONFIG_FLASH_ENCRYPTION_ENABLED is not set -CONFIG_FLASHMODE_QIO=y -# CONFIG_FLASHMODE_QOUT is not set -# CONFIG_FLASHMODE_DIO is not set -# CONFIG_FLASHMODE_DOUT is not set -CONFIG_MONITOR_BAUD=115200 -CONFIG_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_DEFAULT=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_EXTERNAL_COEX_ENABLE is not set -# CONFIG_ESP_WIFI_EXTERNAL_COEXIST_ENABLE is not set -# 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_GDBSTUB_SUPPORT_TASKS=y -CONFIG_GDBSTUB_MAX_TASKS=32 -# CONFIG_OTA_ALLOW_HTTP is not set -CONFIG_ESP32S3_DEEP_SLEEP_WAKEUP_DELAY=2000 -CONFIG_ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY=2000 -CONFIG_ESP32S3_RTC_CLK_SRC_INT_RC=y -# CONFIG_ESP32S3_RTC_CLK_SRC_EXT_CRYS is not set -# CONFIG_ESP32S3_RTC_CLK_SRC_EXT_OSC is not set -# CONFIG_ESP32S3_RTC_CLK_SRC_INT_8MD256 is not set -CONFIG_ESP32S3_RTC_CLK_CAL_CYCLES=1024 -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_ESP_SYSTEM_PM_POWER_DOWN_CPU=y -CONFIG_PM_POWER_DOWN_TAGMEM_IN_LIGHT_SLEEP=y -CONFIG_ESP32S3_SPIRAM_SUPPORT=y -CONFIG_DEFAULT_PSRAM_CLK_IO=30 -CONFIG_DEFAULT_PSRAM_CS_IO=26 -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80 is not set -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=240 -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_ESP32S3_DEBUG_OCDAWARE=y -CONFIG_BROWNOUT_DET=y -CONFIG_ESP32S3_BROWNOUT_DET=y -CONFIG_ESP32S3_BROWNOUT_DET=y -CONFIG_BROWNOUT_DET_LVL_SEL_7=y -CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_7=y -# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set -# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_1 is not set -CONFIG_BROWNOUT_DET_LVL=7 -CONFIG_ESP32S3_BROWNOUT_DET_LVL=7 -CONFIG_IPC_TASK_STACK_SIZE=1280 -CONFIG_TIMER_TASK_STACK_SIZE=3584 -CONFIG_ESP32_WIFI_ENABLED=y -CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=16 -CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y -CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0 -CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16 -CONFIG_ESP32_WIFI_CACHE_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=16 -CONFIG_ESP32_WIFI_RX_BA_WIN=16 -# CONFIG_ESP32_WIFI_AMSDU_TX_ENABLED is not set -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_SUITE_B_192 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_ESP32S3_TIME_SYSCALL_USE_RTC_SYSTIMER=y -CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC_FRC1=y -# CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC is not set -# CONFIG_ESP32S3_TIME_SYSCALL_USE_SYSTIMER is not set -# CONFIG_ESP32S3_TIME_SYSCALL_USE_FRC1 is not set -# CONFIG_ESP32S3_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_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_SUPPORT_TERMIOS=y -CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -# End of deprecated options diff --git a/versions.py b/versions.py index 95782981..b68e11fa 100644 --- a/versions.py +++ b/versions.py @@ -57,7 +57,7 @@ def get_board_name(folder): basename = os.path.basename(folder) if basename.startswith("v0.2"): return "simple" - if basename.startswith("v0.3") or basename.startswith("v0.4"): + if basename.startswith("v0.3") or basename.startswith("v0.4") or basename.startswith("v0.5"): if "ML307" in basename: return "compact.4g" else: