From f3434c53068a8b565ea7cb4b2b00cf3a5ec71e36 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 5 Sep 2025 00:33:32 +0200 Subject: [PATCH 01/30] test --- main/openiris_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/openiris_main.cpp b/main/openiris_main.cpp index fdc49f5..02ba394 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -21,7 +21,7 @@ #include #include #include - +test #ifdef CONFIG_GENERAL_DEFAULT_WIRED_MODE #include #endif From d73958530a2eac9f8cf89bc98246137e6ce8474a Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 5 Sep 2025 00:33:46 +0200 Subject: [PATCH 02/30] removed test --- main/openiris_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/openiris_main.cpp b/main/openiris_main.cpp index 02ba394..fdc49f5 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -21,7 +21,7 @@ #include #include #include -test + #ifdef CONFIG_GENERAL_DEFAULT_WIRED_MODE #include #endif From 83d7805e9ec4290f1969bc64ebd8265b23fe84f6 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 5 Sep 2025 01:08:11 +0200 Subject: [PATCH 03/30] - Updated README to reflect changes in device mode terminology from "Auto" to "Setup". - Changed configuration macros from CONFIG_GENERAL_DEFAULT_WIRED_MODE to CONFIG_GENERAL_INCLUDE_UVC_MODE across multiple files. - Introduced new command for retrieving LED current in CommandManager. - Added MonitoringManager and CurrentMonitor classes to handle LED current monitoring. - Updated Kconfig to include options for LED current monitoring. - Modified main application logic to integrate MonitoringManager and handle new device modes. - Adjusted CMakeLists and source files to include new monitoring components. --- README.md | 2 +- bootloader_components/boot_hooks.c | 2 +- .../CameraManager/CameraManager.cpp | 4 +- components/CommandManager/CMakeLists.txt | 2 +- .../CommandManager/CommandManager.cpp | 4 + .../CommandManager/CommandManager.hpp | 1 + .../CommandManager/DependencyRegistry.hpp | 3 +- .../commands/device_commands.cpp | 25 ++- .../commands/device_commands.hpp | 5 +- components/Monitoring/CMakeLists.txt | 6 + .../Monitoring/Monitoring/CurrentMonitor.cpp | 179 ++++++++++++++++++ .../Monitoring/Monitoring/CurrentMonitor.hpp | 45 +++++ .../Monitoring/MonitoringManager.cpp | 58 ++++++ .../Monitoring/MonitoringManager.hpp | 26 +++ .../ProjectConfig/ProjectConfig/Models.hpp | 12 +- components/UVCStream/UVCStream/UVCStream.cpp | 2 +- main/Kconfig.projbuild | 52 ++++- main/openiris_main.cpp | 23 ++- sdkconfig | 69 ++++--- sdkconfig.base_defaults | 2 +- sdkconfig.board.facefocusvr_eye | 2 +- sdkconfig.board.facefocusvr_face | 2 +- sdkconfig.board.project_babble | 2 +- sdkconfig.board.xiao-esp32s3 | 2 +- tools/openiris_setup.py | 35 +++- 25 files changed, 499 insertions(+), 66 deletions(-) create mode 100644 components/Monitoring/CMakeLists.txt create mode 100644 components/Monitoring/Monitoring/CurrentMonitor.cpp create mode 100644 components/Monitoring/Monitoring/CurrentMonitor.hpp create mode 100644 components/Monitoring/Monitoring/MonitoringManager.cpp create mode 100644 components/Monitoring/Monitoring/MonitoringManager.hpp diff --git a/README.md b/README.md index ac8bbb3..b286a96 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ Examples: What the CLI can do: - Wi‑Fi menu: automatic (scan → pick → password → connect → wait for IP) or manual (scan, show, configure, connect, status) - Set MDNS/Device name (also used for the UVC device name) -- Switch mode (Wi‑Fi / UVC / Auto) +- Switch mode (Wi‑Fi / UVC / Setup) - Adjust LED PWM - Show a Settings Summary (MAC, Wi‑Fi status, mode, PWM, …) - View logs diff --git a/bootloader_components/boot_hooks.c b/bootloader_components/boot_hooks.c index c0d7cc2..8f00ddb 100644 --- a/bootloader_components/boot_hooks.c +++ b/bootloader_components/boot_hooks.c @@ -1,6 +1,6 @@ // source: https://github.com/espressif/esp-iot-solution/blob/4730d91db70df7e6e0a3191d725ab1c5f98ff9ce/examples/usb/device/usb_webcam/bootloader_components/boot_hooks/boot_hooks.c -#ifdef CONFIG_GENERAL_DEFAULT_WIRED_MODE +#ifdef CONFIG_GENERAL_INCLUDE_UVC_MODE #include "esp_log.h" #include "soc/rtc_cntl_struct.h" #include "soc/usb_serial_jtag_reg.h" diff --git a/components/CameraManager/CameraManager/CameraManager.cpp b/components/CameraManager/CameraManager/CameraManager.cpp index 26bd8b5..6efdb3e 100644 --- a/components/CameraManager/CameraManager/CameraManager.cpp +++ b/components/CameraManager/CameraManager/CameraManager.cpp @@ -48,7 +48,7 @@ void CameraManager::setupCameraPinout() ESP_LOGI(CAMERA_MANAGER_TAG, "CAM_BOARD"); #endif -#if CONFIG_GENERAL_DEFAULT_WIRED_MODE +#if CONFIG_GENERAL_INCLUDE_UVC_MODE xclk_freq_hz = CONFIG_CAMERA_USB_XCLK_FREQ; #endif @@ -196,7 +196,7 @@ bool CameraManager::setupCamera() return false; } -#if CONFIG_GENERAL_DEFAULT_WIRED_MODE +#if CONFIG_GENERAL_INCLUDE_UVC_MODE const auto temp_sensor = esp_camera_sensor_get(); // Thanks to lick_it, we discovered that OV5640 likes to overheat when diff --git a/components/CommandManager/CMakeLists.txt b/components/CommandManager/CMakeLists.txt index e4b61ca..dc8ed4e 100644 --- a/components/CommandManager/CMakeLists.txt +++ b/components/CommandManager/CMakeLists.txt @@ -11,5 +11,5 @@ idf_component_register( INCLUDE_DIRS "CommandManager" "CommandManager/commands" - REQUIRES ProjectConfig cJSON CameraManager OpenIrisTasks wifiManager Helpers LEDManager + REQUIRES ProjectConfig cJSON CameraManager OpenIrisTasks wifiManager Helpers LEDManager Monitoring ) \ No newline at end of file diff --git a/components/CommandManager/CommandManager/CommandManager.cpp b/components/CommandManager/CommandManager/CommandManager.cpp index 9787d3d..4ffed9d 100644 --- a/components/CommandManager/CommandManager/CommandManager.cpp +++ b/components/CommandManager/CommandManager/CommandManager.cpp @@ -26,6 +26,7 @@ std::unordered_map commandTypeMap = { {"set_led_duty_cycle", CommandType::SET_LED_DUTY_CYCLE}, {"get_led_duty_cycle", CommandType::GET_LED_DUTY_CYCLE}, {"get_serial", CommandType::GET_SERIAL}, + {"get_led_current", CommandType::GET_LED_CURRENT}, }; std::function CommandManager::createCommand(const CommandType type, std::string_view json) const @@ -103,6 +104,9 @@ std::function CommandManager::createCommand(const CommandType t case CommandType::GET_SERIAL: return [this] { return getSerialNumberCommand(this->registry); }; + case CommandType::GET_LED_CURRENT: + return [this] + { return getLEDCurrentCommand(this->registry); }; default: return nullptr; } diff --git a/components/CommandManager/CommandManager/CommandManager.hpp b/components/CommandManager/CommandManager/CommandManager.hpp index a4fde07..9a5fd7d 100644 --- a/components/CommandManager/CommandManager/CommandManager.hpp +++ b/components/CommandManager/CommandManager/CommandManager.hpp @@ -47,6 +47,7 @@ enum class CommandType SET_LED_DUTY_CYCLE, GET_LED_DUTY_CYCLE, GET_SERIAL, + GET_LED_CURRENT, }; class CommandManager diff --git a/components/CommandManager/CommandManager/DependencyRegistry.hpp b/components/CommandManager/CommandManager/DependencyRegistry.hpp index b0758dd..28d3df4 100644 --- a/components/CommandManager/CommandManager/DependencyRegistry.hpp +++ b/components/CommandManager/CommandManager/DependencyRegistry.hpp @@ -9,7 +9,8 @@ enum class DependencyType project_config, camera_manager, wifi_manager, - led_manager + led_manager, + monitoring_manager }; class DependencyRegistry diff --git a/components/CommandManager/CommandManager/commands/device_commands.cpp b/components/CommandManager/CommandManager/commands/device_commands.cpp index ac9e294..751af1d 100644 --- a/components/CommandManager/CommandManager/commands/device_commands.cpp +++ b/components/CommandManager/CommandManager/commands/device_commands.cpp @@ -1,5 +1,6 @@ #include "device_commands.hpp" #include "LEDManager.hpp" +#include "MonitoringManager.hpp" #include "esp_mac.h" #include @@ -171,9 +172,9 @@ CommandResult switchModeCommand(std::shared_ptr registry, st { newMode = StreamingMode::WIFI; } - else if (strcmp(modeStr, "auto") == 0) + else if (strcmp(modeStr, "setup") == 0 || strcmp(modeStr, "auto") == 0) { - newMode = StreamingMode::AUTO; + newMode = StreamingMode::SETUP; } else { @@ -203,8 +204,8 @@ CommandResult getDeviceModeCommand(std::shared_ptr registry) case StreamingMode::WIFI: modeStr = "WiFi"; break; - case StreamingMode::AUTO: - modeStr = "Auto"; + case StreamingMode::SETUP: + modeStr = "Setup"; break; } @@ -231,3 +232,19 @@ CommandResult getSerialNumberCommand(std::shared_ptr /*regis auto result = std::format("{{ \"serial\": \"{}\", \"mac\": \"{}\" }}", serial_no_sep, mac_colon); return CommandResult::getSuccessResult(result); } + +CommandResult getLEDCurrentCommand(std::shared_ptr registry) +{ +#if CONFIG_MONITORING_LED_CURRENT + auto mon = registry->resolve(DependencyType::monitoring_manager); + if (!mon) + { + return CommandResult::getErrorResult("MonitoringManager unavailable"); + } + float ma = mon->getCurrentMilliAmps(); + auto result = std::format("{{ \"led_current_ma\": {:.3f} }}", static_cast(ma)); + return CommandResult::getSuccessResult(result); +#else + return CommandResult::getErrorResult("Monitoring disabled"); +#endif +} diff --git a/components/CommandManager/CommandManager/commands/device_commands.hpp b/components/CommandManager/CommandManager/commands/device_commands.hpp index 06e7751..a01798d 100644 --- a/components/CommandManager/CommandManager/commands/device_commands.hpp +++ b/components/CommandManager/CommandManager/commands/device_commands.hpp @@ -22,4 +22,7 @@ CommandResult switchModeCommand(std::shared_ptr registry, st CommandResult getDeviceModeCommand(std::shared_ptr registry); -CommandResult getSerialNumberCommand(std::shared_ptr registry); \ No newline at end of file +CommandResult getSerialNumberCommand(std::shared_ptr registry); + +// Monitoring +CommandResult getLEDCurrentCommand(std::shared_ptr registry); \ No newline at end of file diff --git a/components/Monitoring/CMakeLists.txt b/components/Monitoring/CMakeLists.txt new file mode 100644 index 0000000..fd6f78f --- /dev/null +++ b/components/Monitoring/CMakeLists.txt @@ -0,0 +1,6 @@ +idf_component_register(SRCS + "Monitoring/CurrentMonitor.cpp" + "Monitoring/MonitoringManager.cpp" + INCLUDE_DIRS "Monitoring" + REQUIRES driver esp_adc Helpers +) diff --git a/components/Monitoring/Monitoring/CurrentMonitor.cpp b/components/Monitoring/Monitoring/CurrentMonitor.cpp new file mode 100644 index 0000000..024d767 --- /dev/null +++ b/components/Monitoring/Monitoring/CurrentMonitor.cpp @@ -0,0 +1,179 @@ +#include "CurrentMonitor.hpp" +#include +#include + +#if CONFIG_MONITORING_LED_CURRENT +#include "esp_adc/adc_oneshot.h" +#include "esp_adc/adc_cali.h" +#include "esp_adc/adc_cali_scheme.h" +#endif + +static const char *TAG_CM = "[CurrentMonitor]"; + +CurrentMonitor::CurrentMonitor() +{ +#if CONFIG_MONITORING_LED_CURRENT + samples_.assign(CONFIG_MONITORING_LED_SAMPLES, 0); +#endif +} + +void CurrentMonitor::setup() +{ +#if CONFIG_MONITORING_LED_CURRENT + init_adc(); +#else + ESP_LOGI(TAG_CM, "LED current monitoring disabled"); +#endif +} + +float CurrentMonitor::getCurrentMilliAmps() const +{ +#if CONFIG_MONITORING_LED_CURRENT + const int shunt_milliohm = CONFIG_MONITORING_LED_SHUNT_MILLIOHM; // mΩ + if (shunt_milliohm <= 0) + return 0.0f; + // Physically correct scaling: + // I[mA] = 1000 * Vshunt[mV] / R[mΩ] + return (1000.0f * static_cast(filtered_mv_)) / static_cast(shunt_milliohm); +#else + return 0.0f; +#endif +} + +float CurrentMonitor::pollAndGetMilliAmps() +{ + sampleOnce(); + return getCurrentMilliAmps(); +} + +void CurrentMonitor::sampleOnce() +{ +#if CONFIG_MONITORING_LED_CURRENT + int mv = read_mv_once(); + // Divide by analog gain/divider factor to get shunt voltage + if (CONFIG_MONITORING_LED_GAIN > 0) + mv = mv / CONFIG_MONITORING_LED_GAIN; + + // Moving average over N samples + if (samples_.empty()) + { + samples_.assign(CONFIG_MONITORING_LED_SAMPLES, 0); + sample_sum_ = 0; + sample_idx_ = 0; + sample_count_ = 0; + } + + sample_sum_ -= samples_[sample_idx_]; + samples_[sample_idx_] = mv; + sample_sum_ += mv; + sample_idx_ = (sample_idx_ + 1) % samples_.size(); + if (sample_count_ < samples_.size()) + sample_count_++; + + filtered_mv_ = sample_sum_ / static_cast(sample_count_ > 0 ? sample_count_ : 1); +#else + (void)0; +#endif +} + +#if CONFIG_MONITORING_LED_CURRENT + +static adc_oneshot_unit_handle_t s_adc_handle = nullptr; +static adc_cali_handle_t s_cali_handle = nullptr; +static bool s_cali_inited = false; +static adc_channel_t s_channel; +static adc_unit_t s_unit; + +void CurrentMonitor::init_adc() +{ + // Derive ADC unit/channel from GPIO + int gpio = CONFIG_MONITORING_LED_ADC_GPIO; + + esp_err_t err; + adc_oneshot_unit_init_cfg_t unit_cfg = { + .unit_id = ADC_UNIT_1, + }; + err = adc_oneshot_new_unit(&unit_cfg, &s_adc_handle); + if (err != ESP_OK) + { + ESP_LOGE(TAG_CM, "adc_oneshot_new_unit failed: %s", esp_err_to_name(err)); + return; + } + + // Try to map GPIO to ADC channel automatically if helper exists; otherwise guess for ESP32-S3 ADC1 +#ifdef ADC1_GPIO1_CHANNEL + (void)0; // placeholder for potential future macros +#endif + + // Use IO-to-channel helper where available +#ifdef CONFIG_IDF_TARGET_ESP32S3 + // ESP32-S3: ADC1 channels on GPIO1..GPIO10 map to CH0..CH9 + if (gpio >= 1 && gpio <= 10) + { + s_unit = ADC_UNIT_1; + s_channel = static_cast(gpio - 1); + } + else + { + ESP_LOGW(TAG_CM, "Configured GPIO %d may not be ADC-capable on ESP32-S3", gpio); + s_unit = ADC_UNIT_1; + s_channel = ADC_CHANNEL_0; + } +#else + // Fallback: assume ADC1 CH0 + s_unit = ADC_UNIT_1; + s_channel = ADC_CHANNEL_0; +#endif + + adc_oneshot_chan_cfg_t chan_cfg = { + .atten = ADC_ATTEN_DB_11, + .bitwidth = ADC_BITWIDTH_DEFAULT, + }; + err = adc_oneshot_config_channel(s_adc_handle, s_channel, &chan_cfg); + if (err != ESP_OK) + { + ESP_LOGE(TAG_CM, "adc_oneshot_config_channel failed: %s", esp_err_to_name(err)); + } + + // Calibration using curve fitting if available + adc_cali_curve_fitting_config_t cal_cfg = { + .unit_id = s_unit, + .atten = chan_cfg.atten, + .bitwidth = chan_cfg.bitwidth, + }; + if (adc_cali_create_scheme_curve_fitting(&cal_cfg, &s_cali_handle) == ESP_OK) + { + s_cali_inited = true; + ESP_LOGI(TAG_CM, "ADC calibration initialized (curve fitting)"); + } + else + { + s_cali_inited = false; + ESP_LOGW(TAG_CM, "ADC calibration not available; using raw-to-mV approximation"); + } +} + +int CurrentMonitor::read_mv_once() +{ + if (!s_adc_handle) + return 0; + int raw = 0; + if (adc_oneshot_read(s_adc_handle, s_channel, &raw) != ESP_OK) + return 0; + + int mv = 0; + if (s_cali_inited) + { + if (adc_cali_raw_to_voltage(s_cali_handle, raw, &mv) != ESP_OK) + mv = 0; + } + else + { + // Very rough fallback for 11dB attenuation + // Typical full-scale ~2450mV at raw max 4095 (12-bit). IDF defaults may vary. + mv = (raw * 2450) / 4095; + } + return mv; +} + +#endif // CONFIG_MONITORING_LED_CURRENT diff --git a/components/Monitoring/Monitoring/CurrentMonitor.hpp b/components/Monitoring/Monitoring/CurrentMonitor.hpp new file mode 100644 index 0000000..3285f4e --- /dev/null +++ b/components/Monitoring/Monitoring/CurrentMonitor.hpp @@ -0,0 +1,45 @@ +#pragma once +#include +#include +#include +#include "sdkconfig.h" + +class CurrentMonitor { +public: + CurrentMonitor(); + ~CurrentMonitor() = default; + + void setup(); + void sampleOnce(); + + // Returns filtered voltage in millivolts at shunt (after dividing by gain) + int getFilteredMillivolts() const { return filtered_mv_; } + // Returns current in milliamps computed as Vshunt[mV] / R[mΩ] + float getCurrentMilliAmps() const; + + // convenience: combined sampling and compute; returns mA + float pollAndGetMilliAmps(); + + // Whether monitoring is enabled by Kconfig + static constexpr bool isEnabled() + { + #ifdef CONFIG_MONITORING_LED_CURRENT + return true; + #else + return false; + #endif + } + +private: +#if CONFIG_MONITORING_LED_CURRENT + void init_adc(); + int read_mv_once(); + int gpio_to_adc_channel(int gpio); +#endif + + int filtered_mv_ = 0; + int sample_sum_ = 0; + std::vector samples_; + size_t sample_idx_ = 0; + size_t sample_count_ = 0; +}; diff --git a/components/Monitoring/Monitoring/MonitoringManager.cpp b/components/Monitoring/Monitoring/MonitoringManager.cpp new file mode 100644 index 0000000..1a371b5 --- /dev/null +++ b/components/Monitoring/Monitoring/MonitoringManager.cpp @@ -0,0 +1,58 @@ +#include "MonitoringManager.hpp" +#include +#include "sdkconfig.h" + +static const char* TAG_MM = "[MonitoringManager]"; + +void MonitoringManager::setup() +{ +#if CONFIG_MONITORING_LED_CURRENT + cm_.setup(); + ESP_LOGI(TAG_MM, "Monitoring enabled. Interval=%dms, Samples=%d, Gain=%d, R=%dmΩ", + CONFIG_MONITORING_LED_INTERVAL_MS, + CONFIG_MONITORING_LED_SAMPLES, + CONFIG_MONITORING_LED_GAIN, + CONFIG_MONITORING_LED_SHUNT_MILLIOHM); +#else + ESP_LOGI(TAG_MM, "Monitoring disabled by Kconfig"); +#endif +} + +void MonitoringManager::start() +{ +#if CONFIG_MONITORING_LED_CURRENT + if (task_ == nullptr) + { + xTaskCreate(&MonitoringManager::taskEntry, "MonitoringTask", 2048, this, 1, &task_); + } +#endif +} + +void MonitoringManager::stop() +{ + if (task_) + { + TaskHandle_t toDelete = task_; + task_ = nullptr; + vTaskDelete(toDelete); + } +} + +void MonitoringManager::taskEntry(void* arg) +{ + static_cast(arg)->run(); +} + +void MonitoringManager::run() +{ +#if CONFIG_MONITORING_LED_CURRENT + while (true) + { + float ma = cm_.pollAndGetMilliAmps(); + last_current_ma_.store(ma); + vTaskDelay(pdMS_TO_TICKS(CONFIG_MONITORING_LED_INTERVAL_MS)); + } +#else + vTaskDelete(nullptr); +#endif +} diff --git a/components/Monitoring/Monitoring/MonitoringManager.hpp b/components/Monitoring/Monitoring/MonitoringManager.hpp new file mode 100644 index 0000000..6b96688 --- /dev/null +++ b/components/Monitoring/Monitoring/MonitoringManager.hpp @@ -0,0 +1,26 @@ +#pragma once +#include +#include +#include +#include "CurrentMonitor.hpp" + +class MonitoringManager { +public: + MonitoringManager() = default; + ~MonitoringManager() = default; + + void setup(); + void start(); + void stop(); + + // Latest filtered current in mA + float getCurrentMilliAmps() const { return last_current_ma_.load(); } + +private: + static void taskEntry(void* arg); + void run(); + + TaskHandle_t task_{nullptr}; + std::atomic last_current_ma_{0.0f}; + CurrentMonitor cm_; +}; diff --git a/components/ProjectConfig/ProjectConfig/Models.hpp b/components/ProjectConfig/ProjectConfig/Models.hpp index e400f14..9261ade 100644 --- a/components/ProjectConfig/ProjectConfig/Models.hpp +++ b/components/ProjectConfig/ProjectConfig/Models.hpp @@ -23,7 +23,7 @@ struct BaseConfigModel enum class StreamingMode { - AUTO, + SETUP, UVC, WIFI, }; @@ -31,18 +31,18 @@ enum class StreamingMode struct DeviceMode_t : BaseConfigModel { StreamingMode mode; - explicit DeviceMode_t(Preferences *pref) : BaseConfigModel(pref), mode(StreamingMode::AUTO) {} + explicit DeviceMode_t(Preferences *pref) : BaseConfigModel(pref), mode(StreamingMode::SETUP) {} void load() { - // Default mode can be controlled via sdkconfig: - // - If CONFIG_START_IN_UVC_MODE is enabled, default to UVC - // - Otherwise default to AUTO + // Default mode can be controlled via sdkconfig: + // - If CONFIG_START_IN_UVC_MODE is enabled, default to UVC + // - Otherwise default to SETUP int default_mode = #if CONFIG_START_IN_UVC_MODE static_cast(StreamingMode::UVC); #else - static_cast(StreamingMode::AUTO); + static_cast(StreamingMode::SETUP); #endif int stored_mode = this->pref->getInt("mode", default_mode); diff --git a/components/UVCStream/UVCStream/UVCStream.cpp b/components/UVCStream/UVCStream/UVCStream.cpp index 473fc1e..4fcc853 100644 --- a/components/UVCStream/UVCStream/UVCStream.cpp +++ b/components/UVCStream/UVCStream/UVCStream.cpp @@ -159,7 +159,7 @@ static void UVCStreamHelpers::camera_fb_return_cb(uvc_fb_t *fb, void *cb_ctx) esp_err_t UVCStreamManager::setup() { -#ifndef CONFIG_GENERAL_DEFAULT_WIRED_MODE +#ifndef CONFIG_GENERAL_INCLUDE_UVC_MODE ESP_LOGE(UVC_STREAM_TAG, "The board does not support UVC, please, setup WiFi connection."); return ESP_FAIL; #endif diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 0fcf058..1528c3f 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -15,7 +15,7 @@ menu "OpenIris: General Configuration" When enabled, the default device streaming mode will be UVC unless overridden by a saved preference. When disabled, the default mode is AUTO. - config GENERAL_DEFAULT_WIRED_MODE + config GENERAL_INCLUDE_UVC_MODE bool "Wired mode" default false help @@ -114,4 +114,54 @@ menu "OpenIris: LED Configuration" Duty cycle of the PWM signal for external IR LEDs, in percent. 0 means always off, 100 means always on. +endmenu + +menu "OpenIris: Monitoring" + + config MONITORING_LED_CURRENT + bool "Enable LED current monitoring" + default y + help + Enable sampling LED current via ADC and report it over commands. + + config MONITORING_LED_ADC_GPIO + int "ADC GPIO for LED current sense" + depends on MONITORING_LED_CURRENT + range 0 48 + default 3 + help + GPIO connected to the current sense input (ADC1 on ESP32-S3: 1..10 supported). + + config MONITORING_LED_GAIN + int "Analog front-end gain/divider" + depends on MONITORING_LED_CURRENT + range 1 1024 + default 11 + help + Divider or amplifier gain between shunt and ADC. The measured mV are divided by this value. + + config MONITORING_LED_SHUNT_MILLIOHM + int "Shunt resistance (milli-ohms)" + depends on MONITORING_LED_CURRENT + range 1 1000000 + default 22000 + help + Shunt resistor value in milli-ohms. Current[mA] = 1000 * Vshunt[mV] / R[mΩ]. + + config MONITORING_LED_SAMPLES + int "Filter window size (samples)" + depends on MONITORING_LED_CURRENT + range 1 200 + default 10 + help + Moving-average window length for voltage filtering. + + config MONITORING_LED_INTERVAL_MS + int "Sampling interval (ms)" + depends on MONITORING_LED_CURRENT + range 10 60000 + default 500 + help + Period between samples when background monitoring is active. + endmenu \ No newline at end of file diff --git a/main/openiris_main.cpp b/main/openiris_main.cpp index fdc49f5..5daefa4 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -21,8 +21,9 @@ #include #include #include +#include -#ifdef CONFIG_GENERAL_DEFAULT_WIRED_MODE +#ifdef CONFIG_GENERAL_INCLUDE_UVC_MODE #include #endif @@ -52,12 +53,13 @@ StreamServer streamServer(80, stateManager); auto *restAPI = new RestAPI("http://0.0.0.0:81", commandManager); -#ifdef CONFIG_GENERAL_DEFAULT_WIRED_MODE +#ifdef CONFIG_GENERAL_INCLUDE_UVC_MODE UVCStreamManager uvcStream; #endif auto ledManager = std::make_shared(BLINK_GPIO, CONFIG_LED_C_PIN_GPIO, ledStateQueue, deviceConfig); auto *serialManager = new SerialManager(commandManager, &timerHandle, deviceConfig); +MonitoringManager monitoringManager; void startWiFiMode(bool shouldCloseSerialManager); void startWiredMode(bool shouldCloseSerialManager); @@ -81,14 +83,14 @@ int websocket_logger(const char *format, va_list args) void launch_streaming() { - // Note, when switching and later right away activating UVC mode when we were previously in WiFi or Auto mode, the WiFi + // Note, when switching and later right away activating UVC mode when we were previously in WiFi or Setup mode, the WiFi // utilities will still be running since we've launched them with startAutoMode() -> startWiFiMode() // we could add detection of this case, but it's probably not worth it since the next start of the device literally won't launch them // and we're telling folks to just reboot the device anyway // same case goes for when switching from UVC to WiFi StreamingMode deviceMode = deviceConfig->getDeviceMode(); - // if we've changed the mode from auto to something else, we can clean up serial manager + // if we've changed the mode from setup to something else, we can clean up serial manager // either the API endpoints or CDC will take care of further configuration if (deviceMode == StreamingMode::WIFI) { @@ -98,10 +100,10 @@ void launch_streaming() { startWiredMode(true); } - else if (deviceMode == StreamingMode::AUTO) + else if (deviceMode == StreamingMode::SETUP) { - // we're still in auto, the user didn't select anything yet, let's give a bit of time for them to make a choice - ESP_LOGI("[MAIN]", "No mode was selected, staying in AUTO mode. WiFi streaming will be enabled still. \nPlease select another mode if you'd like."); + // we're still in setup, the user didn't select anything yet, let's give a bit of time for them to make a choice + ESP_LOGI("[MAIN]", "No mode was selected, staying in SETUP mode. WiFi streaming will be enabled still. \nPlease select another mode if you'd like."); } else { @@ -150,7 +152,7 @@ void force_activate_streaming() void startWiredMode(bool shouldCloseSerialManager) { -#ifndef CONFIG_GENERAL_DEFAULT_WIRED_MODE +#ifndef CONFIG_GENERAL_INCLUDE_UVC_MODE ESP_LOGE("[MAIN]", "UVC mode selected but the board likely does not support it."); ESP_LOGI("[MAIN]", "Falling back to WiFi mode if credentials available"); deviceMode = StreamingMode::WIFI; @@ -220,7 +222,7 @@ void startWiFiMode(bool shouldCloseSerialManager) void startSetupMode() { - // If we're in an auto mode - Device starts with a 20-second delay before deciding on what to do + // If we're in SETUP mode - Device starts with a 20-second delay before deciding on what to do // during this time we await any commands ESP_LOGI("[MAIN]", "====================================="); ESP_LOGI("[MAIN]", "STARTUP: 20-SECOND DELAY MODE ACTIVE"); @@ -247,6 +249,7 @@ extern "C" void app_main(void) dependencyRegistry->registerService(DependencyType::camera_manager, cameraHandler); dependencyRegistry->registerService(DependencyType::wifi_manager, wifiManager); dependencyRegistry->registerService(DependencyType::led_manager, ledManager); + dependencyRegistry->registerService(DependencyType::monitoring_manager, std::shared_ptr(&monitoringManager, [](MonitoringManager*){})); // add endpoint to check firmware version // add firmware version somewhere @@ -259,6 +262,8 @@ extern "C" void app_main(void) initNVSStorage(); deviceConfig->load(); ledManager->setup(); + monitoringManager.setup(); + monitoringManager.start(); xTaskCreate( HandleStateManagerTask, diff --git a/sdkconfig b/sdkconfig index acaf9ba..53c6bce 100644 --- a/sdkconfig +++ b/sdkconfig @@ -514,9 +514,9 @@ CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y # 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_QIO is not set # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -# CONFIG_ESPTOOLPY_FLASHMODE_DIO is not set +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y # CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y CONFIG_ESPTOOLPY_FLASHMODE="dio" @@ -527,13 +527,13 @@ CONFIG_ESPTOOLPY_FLASHFREQ_80M=y CONFIG_ESPTOOLPY_FLASHFREQ="80m" # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set +CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y # CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="4MB" +CONFIG_ESPTOOLPY_FLASHSIZE="8MB" # CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set CONFIG_ESPTOOLPY_BEFORE_RESET=y # CONFIG_ESPTOOLPY_BEFORE_NORESET is not set @@ -571,7 +571,7 @@ CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 # OpenIris: General Configuration # # CONFIG_START_IN_UVC_MODE is not set -CONFIG_GENERAL_DEFAULT_WIRED_MODE=y +CONFIG_GENERAL_INCLUDE_UVC_MODE=y CONFIG_GENERAL_UVC_DELAY=30 # end of OpenIris: General Configuration @@ -596,32 +596,43 @@ CONFIG_WIFI_AP_PASSWORD="12345678" # OpenIris: LED Configuration # CONFIG_LED_BLINK_GPIO=8 -CONFIG_LED_EXTERNAL_GPIO=1 +CONFIG_LED_EXTERNAL_GPIO=9 CONFIG_LED_EXTERNAL_CONTROL=y -CONFIG_LED_EXTERNAL_PWM_FREQ=5000 +CONFIG_LED_EXTERNAL_PWM_FREQ=20000 CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 # end of OpenIris: LED Configuration +# +# OpenIris: Monitoring +# +CONFIG_MONITORING_LED_CURRENT=y +CONFIG_MONITORING_LED_ADC_GPIO=3 +CONFIG_MONITORING_LED_GAIN=11 +CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 +CONFIG_MONITORING_LED_SAMPLES=10 +CONFIG_MONITORING_LED_INTERVAL_MS=500 +# end of OpenIris: Monitoring + # # Camera sensor pinout configuration # -CONFIG_CAMERA_MODULE_NAME="SWROOM_BABBLE_S3" +CONFIG_CAMERA_MODULE_NAME="FaceFocusVR_Face" CONFIG_PWDN_GPIO_NUM=-1 CONFIG_RESET_GPIO_NUM=-1 -CONFIG_XCLK_GPIO_NUM=4 -CONFIG_SIOD_GPIO_NUM=48 -CONFIG_SIOC_GPIO_NUM=47 -CONFIG_Y9_GPIO_NUM=13 -CONFIG_Y8_GPIO_NUM=5 -CONFIG_Y7_GPIO_NUM=6 -CONFIG_Y6_GPIO_NUM=15 -CONFIG_Y5_GPIO_NUM=17 -CONFIG_Y4_GPIO_NUM=8 -CONFIG_Y3_GPIO_NUM=18 -CONFIG_Y2_GPIO_NUM=16 -CONFIG_VSYNC_GPIO_NUM=21 -CONFIG_HREF_GPIO_NUM=14 -CONFIG_PCLK_GPIO_NUM=7 +CONFIG_XCLK_GPIO_NUM=10 +CONFIG_SIOD_GPIO_NUM=40 +CONFIG_SIOC_GPIO_NUM=39 +CONFIG_Y9_GPIO_NUM=48 +CONFIG_Y8_GPIO_NUM=11 +CONFIG_Y7_GPIO_NUM=12 +CONFIG_Y6_GPIO_NUM=14 +CONFIG_Y5_GPIO_NUM=16 +CONFIG_Y4_GPIO_NUM=18 +CONFIG_Y3_GPIO_NUM=17 +CONFIG_Y2_GPIO_NUM=15 +CONFIG_VSYNC_GPIO_NUM=38 +CONFIG_HREF_GPIO_NUM=47 +CONFIG_PCLK_GPIO_NUM=13 # end of Camera sensor pinout configuration # @@ -1156,21 +1167,19 @@ CONFIG_SPIRAM=y # # SPI RAM config # -CONFIG_SPIRAM_MODE_QUAD=y -# CONFIG_SPIRAM_MODE_OCT is not set +# CONFIG_SPIRAM_MODE_QUAD is not set +CONFIG_SPIRAM_MODE_OCT=y CONFIG_SPIRAM_TYPE_AUTO=y -# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set -# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set # CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set 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_120M 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_PRE_CONFIGURE_MEMORY_PROTECTION=y # CONFIG_SPIRAM_IGNORE_NOTFOUND is not set @@ -2387,9 +2396,9 @@ CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y CONFIG_LOG_BOOTLOADER_LEVEL=3 # CONFIG_APP_ROLLBACK_ENABLE is not set # CONFIG_FLASH_ENCRYPTION_ENABLED is not set -CONFIG_FLASHMODE_QIO=y +# CONFIG_FLASHMODE_QIO is not set # CONFIG_FLASHMODE_QOUT is not set -# CONFIG_FLASHMODE_DIO is not set +CONFIG_FLASHMODE_DIO=y # CONFIG_FLASHMODE_DOUT is not set CONFIG_MONITOR_BAUD=115200 # CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set diff --git a/sdkconfig.base_defaults b/sdkconfig.base_defaults index 11c4cab..b84c892 100644 --- a/sdkconfig.base_defaults +++ b/sdkconfig.base_defaults @@ -570,7 +570,7 @@ CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 # # OpenIris: General Configuration # -# CONFIG_GENERAL_DEFAULT_WIRED_MODE is not set +# CONFIG_GENERAL_INCLUDE_UVC_MODE is not set # CONFIG_START_IN_UVC_MODE is not set # CONFIG_GENERAL_UVC_DELAY is not set # end of OpenIris: General Configuration diff --git a/sdkconfig.board.facefocusvr_eye b/sdkconfig.board.facefocusvr_eye index e4a0abd..5cca0bf 100644 --- a/sdkconfig.board.facefocusvr_eye +++ b/sdkconfig.board.facefocusvr_eye @@ -59,5 +59,5 @@ CONFIG_LED_EXTERNAL_GPIO=9 CONFIG_LED_EXTERNAL_PWM_FREQ=20000 CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=50 CONFIG_CAMERA_USB_XCLK_FREQ=23000000 -CONFIG_GENERAL_DEFAULT_WIRED_MODE=y +CONFIG_GENERAL_INCLUDE_UVC_MODE=y CONFIG_START_IN_UVC_MODE=y \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face index 2769e22..891ff96 100644 --- a/sdkconfig.board.facefocusvr_face +++ b/sdkconfig.board.facefocusvr_face @@ -59,5 +59,5 @@ CONFIG_LED_EXTERNAL_GPIO=9 CONFIG_LED_EXTERNAL_PWM_FREQ=20000 CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 CONFIG_CAMERA_USB_XCLK_FREQ=23000000 -CONFIG_GENERAL_DEFAULT_WIRED_MODE=y +CONFIG_GENERAL_INCLUDE_UVC_MODE=y CONFIG_START_IN_UVC_MODE=y \ No newline at end of file diff --git a/sdkconfig.board.project_babble b/sdkconfig.board.project_babble index 7be1b7d..3eade99 100644 --- a/sdkconfig.board.project_babble +++ b/sdkconfig.board.project_babble @@ -51,5 +51,5 @@ CONFIG_LED_EXTERNAL_PWM_FREQ=5000 CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 CONFIG_LED_EXTERNAL_GPIO=1 CONFIG_CAMERA_USB_XCLK_FREQ=23000000 -CONFIG_GENERAL_DEFAULT_WIRED_MODE=y +CONFIG_GENERAL_INCLUDE_UVC_MODE=y # CONFIG_START_IN_UVC_MODE is not set \ No newline at end of file diff --git a/sdkconfig.board.xiao-esp32s3 b/sdkconfig.board.xiao-esp32s3 index 703f771..b3f7fb1 100644 --- a/sdkconfig.board.xiao-esp32s3 +++ b/sdkconfig.board.xiao-esp32s3 @@ -56,5 +56,5 @@ CONFIG_SPIRAM_SPEED=80 CONFIG_SPIRAM_SPEED_80M=y # CONFIG_LED_EXTERNAL_CONTROL is not set CONFIG_CAMERA_USB_XCLK_FREQ=23000000 -CONFIG_GENERAL_DEFAULT_WIRED_MODE=y +CONFIG_GENERAL_INCLUDE_UVC_MODE=y # CONFIG_START_IN_UVC_MODE is not set \ No newline at end of file diff --git a/tools/openiris_setup.py b/tools/openiris_setup.py index 30b6ff8..c6a0380 100644 --- a/tools/openiris_setup.py +++ b/tools/openiris_setup.py @@ -378,7 +378,7 @@ class OpenIrisDevice: return True def switch_mode(self, mode: str) -> bool: - """Switch device mode between WiFi, UVC, and Auto""" + """Switch device mode between WiFi, UVC, and Setup""" print(f"🔄 Switching device mode to '{mode}'...") params = {"mode": mode} @@ -906,7 +906,7 @@ def switch_device_mode(device: OpenIrisDevice, args = None): print("\n🔄 Select new device mode:") print("1. WiFi - Stream over WiFi connection") print("2. UVC - Stream as USB webcam") - print("3. Auto - Automatic mode selection") + print("3. Setup - Configuration mode") mode_choice = input("\nSelect mode (1-3): ").strip() @@ -915,7 +915,7 @@ def switch_device_mode(device: OpenIrisDevice, args = None): elif mode_choice == "2": device.switch_mode("uvc") elif mode_choice == "3": - device.switch_mode("auto") + device.switch_mode("setup") else: print("❌ Invalid mode selection") @@ -980,6 +980,23 @@ def _probe_led_pwm(device: OpenIrisDevice) -> Dict: duty = device.get_led_duty_cycle() return {"led_external_pwm_duty_cycle": duty} +def _probe_led_current(device: OpenIrisDevice) -> Dict: + # Query device for current in mA via new command + resp = device.send_command("get_led_current") + if "error" in resp: + return {"led_current_ma": None, "error": resp["error"]} + try: + results = resp.get("results", []) + if results: + result_data = json.loads(results[0]) + payload = result_data["result"] + if isinstance(payload, str): + payload = json.loads(payload) + return {"led_current_ma": float(payload.get("led_current_ma"))} + except Exception as e: + return {"led_current_ma": None, "error": str(e)} + return {"led_current_ma": None} + def _probe_mode(device: OpenIrisDevice) -> Dict: mode = device.get_device_mode() @@ -998,6 +1015,7 @@ def get_settings(device: OpenIrisDevice, args=None): probes = [ ("Identity", _probe_serial), ("LED", _probe_led_pwm), + ("Current", _probe_led_current), ("Mode", _probe_mode), ("WiFi", _probe_wifi_status), ] @@ -1035,6 +1053,17 @@ def get_settings(device: OpenIrisDevice, args=None): mode = summary.get("Mode", {}).get("mode") print(f"🎚️ Mode: {mode if mode else 'unknown'}") + # Current + current = summary.get("Current", {}).get("led_current_ma") + if current is not None: + print(f"🔌 LED Current: {current:.3f} mA") + else: + err = summary.get("Current", {}).get("error") + if err: + print(f"🔌 LED Current: unavailable ({err})") + else: + print("🔌 LED Current: unavailable") + # WiFi wifi = summary.get("WiFi", {}).get("wifi_status", {}) if wifi: From e4881ef5a0ab10ce98359cbb95a8a85a54f14c4b Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 5 Sep 2025 01:40:51 +0200 Subject: [PATCH 04/30] Refactor configuration settings: rename UVC delay to startup delay, add enable wireless option, and update LED GPIO configuration --- main/Kconfig.projbuild | 16 ++++++++++++---- main/openiris_main.cpp | 25 +++++++++++++++++-------- sdkconfig | 5 +++-- sdkconfig.base_defaults | 4 ++-- 4 files changed, 34 insertions(+), 16 deletions(-) diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 1528c3f..86e0f5b 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -23,13 +23,21 @@ menu "OpenIris: General Configuration" default device streaming mode will be UVC unless overridden by a saved preference. When disabled, the default mode is AUTO. - config GENERAL_UVC_DELAY + config GENERAL_STARTUP_DELAY int "UVC delay (s)" default 30 range 10 10000 help Delay in seconds before the ESP reports itself as a UVC device. + config GENERAL_ENABLE_WIRELESS + bool "Enable wireless (WiFi/Bluetooth)" + default y + help + When disabled, the firmware will not start WiFi or related services (mDNS/REST), + and any Bluetooth memory (if present on the SoC) should be left released. This can + reduce power consumption when operating solely in UVC mode or without networking. + endmenu menu "OpenIris: Camera Configuration" @@ -76,12 +84,12 @@ endmenu menu "OpenIris: LED Configuration" - config LED_BLINK_GPIO - int "Blink GPIO number" + config LED_DEBUG_GPIO + int "Debug LED GPIO number" range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX default 8 help - GPIO number (IOxx) used to blink an onboard LED. + GPIO number (IOxx) used to drive an onboard debug/status LED. Some GPIOs are reserved for other functions (e.g. flash) and cannot be used. config LED_EXTERNAL_GPIO diff --git a/main/openiris_main.cpp b/main/openiris_main.cpp index 5daefa4..729fe51 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -7,6 +7,7 @@ #include "esp_log.h" #include "sdkconfig.h" #include "nvs_flash.h" +#include "esp_wifi.h" #include #include @@ -27,7 +28,7 @@ #include #endif -#define BLINK_GPIO (gpio_num_t) CONFIG_LED_BLINK_GPIO +#define BLINK_GPIO (gpio_num_t) CONFIG_LED_DEBUG_GPIO #define CONFIG_LED_C_PIN_GPIO (gpio_num_t) CONFIG_LED_EXTERNAL_GPIO TaskHandle_t serialManagerHandle; @@ -206,7 +207,7 @@ void startWiFiMode(bool shouldCloseSerialManager) ESP_LOGI("[MAIN]", "Closing serial manager task."); vTaskDelete(serialManagerHandle); } - +#ifdef CONFIG_GENERAL_ENABLE_WIRELESS wifiManager->Begin(); mdnsManager.start(); restAPI->begin(); @@ -218,16 +219,20 @@ void startWiFiMode(bool shouldCloseSerialManager) restAPI, 1, // it's the rest API, we only serve commands over it so we don't really need a higher priority nullptr); +#else + ESP_LOGW("[MAIN]", "Wireless is disabled by configuration; skipping WiFi/mDNS/REST startup."); +#endif } void startSetupMode() { // If we're in SETUP mode - Device starts with a 20-second delay before deciding on what to do // during this time we await any commands + const int startup_delay_s = CONFIG_GENERAL_STARTUP_DELAY; ESP_LOGI("[MAIN]", "====================================="); - ESP_LOGI("[MAIN]", "STARTUP: 20-SECOND DELAY MODE ACTIVE"); + ESP_LOGI("[MAIN]", "STARTUP: %d-SECOND DELAY MODE ACTIVE", startup_delay_s); ESP_LOGI("[MAIN]", "====================================="); - ESP_LOGI("[MAIN]", "Device will wait 20 seconds for commands..."); + ESP_LOGI("[MAIN]", "Device will wait %d seconds for commands...", startup_delay_s); // Create a one-shot timer for 20 seconds const esp_timer_create_args_t startup_timer_args = { @@ -238,16 +243,19 @@ void startSetupMode() .skip_unhandled_events = false}; ESP_ERROR_CHECK(esp_timer_create(&startup_timer_args, &timerHandle)); - ESP_ERROR_CHECK(esp_timer_start_once(timerHandle, CONFIG_GENERAL_UVC_DELAY * 1000000)); - ESP_LOGI("[MAIN]", "Started 20-second startup timer"); - ESP_LOGI("[MAIN]", "Send any command within 20 seconds to enter heartbeat mode"); + ESP_ERROR_CHECK(esp_timer_start_once(timerHandle, (uint64_t)startup_delay_s * 1000000)); + ESP_LOGI("[MAIN]", "Started %d-second startup timer", startup_delay_s); + ESP_LOGI("[MAIN]", "Send any command within %d seconds to enter heartbeat mode", startup_delay_s); } extern "C" void app_main(void) { dependencyRegistry->registerService(DependencyType::project_config, deviceConfig); dependencyRegistry->registerService(DependencyType::camera_manager, cameraHandler); + // Register WiFiManager only when wireless is enabled to avoid exposing WiFi commands in no-wireless builds +#ifdef CONFIG_GENERAL_ENABLE_WIRELESS dependencyRegistry->registerService(DependencyType::wifi_manager, wifiManager); +#endif dependencyRegistry->registerService(DependencyType::led_manager, ledManager); dependencyRegistry->registerService(DependencyType::monitoring_manager, std::shared_ptr(&monitoringManager, [](MonitoringManager*){})); @@ -314,7 +322,8 @@ extern "C" void app_main(void) { // since we're in setup mode, we have to have wireless functionality on, // so we can do wifi scanning, test connection etc - startWiFiMode(false); + // if wireless is disabled by configuration, we will not start WiFi services here + startWiFiMode(false); startSetupMode(); } } \ No newline at end of file diff --git a/sdkconfig b/sdkconfig index 53c6bce..7e7ffdb 100644 --- a/sdkconfig +++ b/sdkconfig @@ -572,7 +572,8 @@ CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 # # CONFIG_START_IN_UVC_MODE is not set CONFIG_GENERAL_INCLUDE_UVC_MODE=y -CONFIG_GENERAL_UVC_DELAY=30 +CONFIG_GENERAL_STARTUP_DELAY=30 +CONFIG_GENERAL_ENABLE_WIRELESS=y # end of OpenIris: General Configuration # @@ -595,7 +596,7 @@ CONFIG_WIFI_AP_PASSWORD="12345678" # # OpenIris: LED Configuration # -CONFIG_LED_BLINK_GPIO=8 +CONFIG_LED_DEBUG_GPIO=8 CONFIG_LED_EXTERNAL_GPIO=9 CONFIG_LED_EXTERNAL_CONTROL=y CONFIG_LED_EXTERNAL_PWM_FREQ=20000 diff --git a/sdkconfig.base_defaults b/sdkconfig.base_defaults index b84c892..4271bcb 100644 --- a/sdkconfig.base_defaults +++ b/sdkconfig.base_defaults @@ -572,7 +572,7 @@ CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 # # CONFIG_GENERAL_INCLUDE_UVC_MODE is not set # CONFIG_START_IN_UVC_MODE is not set -# CONFIG_GENERAL_UVC_DELAY is not set +# CONFIG_GENERAL_STARTUP_DELAY is not set # end of OpenIris: General Configuration # @@ -595,7 +595,7 @@ CONFIG_WIFI_AP_PASSWORD="12345678" # # OpenIris: LED Configuration # -CONFIG_LED_BLINK_GPIO=8 +CONFIG_LED_DEBUG_GPIO=8 CONFIG_LED_EXTERNAL_GPIO=1 CONFIG_LED_EXTERNAL_CONTROL=y CONFIG_LED_EXTERNAL_PWM_FREQ=5000 From 93b2f7f23f8b350aabc1687052fadbd0d8cb0d33 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 5 Sep 2025 17:47:04 +0200 Subject: [PATCH 05/30] Add 'get_who_am_i' command and related configurations for device identification --- .../CommandManager/CommandManager.cpp | 6 +++- .../CommandManager/CommandManager.hpp | 1 + .../commands/device_commands.cpp | 11 ++++++++ .../commands/device_commands.hpp | 5 +++- main/Kconfig.projbuild | 12 ++++++++ sdkconfig | 2 ++ sdkconfig.base_defaults | 1 + sdkconfig.board.facefocusvr_eye | 9 +++++- sdkconfig.board.facefocusvr_face | 9 +++++- sdkconfig.board.project_babble | 4 ++- ...ao-esp32s3 => sdkconfig.board.xiao_esp32s3 | 4 ++- tools/openiris_setup.py | 28 ++++++++++++++++++- 12 files changed, 85 insertions(+), 7 deletions(-) rename sdkconfig.board.xiao-esp32s3 => sdkconfig.board.xiao_esp32s3 (94%) diff --git a/components/CommandManager/CommandManager/CommandManager.cpp b/components/CommandManager/CommandManager/CommandManager.cpp index 4ffed9d..ca1b68d 100644 --- a/components/CommandManager/CommandManager/CommandManager.cpp +++ b/components/CommandManager/CommandManager/CommandManager.cpp @@ -26,7 +26,8 @@ std::unordered_map commandTypeMap = { {"set_led_duty_cycle", CommandType::SET_LED_DUTY_CYCLE}, {"get_led_duty_cycle", CommandType::GET_LED_DUTY_CYCLE}, {"get_serial", CommandType::GET_SERIAL}, - {"get_led_current", CommandType::GET_LED_CURRENT}, + {"get_led_current", CommandType::GET_LED_CURRENT}, + {"get_who_am_i", CommandType::GET_WHO_AM_I}, }; std::function CommandManager::createCommand(const CommandType type, std::string_view json) const @@ -107,6 +108,9 @@ std::function CommandManager::createCommand(const CommandType t case CommandType::GET_LED_CURRENT: return [this] { return getLEDCurrentCommand(this->registry); }; + case CommandType::GET_WHO_AM_I: + return [this] + { return getInfoCommand(this->registry); }; default: return nullptr; } diff --git a/components/CommandManager/CommandManager/CommandManager.hpp b/components/CommandManager/CommandManager/CommandManager.hpp index 9a5fd7d..9e8886a 100644 --- a/components/CommandManager/CommandManager/CommandManager.hpp +++ b/components/CommandManager/CommandManager/CommandManager.hpp @@ -48,6 +48,7 @@ enum class CommandType GET_LED_DUTY_CYCLE, GET_SERIAL, GET_LED_CURRENT, + GET_WHO_AM_I, }; class CommandManager diff --git a/components/CommandManager/CommandManager/commands/device_commands.cpp b/components/CommandManager/CommandManager/commands/device_commands.cpp index 751af1d..e0b2a2d 100644 --- a/components/CommandManager/CommandManager/commands/device_commands.cpp +++ b/components/CommandManager/CommandManager/commands/device_commands.cpp @@ -248,3 +248,14 @@ CommandResult getLEDCurrentCommand(std::shared_ptr registry) return CommandResult::getErrorResult("Monitoring disabled"); #endif } + +CommandResult getInfoCommand(std::shared_ptr /*registry*/) +{ + const char* who = CONFIG_GENERAL_WHO_AM_I; + const char* ver = CONFIG_GENERAL_Version; + // Ensure non-null strings + if (!who) who = ""; + if (!ver) ver = ""; + auto result = std::format("{{ \"who_am_i\": \"{}\", \"version\": \"{}\" }}", who, ver); + return CommandResult::getSuccessResult(result); +} diff --git a/components/CommandManager/CommandManager/commands/device_commands.hpp b/components/CommandManager/CommandManager/commands/device_commands.hpp index a01798d..e744af5 100644 --- a/components/CommandManager/CommandManager/commands/device_commands.hpp +++ b/components/CommandManager/CommandManager/commands/device_commands.hpp @@ -25,4 +25,7 @@ CommandResult getDeviceModeCommand(std::shared_ptr registry) CommandResult getSerialNumberCommand(std::shared_ptr registry); // Monitoring -CommandResult getLEDCurrentCommand(std::shared_ptr registry); \ No newline at end of file +CommandResult getLEDCurrentCommand(std::shared_ptr registry); + +// General info +CommandResult getInfoCommand(std::shared_ptr registry); \ No newline at end of file diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 86e0f5b..92946c4 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -38,6 +38,18 @@ menu "OpenIris: General Configuration" and any Bluetooth memory (if present on the SoC) should be left released. This can reduce power consumption when operating solely in UVC mode or without networking. + config GENERAL_WHO_AM_I + string "Who am I (device identifier)" + default "OpenIris" + help + A human-readable product or device identifier exposed via the get_info command. + + config GENERAL_Version + string "Firmware version" + default "0.0.0" + help + A firmware version string exposed via the get_info command. + endmenu menu "OpenIris: Camera Configuration" diff --git a/sdkconfig b/sdkconfig index 7e7ffdb..7c8f979 100644 --- a/sdkconfig +++ b/sdkconfig @@ -574,6 +574,8 @@ CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 CONFIG_GENERAL_INCLUDE_UVC_MODE=y CONFIG_GENERAL_STARTUP_DELAY=30 CONFIG_GENERAL_ENABLE_WIRELESS=y +CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" +CONFIG_GENERAL_Version="0.0.1" # end of OpenIris: General Configuration # diff --git a/sdkconfig.base_defaults b/sdkconfig.base_defaults index 4271bcb..f108e34 100644 --- a/sdkconfig.base_defaults +++ b/sdkconfig.base_defaults @@ -573,6 +573,7 @@ CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 # CONFIG_GENERAL_INCLUDE_UVC_MODE is not set # CONFIG_START_IN_UVC_MODE is not set # CONFIG_GENERAL_STARTUP_DELAY is not set +CONFIG_GENERAL_Version="0.0.1" # end of OpenIris: General Configuration # diff --git a/sdkconfig.board.facefocusvr_eye b/sdkconfig.board.facefocusvr_eye index 5cca0bf..c7dad68 100644 --- a/sdkconfig.board.facefocusvr_eye +++ b/sdkconfig.board.facefocusvr_eye @@ -60,4 +60,11 @@ CONFIG_LED_EXTERNAL_PWM_FREQ=20000 CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=50 CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y -CONFIG_START_IN_UVC_MODE=y \ No newline at end of file +CONFIG_START_IN_UVC_MODE=y +CONFIG_MONITORING_LED_CURRENT=y +CONFIG_MONITORING_LED_ADC_GPIO=3 +CONFIG_MONITORING_LED_GAIN=11 +CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 +CONFIG_MONITORING_LED_SAMPLES=10 +CONFIG_MONITORING_LED_INTERVAL_MS=500 +CONFIG_GENERAL_WHO_AM_I="facefocusvr_eye" \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face index 891ff96..e129199 100644 --- a/sdkconfig.board.facefocusvr_face +++ b/sdkconfig.board.facefocusvr_face @@ -60,4 +60,11 @@ CONFIG_LED_EXTERNAL_PWM_FREQ=20000 CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y -CONFIG_START_IN_UVC_MODE=y \ No newline at end of file +CONFIG_START_IN_UVC_MODE=y +CONFIG_MONITORING_LED_CURRENT=y +CONFIG_MONITORING_LED_ADC_GPIO=3 +CONFIG_MONITORING_LED_GAIN=11 +CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 +CONFIG_MONITORING_LED_SAMPLES=10 +CONFIG_MONITORING_LED_INTERVAL_MS=500 +CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" \ No newline at end of file diff --git a/sdkconfig.board.project_babble b/sdkconfig.board.project_babble index 3eade99..60efadd 100644 --- a/sdkconfig.board.project_babble +++ b/sdkconfig.board.project_babble @@ -52,4 +52,6 @@ CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 CONFIG_LED_EXTERNAL_GPIO=1 CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y -# CONFIG_START_IN_UVC_MODE is not set \ No newline at end of file +# CONFIG_START_IN_UVC_MODE is not set +# CONFIG_MONITORING_LED_CURRENT is not set +CONFIG_GENERAL_WHO_AM_I="project_babble" \ No newline at end of file diff --git a/sdkconfig.board.xiao-esp32s3 b/sdkconfig.board.xiao_esp32s3 similarity index 94% rename from sdkconfig.board.xiao-esp32s3 rename to sdkconfig.board.xiao_esp32s3 index b3f7fb1..802d196 100644 --- a/sdkconfig.board.xiao-esp32s3 +++ b/sdkconfig.board.xiao_esp32s3 @@ -57,4 +57,6 @@ CONFIG_SPIRAM_SPEED_80M=y # CONFIG_LED_EXTERNAL_CONTROL is not set CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y -# CONFIG_START_IN_UVC_MODE is not set \ No newline at end of file +# CONFIG_START_IN_UVC_MODE is not set +# CONFIG_MONITORING_LED_CURRENT is not set +CONFIG_GENERAL_WHO_AM_I="xiao_esp32s3" \ No newline at end of file diff --git a/tools/openiris_setup.py b/tools/openiris_setup.py index c6a0380..5721d8f 100644 --- a/tools/openiris_setup.py +++ b/tools/openiris_setup.py @@ -975,6 +975,22 @@ def _probe_serial(device: OpenIrisDevice) -> Dict: serial, mac = info return {"serial": serial, "mac": mac} +def _probe_info(device: OpenIrisDevice) -> Dict: + resp = device.send_command("get_who_am_i") + if "error" in resp: + return {"who_am_i": None, "version": None, "error": resp["error"]} + try: + results = resp.get("results", []) + if results: + result_data = json.loads(results[0]) + payload = result_data["result"] + if isinstance(payload, str): + payload = json.loads(payload) + return {"who_am_i": payload.get("who_am_i"), "version": payload.get("version")} + except Exception as e: + return {"who_am_i": None, "version": None, "error": str(e)} + return {"who_am_i": None, "version": None} + def _probe_led_pwm(device: OpenIrisDevice) -> Dict: duty = device.get_led_duty_cycle() @@ -1013,7 +1029,8 @@ def get_settings(device: OpenIrisDevice, args=None): print("\n🧩 Collecting device settings...\n") probes = [ - ("Identity", _probe_serial), + ("Identity", _probe_serial), + ("Info", _probe_info), ("LED", _probe_led_pwm), ("Current", _probe_led_current), ("Mode", _probe_mode), @@ -1041,6 +1058,15 @@ def get_settings(device: OpenIrisDevice, args=None): if not serial and not mac: print("🔑 Serial/MAC: unavailable") + # LED + info = summary.get("Info", {}) + who = info.get("who_am_i") + ver = info.get("version") + if who: + print(f"🏷️ Device: {who}") + if ver: + print(f"🧭 Version: {ver}") + # LED led = summary.get("LED", {}) duty = led.get("led_external_pwm_duty_cycle") From 21e7589546b6fe04739f11bd48e62b7bf5257098 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 5 Sep 2025 18:38:13 +0200 Subject: [PATCH 06/30] Refactor wireless command error handling and update device mode terminology in setup tool --- .../CommandManager/commands/scan_commands.cpp | 6 +++- .../CommandManager/commands/wifi_commands.cpp | 29 +++++++++++++++++-- sdkconfig.board.facefocusvr_eye | 3 +- sdkconfig.board.facefocusvr_face | 3 +- sdkconfig.board.project_babble | 3 +- sdkconfig.board.xiao_esp32s3 | 3 +- tools/openiris_setup.py | 2 +- 7 files changed, 41 insertions(+), 8 deletions(-) diff --git a/components/CommandManager/CommandManager/commands/scan_commands.cpp b/components/CommandManager/CommandManager/commands/scan_commands.cpp index 6844344..bd5d6f7 100644 --- a/components/CommandManager/CommandManager/commands/scan_commands.cpp +++ b/components/CommandManager/CommandManager/commands/scan_commands.cpp @@ -1,11 +1,15 @@ #include "scan_commands.hpp" +#include "sdkconfig.h" CommandResult scanNetworksCommand(std::shared_ptr registry) { +#if !CONFIG_GENERAL_ENABLE_WIRELESS + return CommandResult::getErrorResult("Not supported by current firmware"); +#endif auto wifiManager = registry->resolve(DependencyType::wifi_manager); if (!wifiManager) { - return CommandResult::getErrorResult("WiFiManager not available"); + return CommandResult::getErrorResult("Not supported by current firmware"); } auto networks = wifiManager->ScanNetworks(); diff --git a/components/CommandManager/CommandManager/commands/wifi_commands.cpp b/components/CommandManager/CommandManager/commands/wifi_commands.cpp index 8ca0fcf..6499b58 100644 --- a/components/CommandManager/CommandManager/commands/wifi_commands.cpp +++ b/components/CommandManager/CommandManager/commands/wifi_commands.cpp @@ -1,5 +1,6 @@ #include "wifi_commands.hpp" #include "esp_netif.h" +#include "sdkconfig.h" std::optional parseSetWiFiCommandPayload(std::string_view jsonPayload) { @@ -143,6 +144,9 @@ std::optional parseUpdateAPWiFiCommandPayload(const std::st CommandResult setWiFiCommand(std::shared_ptr registry, std::string_view jsonPayload) { +#if !CONFIG_GENERAL_ENABLE_WIRELESS + return CommandResult::getErrorResult("Not supported by current firmware"); +#endif const auto payload = parseSetWiFiCommandPayload(jsonPayload); if (!payload.has_value()) @@ -164,6 +168,9 @@ CommandResult setWiFiCommand(std::shared_ptr registry, std:: CommandResult deleteWiFiCommand(std::shared_ptr registry, std::string_view jsonPayload) { +#if !CONFIG_GENERAL_ENABLE_WIRELESS + return CommandResult::getErrorResult("Not supported by current firmware"); +#endif const auto payload = parseDeleteWifiCommandPayload(jsonPayload); if (!payload.has_value()) return CommandResult::getErrorResult("Invalid payload"); @@ -176,6 +183,9 @@ CommandResult deleteWiFiCommand(std::shared_ptr registry, st CommandResult updateWiFiCommand(std::shared_ptr registry, std::string_view jsonPayload) { +#if !CONFIG_GENERAL_ENABLE_WIRELESS + return CommandResult::getErrorResult("Not supported by current firmware"); +#endif const auto payload = parseUpdateWifiCommandPayload(jsonPayload); if (!payload.has_value()) { @@ -207,6 +217,9 @@ CommandResult updateWiFiCommand(std::shared_ptr registry, st CommandResult updateAPWiFiCommand(std::shared_ptr registry, std::string_view jsonPayload) { +#if !CONFIG_GENERAL_ENABLE_WIRELESS + return CommandResult::getErrorResult("Not supported by current firmware"); +#endif const auto payload = parseUpdateAPWiFiCommandPayload(jsonPayload); if (!payload.has_value()) @@ -226,7 +239,13 @@ CommandResult updateAPWiFiCommand(std::shared_ptr registry, } CommandResult getWiFiStatusCommand(std::shared_ptr registry) { - auto wifiManager = registry->resolve(DependencyType::wifi_manager); +#if !CONFIG_GENERAL_ENABLE_WIRELESS + return CommandResult::getErrorResult("Not supported by current firmware"); +#endif + auto wifiManager = registry->resolve(DependencyType::wifi_manager); + if (!wifiManager) { + return CommandResult::getErrorResult("Not supported by current firmware"); + } auto projectConfig = registry->resolve(DependencyType::project_config); // Get current WiFi state @@ -287,7 +306,13 @@ CommandResult getWiFiStatusCommand(std::shared_ptr registry) } CommandResult connectWiFiCommand(std::shared_ptr registry) { - auto wifiManager = registry->resolve(DependencyType::wifi_manager); +#if !CONFIG_GENERAL_ENABLE_WIRELESS + return CommandResult::getErrorResult("Not supported by current firmware"); +#endif + auto wifiManager = registry->resolve(DependencyType::wifi_manager); + if (!wifiManager) { + return CommandResult::getErrorResult("Not supported by current firmware"); + } auto projectConfig = registry->resolve(DependencyType::project_config); auto networks = projectConfig->getWifiConfigs(); diff --git a/sdkconfig.board.facefocusvr_eye b/sdkconfig.board.facefocusvr_eye index c7dad68..00db8c6 100644 --- a/sdkconfig.board.facefocusvr_eye +++ b/sdkconfig.board.facefocusvr_eye @@ -67,4 +67,5 @@ CONFIG_MONITORING_LED_GAIN=11 CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_INTERVAL_MS=500 -CONFIG_GENERAL_WHO_AM_I="facefocusvr_eye" \ No newline at end of file +CONFIG_GENERAL_WHO_AM_I="facefocusvr_eye" +# CONFIG_GENERAL_ENABLE_WIRELESS is not set \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face index e129199..7978757 100644 --- a/sdkconfig.board.facefocusvr_face +++ b/sdkconfig.board.facefocusvr_face @@ -67,4 +67,5 @@ CONFIG_MONITORING_LED_GAIN=11 CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_INTERVAL_MS=500 -CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" \ No newline at end of file +CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" +# CONFIG_GENERAL_ENABLE_WIRELESS is not set \ No newline at end of file diff --git a/sdkconfig.board.project_babble b/sdkconfig.board.project_babble index 60efadd..f67978b 100644 --- a/sdkconfig.board.project_babble +++ b/sdkconfig.board.project_babble @@ -54,4 +54,5 @@ CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y # CONFIG_START_IN_UVC_MODE is not set # CONFIG_MONITORING_LED_CURRENT is not set -CONFIG_GENERAL_WHO_AM_I="project_babble" \ No newline at end of file +CONFIG_GENERAL_WHO_AM_I="project_babble" +CONFIG_GENERAL_ENABLE_WIRELESS=y \ No newline at end of file diff --git a/sdkconfig.board.xiao_esp32s3 b/sdkconfig.board.xiao_esp32s3 index 802d196..ebf9085 100644 --- a/sdkconfig.board.xiao_esp32s3 +++ b/sdkconfig.board.xiao_esp32s3 @@ -59,4 +59,5 @@ CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y # CONFIG_START_IN_UVC_MODE is not set # CONFIG_MONITORING_LED_CURRENT is not set -CONFIG_GENERAL_WHO_AM_I="xiao_esp32s3" \ No newline at end of file +CONFIG_GENERAL_WHO_AM_I="xiao_esp32s3" +CONFIG_GENERAL_ENABLE_WIRELESS=y \ No newline at end of file diff --git a/tools/openiris_setup.py b/tools/openiris_setup.py index 5721d8f..5eb1a88 100644 --- a/tools/openiris_setup.py +++ b/tools/openiris_setup.py @@ -1204,7 +1204,7 @@ def main(): print(f"{str(2):>2} 🌐 Configure MDNS") print(f"{str(3):>2} 💻 Configure UVC Name") print(f"{str(4):>2} 🚀 Start streaming mode") - print(f"{str(5):>2} 🔄 Switch device mode (WiFi/UVC/Auto)") + print(f"{str(5):>2} 🔄 Switch device mode (WiFi/UVC/Setup)") print(f"{str(6):>2} 💡 Update PWM Duty Cycle") print(f"{str(7):>2} 📖 Monitor logs") print(f"{str(8):>2} 🧩 Get settings summary") From 4ed397ca2d77b7e4cc1424a947fc8cfdc147f9b0 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 5 Sep 2025 19:08:03 +0200 Subject: [PATCH 07/30] Update CPU frequency settings for facefocus boards --- sdkconfig | 12 ++++++------ sdkconfig.base_defaults | 2 +- sdkconfig.board.facefocusvr_eye | 10 +++++++++- sdkconfig.board.facefocusvr_face | 12 ++++++++++-- sdkconfig.board.xiao_esp32s3 | 2 +- 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/sdkconfig b/sdkconfig index 7c8f979..4f2d28c 100644 --- a/sdkconfig +++ b/sdkconfig @@ -1212,10 +1212,10 @@ CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768 # # ESP System Settings # -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y # 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 +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 # # Cache config @@ -2449,10 +2449,10 @@ 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_80=y # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=240 +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 CONFIG_MAIN_TASK_STACK_SIZE=3584 diff --git a/sdkconfig.base_defaults b/sdkconfig.base_defaults index f108e34..400d268 100644 --- a/sdkconfig.base_defaults +++ b/sdkconfig.base_defaults @@ -2567,4 +2567,4 @@ CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y CONFIG_SUPPORT_TERMIOS=y CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -# End of deprecated options +# End of deprecated options \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_eye b/sdkconfig.board.facefocusvr_eye index 00db8c6..589c7d4 100644 --- a/sdkconfig.board.facefocusvr_eye +++ b/sdkconfig.board.facefocusvr_eye @@ -68,4 +68,12 @@ CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_INTERVAL_MS=500 CONFIG_GENERAL_WHO_AM_I="facefocusvr_eye" -# CONFIG_GENERAL_ENABLE_WIRELESS is not set \ No newline at end of file +# CONFIG_GENERAL_ENABLE_WIRELESS is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face index 7978757..54c435b 100644 --- a/sdkconfig.board.facefocusvr_face +++ b/sdkconfig.board.facefocusvr_face @@ -57,7 +57,7 @@ CONFIG_SPIRAM_SPEED_80M=y CONFIG_LED_EXTERNAL_CONTROL=y CONFIG_LED_EXTERNAL_GPIO=9 CONFIG_LED_EXTERNAL_PWM_FREQ=20000 -CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=85 CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y CONFIG_START_IN_UVC_MODE=y @@ -68,4 +68,12 @@ CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_INTERVAL_MS=500 CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" -# CONFIG_GENERAL_ENABLE_WIRELESS is not set \ No newline at end of file +# CONFIG_GENERAL_ENABLE_WIRELESS is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 \ No newline at end of file diff --git a/sdkconfig.board.xiao_esp32s3 b/sdkconfig.board.xiao_esp32s3 index ebf9085..a4509bf 100644 --- a/sdkconfig.board.xiao_esp32s3 +++ b/sdkconfig.board.xiao_esp32s3 @@ -60,4 +60,4 @@ CONFIG_GENERAL_INCLUDE_UVC_MODE=y # CONFIG_START_IN_UVC_MODE is not set # CONFIG_MONITORING_LED_CURRENT is not set CONFIG_GENERAL_WHO_AM_I="xiao_esp32s3" -CONFIG_GENERAL_ENABLE_WIRELESS=y \ No newline at end of file +CONFIG_GENERAL_ENABLE_WIRELESS=y From 8138ffa36d81d921aa4a6ed924ae271272e7496c Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 5 Sep 2025 19:36:09 +0200 Subject: [PATCH 08/30] Add UVC device name configuration and update device name retrieval logic --- components/UVCStream/UVCStream/UVCStream.cpp | 17 ++++++++++++++++- main/Kconfig.projbuild | 7 +++++++ sdkconfig | 1 + sdkconfig.board.facefocusvr_eye | 3 ++- sdkconfig.board.facefocusvr_face | 3 ++- 5 files changed, 28 insertions(+), 3 deletions(-) diff --git a/components/UVCStream/UVCStream/UVCStream.cpp b/components/UVCStream/UVCStream/UVCStream.cpp index 4fcc853..87b0ea2 100644 --- a/components/UVCStream/UVCStream/UVCStream.cpp +++ b/components/UVCStream/UVCStream/UVCStream.cpp @@ -1,5 +1,6 @@ #include "UVCStream.hpp" #include // for snprintf +#include #include "freertos/FreeRTOS.h" #include "freertos/task.h" // no deps on main globals here; handover is performed in main before calling setup when needed @@ -12,7 +13,21 @@ extern "C" const char *get_uvc_device_name() { - return deviceConfig->getMDNSConfig().hostname.c_str(); + // Prefer explicit UVC name from Kconfig, fallback to mDNS hostname when empty + static std::string cached_name; + if (cached_name.empty()) + { + const char *cfg_name = CONFIG_GENERAL_UVC_NAME; + if (cfg_name && cfg_name[0] != '\0') + { + cached_name = cfg_name; + } + else + { + cached_name = deviceConfig->getMDNSConfig().hostname; + } + } + return cached_name.c_str(); } const char *get_serial_number(void) diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 92946c4..2436dd5 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -50,6 +50,13 @@ menu "OpenIris: General Configuration" help A firmware version string exposed via the get_info command. + config GENERAL_UVC_NAME + string "UVC device name" + default "openiristracker" + help + Default name reported for the UVC interface/device over USB. + This is independent from the mDNS hostname used on Wi‑Fi. + endmenu menu "OpenIris: Camera Configuration" diff --git a/sdkconfig b/sdkconfig index 4f2d28c..f64ebfb 100644 --- a/sdkconfig +++ b/sdkconfig @@ -576,6 +576,7 @@ CONFIG_GENERAL_STARTUP_DELAY=30 CONFIG_GENERAL_ENABLE_WIRELESS=y CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" CONFIG_GENERAL_Version="0.0.1" +CONFIG_GENERAL_UVC_NAME="FFVR Face" # end of OpenIris: General Configuration # diff --git a/sdkconfig.board.facefocusvr_eye b/sdkconfig.board.facefocusvr_eye index 589c7d4..74e3594 100644 --- a/sdkconfig.board.facefocusvr_eye +++ b/sdkconfig.board.facefocusvr_eye @@ -76,4 +76,5 @@ CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 \ No newline at end of file +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 +CONFIG_GENERAL_UVC_NAME="FFVR Eye" \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face index 54c435b..6ac3a42 100644 --- a/sdkconfig.board.facefocusvr_face +++ b/sdkconfig.board.facefocusvr_face @@ -76,4 +76,5 @@ CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 \ No newline at end of file +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 +CONFIG_GENERAL_UVC_NAME="FFVR Face" \ No newline at end of file From ad7b9b8be9c503afa9680c81d29bb1aa808a8d4f Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sat, 6 Sep 2025 16:25:21 +0200 Subject: [PATCH 09/30] unify advertised name for mDNS and USB, update configuration settings, and enhance setup tool prompts. --- .../ProjectConfig/ProjectConfig/Models.hpp | 10 ++- components/UVCStream/UVCStream/UVCStream.cpp | 17 +---- main/Kconfig.projbuild | 15 +++-- sdkconfig | 1 - sdkconfig.board.facefocusvr_eye | 3 +- sdkconfig.board.facefocusvr_face | 3 +- sdkconfig.board.xiao-esp32s3 | 62 +++++++++++++++++++ tools/openiris_setup.py | 54 +++++++++------- 8 files changed, 110 insertions(+), 55 deletions(-) create mode 100644 sdkconfig.board.xiao-esp32s3 diff --git a/components/ProjectConfig/ProjectConfig/Models.hpp b/components/ProjectConfig/ProjectConfig/Models.hpp index 9261ade..448f625 100644 --- a/components/ProjectConfig/ProjectConfig/Models.hpp +++ b/components/ProjectConfig/ProjectConfig/Models.hpp @@ -103,9 +103,13 @@ struct MDNSConfig_t : BaseConfigModel void load() { - // by default, this will be openiris - // but we can override it at compile time - std::string default_hostname = CONFIG_WIFI_MDNS_HOSTNAME; + // Default hostname comes from GENERAL_ADVERTISED_NAME (unified advertised name) + std::string default_hostname = +#ifdef CONFIG_GENERAL_ADVERTISED_NAME + CONFIG_GENERAL_ADVERTISED_NAME; +#else + "openiristracker"; +#endif if (default_hostname.empty()) { diff --git a/components/UVCStream/UVCStream/UVCStream.cpp b/components/UVCStream/UVCStream/UVCStream.cpp index 87b0ea2..4fcc853 100644 --- a/components/UVCStream/UVCStream/UVCStream.cpp +++ b/components/UVCStream/UVCStream/UVCStream.cpp @@ -1,6 +1,5 @@ #include "UVCStream.hpp" #include // for snprintf -#include #include "freertos/FreeRTOS.h" #include "freertos/task.h" // no deps on main globals here; handover is performed in main before calling setup when needed @@ -13,21 +12,7 @@ extern "C" const char *get_uvc_device_name() { - // Prefer explicit UVC name from Kconfig, fallback to mDNS hostname when empty - static std::string cached_name; - if (cached_name.empty()) - { - const char *cfg_name = CONFIG_GENERAL_UVC_NAME; - if (cfg_name && cfg_name[0] != '\0') - { - cached_name = cfg_name; - } - else - { - cached_name = deviceConfig->getMDNSConfig().hostname; - } - } - return cached_name.c_str(); + return deviceConfig->getMDNSConfig().hostname.c_str(); } const char *get_serial_number(void) diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 2436dd5..20f62f9 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -50,12 +50,14 @@ menu "OpenIris: General Configuration" help A firmware version string exposed via the get_info command. - config GENERAL_UVC_NAME - string "UVC device name" + config GENERAL_ADVERTISED_NAME + string "Advertised device name (UVC + mDNS)" default "openiristracker" help - Default name reported for the UVC interface/device over USB. - This is independent from the mDNS hostname used on Wi‑Fi. + Human-readable device name advertised uniformly across interfaces. + Used as the default mDNS hostname and (indirectly) the UVC USB + device name via get_uvc_device_name(). Users can still override + the runtime hostname through preferences. endmenu @@ -78,10 +80,7 @@ menu "OpenIris: Camera Configuration" endmenu menu "OpenIris: WiFi Configuration" - - config WIFI_MDNS_HOSTNAME - string "mDNS hostname" - default "openiristracker" + # mDNS hostname now derives from GENERAL_ADVERTISED_NAME (no separate Kconfig) config WIFI_SSID string "WiFi network name (SSID)" diff --git a/sdkconfig b/sdkconfig index f64ebfb..4f2d28c 100644 --- a/sdkconfig +++ b/sdkconfig @@ -576,7 +576,6 @@ CONFIG_GENERAL_STARTUP_DELAY=30 CONFIG_GENERAL_ENABLE_WIRELESS=y CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" CONFIG_GENERAL_Version="0.0.1" -CONFIG_GENERAL_UVC_NAME="FFVR Face" # end of OpenIris: General Configuration # diff --git a/sdkconfig.board.facefocusvr_eye b/sdkconfig.board.facefocusvr_eye index 74e3594..589c7d4 100644 --- a/sdkconfig.board.facefocusvr_eye +++ b/sdkconfig.board.facefocusvr_eye @@ -76,5 +76,4 @@ CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 -CONFIG_GENERAL_UVC_NAME="FFVR Eye" \ No newline at end of file +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face index 6ac3a42..54c435b 100644 --- a/sdkconfig.board.facefocusvr_face +++ b/sdkconfig.board.facefocusvr_face @@ -76,5 +76,4 @@ CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 -CONFIG_GENERAL_UVC_NAME="FFVR Face" \ No newline at end of file +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 \ No newline at end of file diff --git a/sdkconfig.board.xiao-esp32s3 b/sdkconfig.board.xiao-esp32s3 new file mode 100644 index 0000000..802d196 --- /dev/null +++ b/sdkconfig.board.xiao-esp32s3 @@ -0,0 +1,62 @@ +CONFIG_BLINK_LED_GPIO=y +CONFIG_BLINK_GPIO=21 +CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y +CONFIG_ESP32S3_SPIRAM_SUPPORT=y +CONFIG_SPIRAM_MODE_OCT=y +# 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=y +# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set +CONFIG_ESPTOOLPY_FLASHSIZE="8MB" +# Camera sensor pinout configuration +CONFIG_CAMERA_MODULE_NAME="ESP32S3_XIAO_SENSE" +CONFIG_PWDN_GPIO_NUM=-1 +CONFIG_RESET_GPIO_NUM=-1 +CONFIG_XCLK_GPIO_NUM=10 +CONFIG_SIOD_GPIO_NUM=40 +CONFIG_SIOC_GPIO_NUM=39 +CONFIG_Y9_GPIO_NUM=48 +CONFIG_Y8_GPIO_NUM=11 +CONFIG_Y7_GPIO_NUM=12 +CONFIG_Y6_GPIO_NUM=14 +CONFIG_Y5_GPIO_NUM=16 +CONFIG_Y4_GPIO_NUM=18 +CONFIG_Y3_GPIO_NUM=17 +CONFIG_Y2_GPIO_NUM=15 +CONFIG_VSYNC_GPIO_NUM=38 +CONFIG_HREF_GPIO_NUM=47 +CONFIG_PCLK_GPIO_NUM=13 +# end of Camera sensor pinout configuration +# CONFIG_FLASHMODE_QIO is not set +# CONFIG_FLASHMODE_QOUT is not set +CONFIG_FLASHMODE_DIO=y +CONFIG_SPIRAM_MODE_OCT=y +CONFIG_SPIRAM_TYPE_AUTO=y +# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set +# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set +# 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_XIP_FROM_PSRAM is not set +# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set +# CONFIG_SPIRAM_RODATA is not set +# CONFIG_SPIRAM_SPEED_120M is not set +CONFIG_SPIRAM_SPEED=80 +CONFIG_SPIRAM_SPEED_80M=y +# CONFIG_LED_EXTERNAL_CONTROL is not set +CONFIG_CAMERA_USB_XCLK_FREQ=23000000 +CONFIG_GENERAL_INCLUDE_UVC_MODE=y +# CONFIG_START_IN_UVC_MODE is not set +# CONFIG_MONITORING_LED_CURRENT is not set +CONFIG_GENERAL_WHO_AM_I="xiao_esp32s3" \ No newline at end of file diff --git a/tools/openiris_setup.py b/tools/openiris_setup.py index 5eb1a88..b0af91f 100644 --- a/tools/openiris_setup.py +++ b/tools/openiris_setup.py @@ -707,11 +707,9 @@ def configure_wifi(device: OpenIrisDevice, args = None): def configure_mdns(device: OpenIrisDevice, args = None): current_name = device.get_mdns_name() - print(f"\n📍 Current device name: {current_name} \n") - print("💡 Please enter your preferred device name, your board will be accessible under http://.local/") - print("💡 Please avoid spaces and special characters") - print(" To back out, enter `back`") - print("\n Note, this will also modify the name of the UVC device") + print(f"\n📍 Current advertised name: {current_name} \n") + print("💡 This single name is used for both: mDNS (http://.local/) and USB UVC device descriptor.") + print("💡 Avoid spaces / special chars. Enter 'back' to cancel.") while True: name_choice = input("\nDevice name: ").strip() @@ -991,6 +989,11 @@ def _probe_info(device: OpenIrisDevice) -> Dict: return {"who_am_i": None, "version": None, "error": str(e)} return {"who_am_i": None, "version": None} +def _probe_advertised_name(device: OpenIrisDevice) -> Dict: + # Currently the advertised name == mdns hostname + name = device.get_mdns_name() + return {"advertised_name": name} + def _probe_led_pwm(device: OpenIrisDevice) -> Dict: duty = device.get_led_duty_cycle() @@ -1029,10 +1032,11 @@ def get_settings(device: OpenIrisDevice, args=None): print("\n🧩 Collecting device settings...\n") probes = [ - ("Identity", _probe_serial), - ("Info", _probe_info), + ("Identity", _probe_serial), + ("AdvertisedName", _probe_advertised_name), + ("Info", _probe_info), ("LED", _probe_led_pwm), - ("Current", _probe_led_current), + ("Current", _probe_led_current), ("Mode", _probe_mode), ("WiFi", _probe_wifi_status), ] @@ -1058,7 +1062,13 @@ def get_settings(device: OpenIrisDevice, args=None): if not serial and not mac: print("🔑 Serial/MAC: unavailable") - # LED + # Advertised Name + adv = summary.get("AdvertisedName", {}) + adv_name = adv.get("advertised_name") + if adv_name: + print(f"📛 Name: {adv_name}") + + # Info info = summary.get("Info", {}) who = info.get("who_am_i") ver = info.get("version") @@ -1106,12 +1116,11 @@ def get_settings(device: OpenIrisDevice, args=None): COMMANDS_MAP = { "1": wifi_menu, "2": configure_mdns, - "3": configure_mdns, - "4": start_streaming, - "5": switch_device_mode, - "6": set_led_duty_cycle, - "7": monitor_logs, - "8": get_settings, + "3": start_streaming, + "4": switch_device_mode, + "5": set_led_duty_cycle, + "6": monitor_logs, + "7": get_settings, } @@ -1201,15 +1210,14 @@ def main(): while True: print("\n🔧 Setup Options:") print(f"{str(1):>2} 📶 WiFi settings") - print(f"{str(2):>2} 🌐 Configure MDNS") - print(f"{str(3):>2} 💻 Configure UVC Name") - print(f"{str(4):>2} 🚀 Start streaming mode") - print(f"{str(5):>2} 🔄 Switch device mode (WiFi/UVC/Setup)") - print(f"{str(6):>2} 💡 Update PWM Duty Cycle") - print(f"{str(7):>2} 📖 Monitor logs") - print(f"{str(8):>2} 🧩 Get settings summary") + print(f"{str(2):>2} 📛 Configure advertised name (mDNS + UVC)") + print(f"{str(3):>2} 🚀 Start streaming mode") + print(f"{str(4):>2} 🔄 Switch device mode (WiFi/UVC/Setup)") + print(f"{str(5):>2} 💡 Update PWM Duty Cycle") + print(f"{str(6):>2} 📖 Monitor logs") + print(f"{str(7):>2} 🧩 Get settings summary") print("exit 🚪 Exit") - choice = input("\nSelect option (1-8): ").strip() + choice = input("\nSelect option (1-7): ").strip() if choice == "exit": break From 909a2779ac98a4ac4fb4bd72e2e26aa5eb600c69 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sat, 6 Sep 2025 17:10:46 +0200 Subject: [PATCH 10/30] cleaning up board config and switch tool --- README.md | 26 +- .../facefocusvr/eye_L | 2 +- .../facefocusvr/eye_R | 27 +- .../facefocusvr/face | 2 +- .../project_babble/project_babble | 2 +- .../sdkconfig.base_defaults | 2 +- .../seed_studio/xiao_esp32s3 | 2 +- .../commands/device_commands.cpp | 4 +- main/Kconfig.projbuild | 37 +- sdkconfig | 586 +--- sdkconfig.old | 2532 ----------------- tools/switchBoardType.py | 238 +- 12 files changed, 284 insertions(+), 3176 deletions(-) rename sdkconfig.board.facefocusvr_eye => boards/facefocusvr/eye_L (98%) rename sdkconfig.board.xiao-esp32s3 => boards/facefocusvr/eye_R (68%) rename sdkconfig.board.facefocusvr_face => boards/facefocusvr/face (98%) rename sdkconfig.board.project_babble => boards/project_babble/project_babble (97%) rename sdkconfig.base_defaults => boards/sdkconfig.base_defaults (99%) rename sdkconfig.board.xiao_esp32s3 => boards/seed_studio/xiao_esp32s3 (98%) delete mode 100644 sdkconfig.old diff --git a/README.md b/README.md index b286a96..cf292e2 100644 --- a/README.md +++ b/README.md @@ -50,16 +50,23 @@ After this, you’re ready for the Quick start below. ## Quick start ### 1) Pick your board (loads the default configuration) +Boards are auto‑discovered from the `boards/` directory. First list them, then pick one: + Windows (cmd): ```cmd -python .\tools\switchBoardType.py --board xiao-esp32s3 --diff +python .\tools\switchBoardType.py --list +python .\tools\switchBoardType.py --board seed_studio_xiao_esp32s3 --diff ``` macOS/Linux (bash): ```bash -python3 ./tools/switchBoardType.py --board xiao-esp32s3 --diff +python3 ./tools/switchBoardType.py --list +python3 ./tools/switchBoardType.py --board seed_studio_xiao_esp32s3 --diff ``` -- Set `--board` to your target board -- `--diff` shows what changed in the config +Notes: +- Use `--list` to see all detected board keys. +- Board key = relative path under `boards/` with `/` replaced by `_` (and duplicate tail segments collapsed, e.g. `project_babble/project_babble` -> `project_babble`). +- `--diff` shows what will change vs the current `sdkconfig`. +- You can also pass partial or path‑like inputs (e.g. `facefocusvr/eye_L`), the tool normalizes them. ### 2) Build & flash - Set the target (e.g., ESP32‑S3). @@ -118,6 +125,17 @@ If you want to dig deeper: commands are mapped via the `CommandManager` under `c - UVC doesn’t appear on the host? - Switch mode to UVC via CLI tool, replug USB and wait 20s. +### Adding a new board configuration +1. Create a new config file under `boards/` (you can nest folders): for example `boards/my_family/my_variant`. +2. Populate it with only the `CONFIG_...` lines that differ from the shared defaults. Shared baseline lives in `boards/sdkconfig.base_defaults` and is always merged first. +3. The board key the script accepts will be the relative path with `/` turned into `_` (example: `boards/my_family/my_variant` -> `my_family_my_variant`). +4. Run `python tools/switchBoardType.py --list` to verify it’s detected, then switch using `-b my_family_my_variant`. +5. If you accidentally create two files that collapse to the same key the last one found wins—rename to keep keys unique. + +Tips: +- Use `--diff` after adding a board to sanity‑check only the intended keys change. +- For Wi‑Fi overrides on first flash: add none—pass `--ssid` / `--password` when switching if needed. + --- Feedback, issues, and PRs are welcome. \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_eye b/boards/facefocusvr/eye_L similarity index 98% rename from sdkconfig.board.facefocusvr_eye rename to boards/facefocusvr/eye_L index 589c7d4..569a13c 100644 --- a/sdkconfig.board.facefocusvr_eye +++ b/boards/facefocusvr/eye_L @@ -67,7 +67,7 @@ CONFIG_MONITORING_LED_GAIN=11 CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_INTERVAL_MS=500 -CONFIG_GENERAL_WHO_AM_I="facefocusvr_eye" +CONFIG_GENERAL_BOARD="facefocusvr_eye" # CONFIG_GENERAL_ENABLE_WIRELESS is not set CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set diff --git a/sdkconfig.board.xiao-esp32s3 b/boards/facefocusvr/eye_R similarity index 68% rename from sdkconfig.board.xiao-esp32s3 rename to boards/facefocusvr/eye_R index 802d196..569a13c 100644 --- a/sdkconfig.board.xiao-esp32s3 +++ b/boards/facefocusvr/eye_R @@ -14,7 +14,7 @@ CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y # CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set CONFIG_ESPTOOLPY_FLASHSIZE="8MB" # Camera sensor pinout configuration -CONFIG_CAMERA_MODULE_NAME="ESP32S3_XIAO_SENSE" +CONFIG_CAMERA_MODULE_NAME="FaceFocusVR_Face" CONFIG_PWDN_GPIO_NUM=-1 CONFIG_RESET_GPIO_NUM=-1 CONFIG_XCLK_GPIO_NUM=10 @@ -54,9 +54,26 @@ CONFIG_SPIRAM_SPEED_80M=y # CONFIG_SPIRAM_SPEED_120M is not set CONFIG_SPIRAM_SPEED=80 CONFIG_SPIRAM_SPEED_80M=y -# CONFIG_LED_EXTERNAL_CONTROL is not set +CONFIG_LED_EXTERNAL_CONTROL=y +CONFIG_LED_EXTERNAL_GPIO=9 +CONFIG_LED_EXTERNAL_PWM_FREQ=20000 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=50 CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y -# CONFIG_START_IN_UVC_MODE is not set -# CONFIG_MONITORING_LED_CURRENT is not set -CONFIG_GENERAL_WHO_AM_I="xiao_esp32s3" \ No newline at end of file +CONFIG_START_IN_UVC_MODE=y +CONFIG_MONITORING_LED_CURRENT=y +CONFIG_MONITORING_LED_ADC_GPIO=3 +CONFIG_MONITORING_LED_GAIN=11 +CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 +CONFIG_MONITORING_LED_SAMPLES=10 +CONFIG_MONITORING_LED_INTERVAL_MS=500 +CONFIG_GENERAL_BOARD="facefocusvr_eye" +# CONFIG_GENERAL_ENABLE_WIRELESS is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_face b/boards/facefocusvr/face similarity index 98% rename from sdkconfig.board.facefocusvr_face rename to boards/facefocusvr/face index 54c435b..a200f60 100644 --- a/sdkconfig.board.facefocusvr_face +++ b/boards/facefocusvr/face @@ -67,7 +67,7 @@ CONFIG_MONITORING_LED_GAIN=11 CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_INTERVAL_MS=500 -CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" +CONFIG_GENERAL_BOARD="facefocusvr_face" # CONFIG_GENERAL_ENABLE_WIRELESS is not set CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set diff --git a/sdkconfig.board.project_babble b/boards/project_babble/project_babble similarity index 97% rename from sdkconfig.board.project_babble rename to boards/project_babble/project_babble index f67978b..f5c1d31 100644 --- a/sdkconfig.board.project_babble +++ b/boards/project_babble/project_babble @@ -54,5 +54,5 @@ CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y # CONFIG_START_IN_UVC_MODE is not set # CONFIG_MONITORING_LED_CURRENT is not set -CONFIG_GENERAL_WHO_AM_I="project_babble" +CONFIG_GENERAL_BOARD="project_babble" CONFIG_GENERAL_ENABLE_WIRELESS=y \ No newline at end of file diff --git a/sdkconfig.base_defaults b/boards/sdkconfig.base_defaults similarity index 99% rename from sdkconfig.base_defaults rename to boards/sdkconfig.base_defaults index 400d268..71ea29d 100644 --- a/sdkconfig.base_defaults +++ b/boards/sdkconfig.base_defaults @@ -573,7 +573,7 @@ CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 # CONFIG_GENERAL_INCLUDE_UVC_MODE is not set # CONFIG_START_IN_UVC_MODE is not set # CONFIG_GENERAL_STARTUP_DELAY is not set -CONFIG_GENERAL_Version="0.0.1" +CONFIG_GENERAL_VERSION="0.0.1" # end of OpenIris: General Configuration # diff --git a/sdkconfig.board.xiao_esp32s3 b/boards/seed_studio/xiao_esp32s3 similarity index 98% rename from sdkconfig.board.xiao_esp32s3 rename to boards/seed_studio/xiao_esp32s3 index a4509bf..5fce593 100644 --- a/sdkconfig.board.xiao_esp32s3 +++ b/boards/seed_studio/xiao_esp32s3 @@ -59,5 +59,5 @@ CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y # CONFIG_START_IN_UVC_MODE is not set # CONFIG_MONITORING_LED_CURRENT is not set -CONFIG_GENERAL_WHO_AM_I="xiao_esp32s3" +CONFIG_GENERAL_BOARD="xiao_esp32s3" CONFIG_GENERAL_ENABLE_WIRELESS=y diff --git a/components/CommandManager/CommandManager/commands/device_commands.cpp b/components/CommandManager/CommandManager/commands/device_commands.cpp index e0b2a2d..a0ef9c3 100644 --- a/components/CommandManager/CommandManager/commands/device_commands.cpp +++ b/components/CommandManager/CommandManager/commands/device_commands.cpp @@ -251,8 +251,8 @@ CommandResult getLEDCurrentCommand(std::shared_ptr registry) CommandResult getInfoCommand(std::shared_ptr /*registry*/) { - const char* who = CONFIG_GENERAL_WHO_AM_I; - const char* ver = CONFIG_GENERAL_Version; + const char* who = CONFIG_GENERAL_BOARD; + const char* ver = CONFIG_GENERAL_VERSION; // Ensure non-null strings if (!who) who = ""; if (!ver) ver = ""; diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 20f62f9..bc81684 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -7,28 +7,35 @@ endmenu menu "OpenIris: General Configuration" config START_IN_UVC_MODE - bool "Start in UVC Mode" + bool "Default initial streaming mode = UVC" default false help - Enables UVC (wired) support in the firmware by default. - To be used when a board is designed to be used primarily with wired headsets. - When enabled, the default device streaming mode will be UVC unless overridden by a - saved preference. When disabled, the default mode is AUTO. + Sets the power‑on default streaming mode (before any user preference is stored). + If enabled AND UVC support is compiled in (GENERAL_INCLUDE_UVC_MODE), the device + will default to UVC mode on first boot. If disabled it defaults to SETUP mode, + waiting for a user choice or commands. This option does NOT compile UVC support in; + it only changes the initial preference used when no saved mode exists. config GENERAL_INCLUDE_UVC_MODE - bool "Wired mode" + bool "Include UVC (USB Video Class) support" default false help - Enables UVC (wired) support in the firmware. When enabled, the - default device streaming mode will be UVC unless overridden by a - saved preference. When disabled, the default mode is AUTO. + Compiles in UVC (USB Video Class) streaming support (camera + CDC bridge). + Disable this on boards that are Wi‑Fi only or where USB bandwidth / memory + should be conserved. If disabled any attempt to switch to UVC mode will log + an error and fall back to Wi‑Fi (if wireless is enabled). Combine with + START_IN_UVC_MODE only when the hardware supports UVC. config GENERAL_STARTUP_DELAY - int "UVC delay (s)" + int "Setup grace period (s)" default 30 range 10 10000 help - Delay in seconds before the ESP reports itself as a UVC device. + Number of seconds the device remains in SETUP / heartbeat mode on boot (when the + current streaming mode resolves to SETUP) before automatically launching the + selected streaming backend (UVC or Wi‑Fi). During this window host commands can + change mode or other settings. After the timer expires, streaming starts + automatically unless a command was received or startup was paused. config GENERAL_ENABLE_WIRELESS bool "Enable wireless (WiFi/Bluetooth)" @@ -38,13 +45,13 @@ menu "OpenIris: General Configuration" and any Bluetooth memory (if present on the SoC) should be left released. This can reduce power consumption when operating solely in UVC mode or without networking. - config GENERAL_WHO_AM_I - string "Who am I (device identifier)" + config GENERAL_BOARD + string "Board / device identifier" default "OpenIris" help - A human-readable product or device identifier exposed via the get_info command. + A human-readable board or device identifier exposed via the get_info command. - config GENERAL_Version + config GENERAL_VERSION string "Firmware version" default "0.0.0" help diff --git a/sdkconfig b/sdkconfig index 4f2d28c..961d096 100644 --- a/sdkconfig +++ b/sdkconfig @@ -1,7 +1,6 @@ # # Automatically generated file. DO NOT EDIT. # Espressif IoT Development Framework (ESP-IDF) 5.4.2 Project Configuration -# CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 CONFIG_SOC_ADC_SUPPORTED=y @@ -375,13 +374,11 @@ CONFIG_IDF_TOOLCHAIN_GCC=y CONFIG_IDF_TARGET_ARCH_XTENSA=y CONFIG_IDF_TARGET_ARCH="xtensa" CONFIG_IDF_TARGET="esp32s3" -CONFIG_IDF_INIT_VERSION="5.4.2" +CONFIG_IDF_INIT_VERSION="$IDF_INIT_VERSION" 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 @@ -390,27 +387,17 @@ 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=y # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set - -# # Log -# # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set @@ -418,22 +405,15 @@ CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y # CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set CONFIG_BOOTLOADER_LOG_LEVEL=3 - -# # Format -# # CONFIG_BOOTLOADER_LOG_COLORS is not set CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y # end of Format # end of Log - -# # 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 @@ -448,10 +428,7 @@ CONFIG_BOOTLOADER_WDT_TIME_MS=9000 CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 # CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set # 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 @@ -459,17 +436,13 @@ CONFIG_SECURE_BOOT_V2_PREFERRED=y # 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 @@ -498,25 +471,19 @@ CONFIG_ESP_ROM_HAS_SW_FLOAT=y CONFIG_ESP_ROM_HAS_VERSION=y CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=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 is not set +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y +# 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" @@ -527,8 +494,8 @@ CONFIG_ESPTOOLPY_FLASHFREQ_80M=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=y +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set @@ -543,10 +510,7 @@ CONFIG_ESPTOOLPY_AFTER_RESET=y 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 @@ -557,68 +521,37 @@ CONFIG_PARTITION_TABLE_FILENAME="min_spiffs.csv" CONFIG_PARTITION_TABLE_OFFSET=0x8000 CONFIG_PARTITION_TABLE_MD5=y # end of Partition Table - -# # ENV_Caps -# CONFIG_ENV_GPIO_RANGE_MIN=0 CONFIG_ENV_GPIO_RANGE_MAX=48 CONFIG_ENV_GPIO_IN_RANGE_MAX=48 CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 # end of ENV_Caps - -# # OpenIris: General Configuration -# +# CONFIG_GENERAL_INCLUDE_UVC_MODE is not set # CONFIG_START_IN_UVC_MODE is not set -CONFIG_GENERAL_INCLUDE_UVC_MODE=y -CONFIG_GENERAL_STARTUP_DELAY=30 -CONFIG_GENERAL_ENABLE_WIRELESS=y -CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" +# CONFIG_GENERAL_STARTUP_DELAY is not set CONFIG_GENERAL_Version="0.0.1" # end of OpenIris: General Configuration - -# # OpenIris: Camera Configuration -# CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_CAMERA_WIFI_XCLK_FREQ=16500000 # end of OpenIris: Camera Configuration - -# # OpenIris: WiFi Configuration -# CONFIG_WIFI_MDNS_HOSTNAME="openiristracker" CONFIG_WIFI_SSID="" CONFIG_WIFI_PASSWORD="" CONFIG_WIFI_AP_SSID="EyeTrackVR" CONFIG_WIFI_AP_PASSWORD="12345678" # end of OpenIris: WiFi Configuration - -# # OpenIris: LED Configuration -# CONFIG_LED_DEBUG_GPIO=8 CONFIG_LED_EXTERNAL_GPIO=9 CONFIG_LED_EXTERNAL_CONTROL=y CONFIG_LED_EXTERNAL_PWM_FREQ=20000 -CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=85 # end of OpenIris: LED Configuration - -# -# OpenIris: Monitoring -# -CONFIG_MONITORING_LED_CURRENT=y -CONFIG_MONITORING_LED_ADC_GPIO=3 -CONFIG_MONITORING_LED_GAIN=11 -CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 -CONFIG_MONITORING_LED_SAMPLES=10 -CONFIG_MONITORING_LED_INTERVAL_MS=500 -# end of OpenIris: Monitoring - -# # Camera sensor pinout configuration -# CONFIG_CAMERA_MODULE_NAME="FaceFocusVR_Face" CONFIG_PWDN_GPIO_NUM=-1 CONFIG_RESET_GPIO_NUM=-1 @@ -637,10 +570,7 @@ CONFIG_VSYNC_GPIO_NUM=38 CONFIG_HREF_GPIO_NUM=47 CONFIG_PCLK_GPIO_NUM=13 # end of Camera sensor pinout configuration - -# # Compiler options -# # CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set # CONFIG_COMPILER_OPTIMIZATION_SIZE is not set CONFIG_COMPILER_OPTIMIZATION_PERF=y @@ -672,14 +602,8 @@ CONFIG_COMPILER_RT_LIB_NAME="gcc" CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y # CONFIG_COMPILER_STATIC_ANALYZER is not set # end of Compiler options - -# # Component config -# - -# # Application Level Tracing -# # CONFIG_APPTRACE_DEST_JTAG is not set CONFIG_APPTRACE_DEST_NONE=y # CONFIG_APPTRACE_DEST_UART1 is not set @@ -689,116 +613,65 @@ 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 - -# # Common Options -# # CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set # end of Common Options # 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 # CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK 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 # CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy MCPWM Driver Configurations - -# # Legacy Timer Group Driver Configurations -# # CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy Timer Group Driver Configurations - -# # Legacy RMT Driver Configurations -# # CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy RMT Driver Configurations - -# # Legacy I2S Driver Configurations -# # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy I2S Driver Configurations - -# # Legacy I2C Driver Configurations -# # CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy I2C Driver Configurations - -# # Legacy PCNT Driver Configurations -# # CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy PCNT Driver Configurations - -# # Legacy SDM Driver Configurations -# # CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy SDM Driver Configurations - -# # Legacy Temperature Sensor Driver Configurations -# # CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK 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 @@ -808,136 +681,82 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y # 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 # CONFIG_ESP_COEX_GPIO_DEBUG is not set # end of Wireless Coexistence - -# # Common ESP-related -# CONFIG_ESP_ERR_TO_NAME_LOOKUP=y # end of Common ESP-related - -# # 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_OBJ_CACHE_SAFE=y # 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 # CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 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:Touch Sensor Configurations -# # CONFIG_TOUCH_CTRL_FUNC_IN_IRAM is not set # CONFIG_TOUCH_ISR_IRAM_SAFE is not set # CONFIG_TOUCH_ENABLE_DEBUG_LOG is not set # end of ESP-Driver:Touch Sensor 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 @@ -946,44 +765,29 @@ CONFIG_ETH_USE_SPI_ETHERNET=y # 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 HID -# CONFIG_ESPHID_TASK_SIZE_BT=2048 CONFIG_ESPHID_TASK_SIZE_BLE=4096 # end of ESP HID - -# # 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 CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 # end of ESP HTTP client - -# # HTTP Server -# CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 CONFIG_HTTPD_MAX_URI_LEN=512 CONFIG_HTTPD_ERR_RESP_NO_DELAY=y @@ -993,51 +797,30 @@ CONFIG_HTTPD_WS_SUPPORT=y # CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 # 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 CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 # end of ESP HTTPS OTA - -# # ESP HTTPS server -# # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 # 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 CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=199 - -# # Maximum Supported ESP32-S3 eFuse Block Revision (eFuse Block Rev v1.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 @@ -1049,10 +832,7 @@ 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 @@ -1063,60 +843,38 @@ CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 # 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_HANDLER_IN_IRAM=y CONFIG_GDMA_OBJ_DRAM_SAFE=y # CONFIG_GDMA_ENABLE_DEBUG_LOG is not set # CONFIG_GDMA_ISR_IRAM_SAFE 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 - -# # ESP-Driver:LCD Controller Configurations -# # 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 ESP-Driver:LCD Controller Configurations - -# # ESP-MM: Memory Management Configurations -# # CONFIG_ESP_MM_CACHE_MSYNC_C2M_CHUNKED_OPS is not set # end of ESP-MM: Memory Management Configurations - -# # ESP NETIF Adapter -# CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 # CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set CONFIG_ESP_NETIF_TCPIP_LWIP=y @@ -1128,15 +886,9 @@ CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y # CONFIG_ESP_NETIF_BRIDGE_EN is not set # CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF 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 @@ -1152,37 +904,30 @@ CONFIG_ESP_PHY_CALIBRATION_MODE=0 # CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set # CONFIG_ESP_PHY_RECORD_USED_TIME is not set # end of PHY - -# # Power Management -# # CONFIG_PM_ENABLE is not set # CONFIG_PM_SLP_IRAM_OPT 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_MODE_QUAD=y +# CONFIG_SPIRAM_MODE_OCT is not set CONFIG_SPIRAM_TYPE_AUTO=y +# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set +# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set # CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set 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_120M 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_PRE_CONFIGURE_MEMORY_PROTECTION=y # CONFIG_SPIRAM_IGNORE_NOTFOUND is not set @@ -1197,29 +942,17 @@ CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768 # CONFIG_SPIRAM_ALLOW_NOINIT_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 Security Specific -# # end of ESP Security Specific - -# # ESP System Settings -# -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y +# 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 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 - -# # Cache config -# CONFIG_ESP32S3_INSTRUCTION_CACHE_16KB=y # CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB is not set CONFIG_ESP32S3_INSTRUCTION_CACHE_SIZE=0x4000 @@ -1241,21 +974,14 @@ CONFIG_ESP32S3_DATA_CACHE_LINE_32B=y # CONFIG_ESP32S3_DATA_CACHE_LINE_64B is not set CONFIG_ESP32S3_DATA_CACHE_LINE_SIZE=32 # 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 @@ -1263,14 +989,10 @@ CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y 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 @@ -1304,10 +1026,7 @@ CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y # 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 @@ -1318,22 +1037,15 @@ CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y # 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 @@ -1346,10 +1058,7 @@ 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=10 CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 @@ -1398,31 +1107,21 @@ CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y # 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 @@ -1465,22 +1164,13 @@ CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 # CONFIG_FATFS_USE_LABEL is not set CONFIG_FATFS_LINK_LOCK=y # CONFIG_FATFS_USE_DYN_BUFFERS is not set - -# # File system free space calculation behavior -# CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 # end of File system free space calculation behavior # end of FAT Filesystem support - -# # FreeRTOS -# - -# # Kernel -# # CONFIG_FREERTOS_SMP is not set # CONFIG_FREERTOS_UNICORE is not set CONFIG_FREERTOS_HZ=1000 @@ -1509,10 +1199,7 @@ CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set # CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set # end of Kernel - -# # Port -# # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y # CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set @@ -1528,13 +1215,9 @@ CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set # end of Port - -# # Extra -# CONFIG_FREERTOS_TASK_CREATE_ALLOW_EXT_MEM=y # end of Extra - CONFIG_FREERTOS_PORT=y CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y @@ -1543,10 +1226,7 @@ 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 @@ -1556,10 +1236,7 @@ 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 @@ -1571,14 +1248,7 @@ CONFIG_HEAP_TRACING_OFF=y # CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set # CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set # end of Heap memory debugging - -# -# Log -# - -# # Log Level -# # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set # CONFIG_LOG_DEFAULT_LEVEL_WARN is not set @@ -1590,10 +1260,7 @@ CONFIG_LOG_DEFAULT_LEVEL=3 # CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE=y CONFIG_LOG_MAXIMUM_LEVEL=5 - -# # Level Settings -# # CONFIG_LOG_MASTER_LEVEL is not set CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y # CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set @@ -1604,19 +1271,10 @@ CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 # end of Level Settings # end of Log Level - -# -# Format -# CONFIG_LOG_COLORS=y CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Format -# end of Log - -# # LWIP -# CONFIG_LWIP_ENABLE=y CONFIG_LWIP_LOCAL_HOSTNAME="espressif" # CONFIG_LWIP_NETIF_API is not set @@ -1659,17 +1317,13 @@ CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y 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 CONFIG_LWIP_DHCPS_ADD_DNS=y # end of DHCP server - # CONFIG_LWIP_AUTOIP is not set CONFIG_LWIP_IPV4=y CONFIG_LWIP_IPV6=y @@ -1679,10 +1333,7 @@ CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 # 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 @@ -1705,22 +1356,15 @@ CONFIG_LWIP_TCP_OVERSIZE_MSS=y # CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set CONFIG_LWIP_TCP_RTO_TIME=1500 # end of TCP - -# # UDP -# CONFIG_LWIP_MAX_UDP_PCBS=16 CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 # end of UDP - -# # Checksums -# # CONFIG_LWIP_CHECKSUM_CHECK_IP is not set # CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y # end of Checksums - CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set @@ -1733,46 +1377,30 @@ CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 # CONFIG_LWIP_PPP_SUPPORT is not set # 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_HOST_IP=1 CONFIG_LWIP_DNS_MAX_SERVERS=3 # CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set # CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF 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 @@ -1794,13 +1422,9 @@ 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=y # CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC is not set # CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set @@ -1810,10 +1434,7 @@ 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 @@ -1821,10 +1442,7 @@ CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 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 @@ -1833,7 +1451,6 @@ CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y # 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 @@ -1862,10 +1479,7 @@ CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y 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 @@ -1874,7 +1488,6 @@ 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 @@ -1882,10 +1495,7 @@ CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y 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 @@ -1895,18 +1505,13 @@ 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_PK_PARSE_EC_EXTENDED=y CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y @@ -1936,10 +1541,7 @@ CONFIG_MBEDTLS_ERROR_STRINGS=y CONFIG_MBEDTLS_FS_IO=y # CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set # end of mbedTLS - -# # ESP-MQTT Configurations -# CONFIG_MQTT_PROTOCOL_311=y # CONFIG_MQTT_PROTOCOL_5 is not set CONFIG_MQTT_TRANSPORT_SSL=y @@ -1952,10 +1554,7 @@ CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y # 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 @@ -1968,42 +1567,26 @@ CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y # 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 # CONFIG_NVS_ALLOCATE_CACHE_IN_SPIRAM is not set # end of NVS - -# # OpenThread -# # CONFIG_OPENTHREAD_ENABLED is not set - -# # OpenThread Spinel -# # CONFIG_OPENTHREAD_SPINEL_ONLY is not set # end of OpenThread Spinel # end of OpenThread - -# # Protocomm -# CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y # end of Protocomm - -# # PThreads -# CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 CONFIG_PTHREAD_STACK_MIN=768 @@ -2013,33 +1596,18 @@ CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y 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 @@ -2052,10 +1620,7 @@ CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 # CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set # end of Optional and Experimental Features (READ DOCS FIRST) # end of Main Flash configuration - -# # SPI Flash driver -# # CONFIG_SPI_FLASH_VERIFY_WRITE is not set # CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y @@ -2071,10 +1636,7 @@ 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 @@ -2090,23 +1652,15 @@ 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 @@ -2117,10 +1671,7 @@ 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 @@ -2129,34 +1680,19 @@ CONFIG_SPIFFS_USE_MTIME=y # 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 @@ -2165,38 +1701,24 @@ 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 - -# # Hub Driver Configuration -# - -# # Root Port 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 Port configuration - # CONFIG_USB_HOST_HUBS_SUPPORTED is not set # end of Hub Driver 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 @@ -2204,46 +1726,30 @@ 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) - CONFIG_VFS_INITIALIZE_DEV_NULL=y # 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_STA_ALL_CHANNEL_SCAN=y # CONFIG_WIFI_PROV_STA_FAST_SCAN is not set # end of Wi-Fi Provisioning Manager - -# # USB Device UVC -# CONFIG_TUSB_VID=0x303A CONFIG_TUSB_PID=0x8000 CONFIG_TUSB_MANUFACTURER="ETVR" CONFIG_TUSB_PRODUCT="OpenIris Camera" CONFIG_TUSB_SERIAL_NUM="12345678" # CONFIG_UVC_SUPPORT_TWO_CAM is not set - -# # USB Cam1 Config -# CONFIG_FORMAT_MJPEG_CAM1=y # CONFIG_FORMAT_H264_CAM1 is not set # CONFIG_FORMAT_UNCOMPR_CAM1 is not set @@ -2260,49 +1766,31 @@ CONFIG_UVC_CAM1_FRAMESIZE_WIDTH=240 CONFIG_UVC_CAM1_FRAMESIZE_HEIGT=240 CONFIG_UVC_CAM1_MULTI_FRAMESIZE=y # end of USB Cam1 Config - -# # UVC_MULTI_FRAME_CONFIG -# - -# # FRAME_SIZE_1 -# CONFIG_UVC_MULTI_FRAME_WIDTH_1=240 CONFIG_UVC_MULTI_FRAME_HEIGHT_1=240 CONFIG_UVC_MULTI_FRAME_FPS_1=60 # end of FRAME_SIZE_1 - -# # FRAME_SIZE_2 -# CONFIG_UVC_MULTI_FRAME_WIDTH_2=240 CONFIG_UVC_MULTI_FRAME_HEIGHT_2=240 CONFIG_UVC_MULTI_FRAME_FPS_2=60 # end of FRAME_SIZE_2 - -# # FRAME_SIZE_3 -# CONFIG_UVC_MULTI_FRAME_WIDTH_3=240 CONFIG_UVC_MULTI_FRAME_HEIGHT_3=240 CONFIG_UVC_MULTI_FRAME_FPS_3=60 # end of FRAME_SIZE_3 # end of UVC_MULTI_FRAME_CONFIG - -# # UVC Task Config -# CONFIG_UVC_TINYUSB_TASK_PRIORITY=4 CONFIG_UVC_TINYUSB_TASK_CORE=-1 CONFIG_UVC_CAM1_TASK_PRIORITY=3 CONFIG_UVC_CAM1_TASK_CORE=-1 # end of UVC Task Config # end of USB Device UVC - -# # CMake Utilities -# # CONFIG_CU_RELINKER_ENABLE is not set # CONFIG_CU_DIAGNOSTICS_COLOR_NEVER is not set CONFIG_CU_DIAGNOSTICS_COLOR_ALWAYS=y @@ -2310,10 +1798,7 @@ CONFIG_CU_DIAGNOSTICS_COLOR_ALWAYS=y # CONFIG_CU_GCC_LTO_ENABLE is not set # CONFIG_CU_GCC_STRING_1BYTE_ALIGN is not set # end of CMake Utilities - -# # Camera configuration -# # CONFIG_OV7670_SUPPORT is not set # CONFIG_OV7725_SUPPORT is not set # CONFIG_NT99141_SUPPORT is not set @@ -2342,10 +1827,7 @@ CONFIG_CAMERA_JPEG_MODE_FRAME_SIZE_AUTO=y # CONFIG_CAMERA_CONVERTER_ENABLED is not set # CONFIG_LCD_CAM_ISR_IRAM_SAFE is not set # end of Camera configuration - -# # mDNS -# CONFIG_MDNS_MAX_INTERFACES=3 CONFIG_MDNS_MAX_SERVICES=10 CONFIG_MDNS_TASK_PRIORITY=1 @@ -2355,17 +1837,13 @@ CONFIG_MDNS_TASK_STACK_SIZE=4096 CONFIG_MDNS_TASK_AFFINITY_CPU0=y # CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set CONFIG_MDNS_TASK_AFFINITY=0x0 - -# # MDNS Memory Configuration -# # CONFIG_MDNS_TASK_CREATE_FROM_SPIRAM is not set CONFIG_MDNS_TASK_CREATE_FROM_INTERNAL=y # CONFIG_MDNS_MEMORY_ALLOC_SPIRAM is not set CONFIG_MDNS_MEMORY_ALLOC_INTERNAL=y # CONFIG_MDNS_MEMORY_CUSTOM_IMPL is not set # end of MDNS Memory Configuration - CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000 CONFIG_MDNS_TIMER_PERIOD_MS=100 # CONFIG_MDNS_NETWORKING_SOCKET is not set @@ -2374,19 +1852,14 @@ CONFIG_MDNS_TIMER_PERIOD_MS=100 CONFIG_MDNS_ENABLE_CONSOLE_CLI=y # CONFIG_MDNS_RESPOND_REVERSE_QUERIES is not set CONFIG_MDNS_MULTIPLE_INSTANCE=y - -# # MDNS Predefined interfaces -# CONFIG_MDNS_PREDEF_NETIF_STA=y CONFIG_MDNS_PREDEF_NETIF_AP=y CONFIG_MDNS_PREDEF_NETIF_ETH=y # end of MDNS Predefined interfaces # end of mDNS # 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 @@ -2399,9 +1872,9 @@ CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y CONFIG_LOG_BOOTLOADER_LEVEL=3 # CONFIG_APP_ROLLBACK_ENABLE is not set # CONFIG_FLASH_ENCRYPTION_ENABLED is not set -# CONFIG_FLASHMODE_QIO is not set +CONFIG_FLASHMODE_QIO=y # CONFIG_FLASHMODE_QOUT is not set -CONFIG_FLASHMODE_DIO=y +# CONFIG_FLASHMODE_DIO is not set # CONFIG_FLASHMODE_DOUT is not set CONFIG_MONITOR_BAUD=115200 # CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set @@ -2449,9 +1922,9 @@ 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=y +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80 is not set # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 @@ -2579,3 +2052,24 @@ CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y CONFIG_SUPPORT_TERMIOS=y CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 # End of deprecated options +CONFIG_BLINK_LED_GPIO=y +CONFIG_BLINK_GPIO=21 +CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y +CONFIG_SPIRAM_MODE_OCT=y +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set +# CONFIG_FLASHMODE_QIO is not set +CONFIG_FLASHMODE_DIO=y +CONFIG_GENERAL_INCLUDE_UVC_MODE=y +CONFIG_START_IN_UVC_MODE=y +CONFIG_MONITORING_LED_CURRENT=y +CONFIG_MONITORING_LED_ADC_GPIO=3 +CONFIG_MONITORING_LED_GAIN=11 +CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 +CONFIG_MONITORING_LED_SAMPLES=10 +CONFIG_MONITORING_LED_INTERVAL_MS=500 +CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" +# CONFIG_GENERAL_ENABLE_WIRELESS is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set diff --git a/sdkconfig.old b/sdkconfig.old deleted file mode 100644 index c729d33..0000000 --- a/sdkconfig.old +++ /dev/null @@ -1,2532 +0,0 @@ -# -# Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.4.2 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_LCDCAM_I80_LCD_SUPPORTED=y -CONFIG_SOC_LCDCAM_RGB_LCD_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_SIMD_INSTRUCTION_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_SIMD_PREFERRED_DATA_ALIGNMENT=16 -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_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y -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_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=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_TIMER_NUM=4 -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_LCDCAM_I80_NUM_BUSES=1 -CONFIG_SOC_LCDCAM_I80_BUS_WIDTH=16 -CONFIG_SOC_LCDCAM_RGB_NUM_PANELS=1 -CONFIG_SOC_LCDCAM_RGB_DATA_WIDTH=16 -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_LP_IO_CLOCK_IS_INDEPENDENT=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_LP_TIMER_BIT_WIDTH_LO=32 -CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16 -CONFIG_SOC_TOUCH_SENSOR_VERSION=2 -CONFIG_SOC_TOUCH_SENSOR_NUM=15 -CONFIG_SOC_TOUCH_SUPPORT_SLEEP_WAKEUP=y -CONFIG_SOC_TOUCH_SUPPORT_WATERPROOF=y -CONFIG_SOC_TOUCH_SUPPORT_PROX_SENSING=y -CONFIG_SOC_TOUCH_PROXIMITY_CHANNEL_NUM=3 -CONFIG_SOC_TOUCH_PROXIMITY_MEAS_DONE_SUPPORTED=y -CONFIG_SOC_TOUCH_SAMPLE_CFG_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_PM_MODEM_PD_BY_SW=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_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP=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_TOOLCHAIN_GCC=y -CONFIG_IDF_TARGET_ARCH_XTENSA=y -CONFIG_IDF_TARGET_ARCH="xtensa" -CONFIG_IDF_TARGET="esp32s3" -CONFIG_IDF_INIT_VERSION="5.3.3" -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=y -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set - -# -# Log -# -# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set -CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y -# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set -CONFIG_BOOTLOADER_LOG_LEVEL=3 - -# -# Format -# -# CONFIG_BOOTLOADER_LOG_COLORS is not set -CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y -# end of Format -# end of Log - -# -# 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 is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set -CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 -# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set -# end of Bootloader config - -# -# Security features -# -CONFIG_SECURE_BOOT_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 -CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=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" -# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="4MB" -# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set -CONFIG_ESPTOOLPY_BEFORE_RESET=y -# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set -CONFIG_ESPTOOLPY_BEFORE="default_reset" -CONFIG_ESPTOOLPY_AFTER_RESET=y -# CONFIG_ESPTOOLPY_AFTER_NORESET is not set -CONFIG_ESPTOOLPY_AFTER="hard_reset" -CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 -# end of Serial flasher config - -# -# Partition Table -# -# CONFIG_PARTITION_TABLE_SINGLE_APP is not set -# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set -# CONFIG_PARTITION_TABLE_TWO_OTA is not set -# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set -CONFIG_PARTITION_TABLE_CUSTOM=y -CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="min_spiffs.csv" -CONFIG_PARTITION_TABLE_FILENAME="min_spiffs.csv" -CONFIG_PARTITION_TABLE_OFFSET=0x8000 -CONFIG_PARTITION_TABLE_MD5=y -# end of Partition Table - -# -# OpenIris basic configuration -# -CONFIG_ENV_GPIO_RANGE_MIN=0 -CONFIG_ENV_GPIO_RANGE_MAX=48 -CONFIG_ENV_GPIO_IN_RANGE_MAX=48 -CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 -CONFIG_BLINK_GPIO=38 -CONFIG_SUPPORTS_EXTERNAL_LED_CONTROL=y -CONFIG_LED_C_PIN=1 -CONFIG_BLINK_PERIOD=1000 -CONFIG_WIRED_MODE=y -CONFIG_MDNS_HOSTNAME="openiristracker" -CONFIG_WIFI_SSID="" -CONFIG_WIFI_PASSWORD="" -CONFIG_AP_WIFI_SSID="EyeTrackVR" -CONFIG_AP_WIFI_PASSWORD="12345678" -# end of OpenIris basic configuration - -# -# Camera sensor pinout configuration -# -CONFIG_CAMERA_MODULE_NAME="SWROOM_BABBLE_S3" -CONFIG_PWDN_GPIO_NUM=-1 -CONFIG_RESET_GPIO_NUM=-1 -CONFIG_XCLK_GPIO_NUM=4 -CONFIG_SIOD_GPIO_NUM=48 -CONFIG_SIOC_GPIO_NUM=47 -CONFIG_Y9_GPIO_NUM=13 -CONFIG_Y8_GPIO_NUM=5 -CONFIG_Y7_GPIO_NUM=6 -CONFIG_Y6_GPIO_NUM=15 -CONFIG_Y5_GPIO_NUM=17 -CONFIG_Y4_GPIO_NUM=8 -CONFIG_Y3_GPIO_NUM=18 -CONFIG_Y2_GPIO_NUM=16 -CONFIG_VSYNC_GPIO_NUM=21 -CONFIG_HREF_GPIO_NUM=14 -CONFIG_PCLK_GPIO_NUM=7 -# end of Camera sensor pinout configuration - -# -# Compiler options -# -# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set -# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set -CONFIG_COMPILER_OPTIMIZATION_PERF=y -# 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_ASSERT_NDEBUG_EVALUATE=y -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_NO_MERGE_CONSTANTS is not set -# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set -CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y -# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set -# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set -# CONFIG_COMPILER_DISABLE_GCC14_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 -# CONFIG_COMPILER_STATIC_ANALYZER is not set -# end of Compiler options - -# -# Component config -# - -# -# Application Level Tracing -# -# CONFIG_APPTRACE_DEST_JTAG is not set -CONFIG_APPTRACE_DEST_NONE=y -# CONFIG_APPTRACE_DEST_UART1 is not set -# CONFIG_APPTRACE_DEST_UART2 is not set -# CONFIG_APPTRACE_DEST_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 - -# -# Common Options -# -# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set -# end of Common Options -# 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 -# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK 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 -# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy MCPWM Driver Configurations - -# -# Legacy Timer Group Driver Configurations -# -# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy Timer Group Driver Configurations - -# -# Legacy RMT Driver Configurations -# -# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy RMT Driver Configurations - -# -# Legacy I2S Driver Configurations -# -# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy I2S Driver Configurations - -# -# Legacy I2C Driver Configurations -# -# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy I2C Driver Configurations - -# -# Legacy PCNT Driver Configurations -# -# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy PCNT Driver Configurations - -# -# Legacy SDM Driver Configurations -# -# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy SDM Driver Configurations - -# -# Legacy Temperature Sensor Driver Configurations -# -# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK 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 -# CONFIG_ESP_COEX_GPIO_DEBUG is not set -# end of Wireless Coexistence - -# -# Common ESP-related -# -CONFIG_ESP_ERR_TO_NAME_LOOKUP=y -# end of Common ESP-related - -# -# 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_OBJ_CACHE_SAFE=y -# 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 -# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 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:Touch Sensor Configurations -# -# CONFIG_TOUCH_CTRL_FUNC_IN_IRAM is not set -# CONFIG_TOUCH_ISR_IRAM_SAFE is not set -# CONFIG_TOUCH_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:Touch Sensor 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 HID -# -CONFIG_ESPHID_TASK_SIZE_BT=2048 -CONFIG_ESPHID_TASK_SIZE_BLE=4096 -# end of ESP HID - -# -# 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 -CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 -# end of ESP HTTP client - -# -# HTTP Server -# -CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 -CONFIG_HTTPD_MAX_URI_LEN=512 -CONFIG_HTTPD_ERR_RESP_NO_DELAY=y -CONFIG_HTTPD_PURGE_BUF_LEN=32 -# CONFIG_HTTPD_LOG_PURGE_DATA is not set -CONFIG_HTTPD_WS_SUPPORT=y -# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set -CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 -# 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 -CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 -# end of ESP HTTPS OTA - -# -# ESP HTTPS server -# -# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set -CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 -# 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 -CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 -CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=199 - -# -# Maximum Supported ESP32-S3 eFuse Block Revision (eFuse Block Rev v1.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_HANDLER_IN_IRAM=y -CONFIG_GDMA_OBJ_DRAM_SAFE=y -# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set -# CONFIG_GDMA_ISR_IRAM_SAFE 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 - -# -# ESP-Driver:LCD Controller Configurations -# -# 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 ESP-Driver:LCD Controller Configurations - -# -# ESP-MM: Memory Management Configurations -# -# CONFIG_ESP_MM_CACHE_MSYNC_C2M_CHUNKED_OPS is not set -# end of ESP-MM: Memory Management Configurations - -# -# ESP NETIF Adapter -# -CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 -# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set -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_REPORT_DATA_TRAFFIC=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 -# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF 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 -# CONFIG_ESP_PHY_RECORD_USED_TIME is not set -# end of PHY - -# -# Power Management -# -# CONFIG_PM_ENABLE is not set -# CONFIG_PM_SLP_IRAM_OPT 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=y -# CONFIG_SPIRAM_MODE_OCT is not set -CONFIG_SPIRAM_TYPE_AUTO=y -# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set -# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set -# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set -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_120M is not set -CONFIG_SPIRAM_SPEED_80M=y -# CONFIG_SPIRAM_SPEED_40M is not set -CONFIG_SPIRAM_SPEED=80 -CONFIG_SPIRAM_BOOT_INIT=y -CONFIG_SPIRAM_PRE_CONFIGURE_MEMORY_PROTECTION=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=y -CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=32768 -# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set -CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768 -# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set -# CONFIG_SPIRAM_ALLOW_NOINIT_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 Security Specific -# -# end of ESP Security Specific - -# -# 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=y -# CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB is not set -CONFIG_ESP32S3_INSTRUCTION_CACHE_SIZE=0x4000 -# 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_16B is not set -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=y -# CONFIG_ESP32S3_DATA_CACHE_64KB is not set -CONFIG_ESP32S3_DATA_CACHE_SIZE=0x8000 -# 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_16B is not set -CONFIG_ESP32S3_DATA_CACHE_LINE_32B=y -# CONFIG_ESP32S3_DATA_CACHE_LINE_64B is not set -CONFIG_ESP32S3_DATA_CACHE_LINE_SIZE=32 -# 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=10 -CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -CONFIG_ESP_WIFI_STATIC_TX_BUFFER=y -# CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER is not set -CONFIG_ESP_WIFI_TX_BUFFER_TYPE=0 -CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM=16 -CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y -# CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set -CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 -CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 -# CONFIG_ESP_WIFI_CSI_ENABLED is not set -CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP_WIFI_TX_BA_WIN=6 -CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP_WIFI_RX_BA_WIN=6 -CONFIG_ESP_WIFI_NVS_ENABLED=y -CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_0=y -# CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_1 is not set -CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 -CONFIG_ESP_WIFI_IRAM_OPT=y -# CONFIG_ESP_WIFI_EXTRA_IRAM_OPT is not set -CONFIG_ESP_WIFI_RX_IRAM_OPT=y -CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y -CONFIG_ESP_WIFI_ENABLE_SAE_PK=y -CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y -CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y -# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 -CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 -CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 -# CONFIG_ESP_WIFI_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_USE_STRFUNC_NONE=y -# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set -# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV 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 -# CONFIG_FATFS_USE_DYN_BUFFERS is not set - -# -# File system free space calculation behavior -# -CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 -CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 -# end of File system free space calculation behavior -# end of FAT Filesystem support - -# -# FreeRTOS -# - -# -# Kernel -# -# CONFIG_FREERTOS_SMP is not set -# CONFIG_FREERTOS_UNICORE is not set -CONFIG_FREERTOS_HZ=1000 -# 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_USE_TIMERS=y -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 is not set -# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set -# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set -# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set -# end of Kernel - -# -# Port -# -# 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_FPU_IN_ISR is not set -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_PLACE_FUNCTIONS_INTO_FLASH is not set -# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -# end of Port - -# -# Extra -# -CONFIG_FREERTOS_TASK_CREATE_ALLOW_EXT_MEM=y -# end of Extra - -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 -# - -# -# Log Level -# -# 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 is not set -# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set -CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE=y -CONFIG_LOG_MAXIMUM_LEVEL=5 - -# -# Level Settings -# -# CONFIG_LOG_MASTER_LEVEL is not set -CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y -# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set -# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set -CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y -# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set -CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y -CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 -# end of Level Settings -# end of Log Level - -# -# Format -# -CONFIG_LOG_COLORS=y -CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y -# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Format -# end of Log - -# -# 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_DOES_ACD_CHECK is not set -# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set -# 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 -CONFIG_LWIP_DHCPS_ADD_DNS=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=4 -# CONFIG_LWIP_TCP_SACK_OUT is not set -CONFIG_LWIP_TCP_OVERSIZE_MSS=y -# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set -CONFIG_LWIP_TCP_RTO_TIME=1500 -# end of TCP - -# -# UDP -# -CONFIG_LWIP_MAX_UDP_PCBS=16 -CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 -# end of UDP - -# -# Checksums -# -# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set -# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set -CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y -# end of Checksums - -CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set -CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF -CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 -CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 -CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 -CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 -CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 -# CONFIG_LWIP_PPP_SUPPORT is not set -# CONFIG_LWIP_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_HOST_IP=1 -CONFIG_LWIP_DNS_MAX_SERVERS=3 -# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set -# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set -# end of DNS - -CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 -CONFIG_LWIP_ESP_LWIP_ASSERT=y - -# -# Hooks -# -# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set -CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y -# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y -# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set -CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y -# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set -# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y -# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set -CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set -CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_INPUT_NONE=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=y -# CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC is not set -# 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_SHA1_C=y -CONFIG_MBEDTLS_SHA512_C=y -# CONFIG_MBEDTLS_SHA3_C is not set -CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y -# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set -# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set -# CONFIG_MBEDTLS_TLS_DISABLED is not set -CONFIG_MBEDTLS_TLS_SERVER=y -CONFIG_MBEDTLS_TLS_CLIENT=y -CONFIG_MBEDTLS_TLS_ENABLED=y - -# -# TLS Key Exchange Methods -# -# CONFIG_MBEDTLS_PSK_MODES is not set -CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y -# end of TLS Key Exchange Methods - -CONFIG_MBEDTLS_SSL_RENEGOTIATION=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y -# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set -# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set -CONFIG_MBEDTLS_SSL_ALPN=y -CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y -CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y - -# -# Symmetric Ciphers -# -CONFIG_MBEDTLS_AES_C=y -# CONFIG_MBEDTLS_CAMELLIA_C is not set -# CONFIG_MBEDTLS_DES_C is not set -# CONFIG_MBEDTLS_BLOWFISH_C is not set -# CONFIG_MBEDTLS_XTEA_C is not set -CONFIG_MBEDTLS_CCM_C=y -CONFIG_MBEDTLS_GCM_C=y -# CONFIG_MBEDTLS_NIST_KW_C is not set -# end of Symmetric Ciphers - -# CONFIG_MBEDTLS_RIPEMD160_C is not set - -# -# Certificates -# -CONFIG_MBEDTLS_PEM_PARSE_C=y -CONFIG_MBEDTLS_PEM_WRITE_C=y -CONFIG_MBEDTLS_X509_CRL_PARSE_C=y -CONFIG_MBEDTLS_X509_CSR_PARSE_C=y -# end of Certificates - -CONFIG_MBEDTLS_ECP_C=y -CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y -CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=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 -CONFIG_MBEDTLS_FS_IO=y -# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set -# 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 -# CONFIG_NVS_ALLOCATE_CACHE_IN_SPIRAM is not set -# end of NVS - -# -# OpenThread -# -# CONFIG_OPENTHREAD_ENABLED is not set - -# -# OpenThread Spinel -# -# CONFIG_OPENTHREAD_SPINEL_ONLY is not set -# end of OpenThread Spinel -# end of OpenThread - -# -# Protocomm -# -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=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_AUTO_SUSPEND is not set -CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 -# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set -# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set -# end of Optional and Experimental Features (READ DOCS FIRST) -# end of Main Flash configuration - -# -# SPI Flash driver -# -# CONFIG_SPI_FLASH_VERIFY_WRITE is not set -# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set -CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y -# CONFIG_SPI_FLASH_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 - -# -# Hub Driver Configuration -# - -# -# Root Port 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 Port configuration - -# CONFIG_USB_HOST_HUBS_SUPPORTED is not set -# end of Hub Driver 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) - -CONFIG_VFS_INITIALIZE_DEV_NULL=y -# 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_STA_ALL_CHANNEL_SCAN=y -# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set -# end of Wi-Fi Provisioning Manager - -# -# 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 - -# -# Camera configuration -# -# CONFIG_OV7670_SUPPORT is not set -# CONFIG_OV7725_SUPPORT is not set -# CONFIG_NT99141_SUPPORT is not set -CONFIG_OV2640_SUPPORT=y -# CONFIG_OV3660_SUPPORT is not set -CONFIG_OV5640_SUPPORT=y -# CONFIG_GC2145_SUPPORT is not set -# CONFIG_GC032A_SUPPORT is not set -# CONFIG_GC0308_SUPPORT is not set -# CONFIG_BF3005_SUPPORT is not set -# CONFIG_BF20A6_SUPPORT is not set -# CONFIG_SC101IOT_SUPPORT is not set -# CONFIG_SC030IOT_SUPPORT is not set -# CONFIG_SC031GS_SUPPORT is not set -# CONFIG_SCCB_HARDWARE_I2C_PORT0 is not set -CONFIG_SCCB_HARDWARE_I2C_PORT1=y -CONFIG_SCCB_CLK_FREQ=100000 -CONFIG_CAMERA_TASK_STACK_SIZE=30720 -CONFIG_CAMERA_CORE0=y -# CONFIG_CAMERA_CORE1 is not set -# CONFIG_CAMERA_NO_AFFINITY is not set -CONFIG_CAMERA_DMA_BUFFER_SIZE_MAX=32768 -CONFIG_CAMERA_JPEG_MODE_FRAME_SIZE_AUTO=y -# CONFIG_CAMERA_JPEG_MODE_FRAME_SIZE_CUSTOM is not set -# CONFIG_CAMERA_CONVERTER_ENABLED is not set -# CONFIG_LCD_CAM_ISR_IRAM_SAFE is not set -# end of Camera configuration - -# -# mDNS -# -CONFIG_MDNS_MAX_INTERFACES=3 -CONFIG_MDNS_MAX_SERVICES=10 -CONFIG_MDNS_TASK_PRIORITY=1 -CONFIG_MDNS_ACTION_QUEUE_LEN=16 -CONFIG_MDNS_TASK_STACK_SIZE=4096 -# CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set -CONFIG_MDNS_TASK_AFFINITY_CPU0=y -# CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set -CONFIG_MDNS_TASK_AFFINITY=0x0 -CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000 -CONFIG_MDNS_TIMER_PERIOD_MS=100 -# CONFIG_MDNS_NETWORKING_SOCKET is not set -# CONFIG_MDNS_SKIP_SUPPRESSING_OWN_QUERIES is not set -# CONFIG_MDNS_ENABLE_DEBUG_PRINTS is not set -CONFIG_MDNS_ENABLE_CONSOLE_CLI=y -# CONFIG_MDNS_RESPOND_REVERSE_QUERIES is not set -CONFIG_MDNS_MULTIPLE_INSTANCE=y - -# -# MDNS Predefined interfaces -# -CONFIG_MDNS_PREDEF_NETIF_STA=y -CONFIG_MDNS_PREDEF_NETIF_AP=y -CONFIG_MDNS_PREDEF_NETIF_ETH=y -# end of MDNS Predefined interfaces -# end of mDNS - -# -# USB Device UVC -# -CONFIG_TUSB_VID=0x303A -CONFIG_TUSB_PID=0x8000 -CONFIG_TUSB_MANUFACTURER="ETVR" -CONFIG_TUSB_PRODUCT="OpenIris Camera" -CONFIG_TUSB_SERIAL_NUM="12345678" -# CONFIG_UVC_SUPPORT_TWO_CAM is not set - -# -# USB Cam1 Config -# -CONFIG_FORMAT_MJPEG_CAM1=y -# CONFIG_FORMAT_H264_CAM1 is not set -# CONFIG_FORMAT_UNCOMPR_CAM1 is not set -# CONFIG_UVC_MODE_ISOC_CAM1 is not set -CONFIG_UVC_MODE_BULK_CAM1=y -CONFIG_FRAMESIZE_QVGA=y -# CONFIG_FRAMESIZE_HVGA is not set -# CONFIG_FRAMESIZE_VGA is not set -# CONFIG_FRAMESIZE_SVGA is not set -# CONFIG_FRAMESIZE_HD is not set -# CONFIG_FRAMESIZE_FHD is not set -CONFIG_UVC_CAM1_FRAMERATE=90 -CONFIG_UVC_CAM1_FRAMESIZE_WIDTH=240 -CONFIG_UVC_CAM1_FRAMESIZE_HEIGT=240 -CONFIG_UVC_CAM1_MULTI_FRAMESIZE=y -# end of USB Cam1 Config - -# -# UVC_MULTI_FRAME_CONFIG -# - -# -# FRAME_SIZE_1 -# -CONFIG_UVC_MULTI_FRAME_WIDTH_1=240 -CONFIG_UVC_MULTI_FRAME_HEIGHT_1=240 -CONFIG_UVC_MULTI_FRAME_FPS_1=60 -# end of FRAME_SIZE_1 - -# -# FRAME_SIZE_2 -# -CONFIG_UVC_MULTI_FRAME_WIDTH_2=240 -CONFIG_UVC_MULTI_FRAME_HEIGHT_2=240 -CONFIG_UVC_MULTI_FRAME_FPS_2=60 -# end of FRAME_SIZE_2 - -# -# FRAME_SIZE_3 -# -CONFIG_UVC_MULTI_FRAME_WIDTH_3=240 -CONFIG_UVC_MULTI_FRAME_HEIGHT_3=240 -CONFIG_UVC_MULTI_FRAME_FPS_3=60 -# end of FRAME_SIZE_3 -# end of UVC_MULTI_FRAME_CONFIG - -# -# UVC Task Config -# -CONFIG_UVC_TINYUSB_TASK_PRIORITY=4 -CONFIG_UVC_TINYUSB_TASK_CORE=-1 -CONFIG_UVC_CAM1_TASK_PRIORITY=3 -CONFIG_UVC_CAM1_TASK_CORE=-1 -# end of UVC Task Config -# end of USB Device UVC -# 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 is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set -CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y -# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set -CONFIG_LOG_BOOTLOADER_LEVEL=3 -# CONFIG_APP_ROLLBACK_ENABLE is not set -# CONFIG_FLASH_ENCRYPTION_ENABLED is not set -CONFIG_FLASHMODE_QIO=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 is not set -# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set -# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set -# 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_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=10 -CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y -# CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER is not set -CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0 -CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16 -# 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_RX_BA_WIN=6 -CONFIG_ESP32_WIFI_NVS_ENABLED=y -CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y -# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set -CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 -CONFIG_ESP32_WIFI_IRAM_OPT=y -CONFIG_ESP32_WIFI_RX_IRAM_OPT=y -CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y -CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y -CONFIG_WPA_MBEDTLS_CRYPTO=y -CONFIG_WPA_MBEDTLS_TLS_CLIENT=y -# CONFIG_WPA_WAPI_PSK is not set -# CONFIG_WPA_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_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y -# 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/tools/switchBoardType.py b/tools/switchBoardType.py index 997650c..069ea6d 100644 --- a/tools/switchBoardType.py +++ b/tools/switchBoardType.py @@ -1,5 +1,6 @@ import os import argparse +from typing import Dict, Optional, List HEADER_COLOR = "\033[95m" OKGREEN = '\033[92m' @@ -7,38 +8,125 @@ WARNING = '\033[93m' OKBLUE = '\033[94m' ENDC = '\033[0m' -sdkconfig_defaults = "sdkconfig.base_defaults" -supported_boards = [ - "xiao-esp32s3", - "project_babble", - "facefocusvr_face", - "facefocusvr_eye" -] - -parser = argparse.ArgumentParser() -parser.add_argument("-b", "--board", help="Board to switch to", choices=supported_boards) -parser.add_argument("--dry-run", help="Dry run, won't modify files", action="store_true", required=False) -parser.add_argument("--diff", help="Show the difference between base config and selected board", action="store_true", required=False) -parser.add_argument("--ssid", help="Set the SSID for the selected board", required=False, type=str, default="") -parser.add_argument("--password", help="Set the password For the provided network", required=False, type=str, default="") -parser.add_argument("--clear-wifi", help="Should we clear the wifi details", action="store_true", required=False) -args = parser.parse_args() - +BOARDS_DIR_NAME = "boards" +SDKCONFIG_DEFAULTS_FILENAME = "sdkconfig.base_defaults" def get_root_path() -> str: return os.path.split(os.path.dirname(os.path.realpath(__file__)))[0] +def get_boards_root() -> str: + return os.path.join(get_root_path(), BOARDS_DIR_NAME) + + +def enumerate_board_configs() -> Dict[str, str]: + """Walk the boards directory and build a mapping of board names to absolute file paths. + + Naming strategy: + - Relative path from boards/ to file with path separators replaced by '_'. + - If the last two path segments are identical (e.g. project_babble/project_babble) collapse to a single segment. + - For facefocusvr eye boards we keep eye_L / eye_R suffix to distinguish configs even though WHO_AM_I is same. + """ + boards_dir = get_boards_root() + mapping: Dict[str, str] = {} + if not os.path.isdir(boards_dir): + return mapping + for root, _dirs, files in os.walk(boards_dir): + for f in files: + if f == SDKCONFIG_DEFAULTS_FILENAME: + continue + rel_path = os.path.relpath(os.path.join(root, f), boards_dir) + parts = rel_path.split(os.sep) + if len(parts) >= 2 and parts[-1] == parts[-2]: # collapse duplicate tail + parts = parts[:-1] + board_key = "_".join(parts) + mapping[board_key] = os.path.join(root, f) + return mapping + + +BOARD_CONFIGS = enumerate_board_configs() + +def build_arg_parser() -> argparse.ArgumentParser: + p = argparse.ArgumentParser() + p.add_argument("-b", "--board", help="Board name (run with --list to see options). Flexible: accepts path-like or partial if unique.") + p.add_argument("--list", help="List discovered boards and exit", action="store_true") + p.add_argument("--dry-run", help="Dry run, won't modify files", action="store_true") + p.add_argument("--diff", help="Show the difference between base config and selected board", action="store_true") + p.add_argument("--ssid", help="Set the WiFi SSID", type=str, default="") + p.add_argument("--password", help="Set the WiFi password", type=str, default="") + p.add_argument("--clear-wifi", help="Clear WiFi credentials", action="store_true") + return p + +def list_boards(): + print("Discovered boards:") + width = max((len(k) for k in BOARD_CONFIGS), default=0) + for name, path in sorted(BOARD_CONFIGS.items()): + print(f" {name.ljust(width)} -> {os.path.relpath(path, get_root_path())}") + +def _suggest_boards(partial: str) -> List[str]: + if not partial: + return [] + partial_low = partial.lower() + contains = [b for b in BOARD_CONFIGS if partial_low in b.lower()] + if contains: + return contains[:10] + # simple levenshtein distance limited (manual lightweight) + def distance(a: str, b: str) -> int: + if len(a) < len(b): + a, b = b, a + prev = list(range(len(b)+1)) + for i, ca in enumerate(a, 1): + cur = [i] + for j, cb in enumerate(b, 1): + ins = cur[j-1] + 1 + dele = prev[j] + 1 + sub = prev[j-1] + (ca != cb) + cur.append(min(ins, dele, sub)) + prev = cur + return prev[-1] + ranked = sorted(BOARD_CONFIGS, key=lambda k: distance(partial_low, k.lower())) + return ranked[:5] + +def normalize_board_name(raw: Optional[str]) -> Optional[str]: + if raw is None: + return None + candidate = raw.strip() + if not candidate: + return None + candidate = candidate.replace('\\', '/').rstrip('/') + # strip leading folders like tools/, boards/ + parts = [p for p in candidate.split('/') if p not in ('.', '') and p not in ('tools', 'boards')] + if parts: + candidate = parts[-1] if len(parts) == 1 else "_".join(parts) + candidate = candidate.replace('-', '_') + # exact match + if candidate in BOARD_CONFIGS: + return candidate + # try ending match + endings = [b for b in BOARD_CONFIGS if b.endswith(candidate)] + if len(endings) == 1: + return endings[0] + if len(endings) > 1: + print(f"Ambiguous board '{raw}'. Could be: {', '.join(endings)}") + return None + # attempt case-insensitive + lower_map = {b.lower(): b for b in BOARD_CONFIGS} + if candidate.lower() in lower_map: + return lower_map[candidate.lower()] + return None + + def get_main_config_path() -> str: return os.path.join(get_root_path(), "sdkconfig") -def get_board_config_path() -> str: - return os.path.join(get_root_path(), f"sdkconfig.board.{args.board}") +def get_board_config_path(board_key: str) -> str: + return BOARD_CONFIGS[board_key] def get_base_config_path() -> str: - return os.path.join(get_root_path(), sdkconfig_defaults) + # base defaults moved under boards directory + return os.path.join(get_boards_root(), SDKCONFIG_DEFAULTS_FILENAME) def parse_config(config_file) -> dict: @@ -53,15 +141,17 @@ def parse_config(config_file) -> dict: return config -def handle_wifi_config(_new_config: dict, _main_config: dict) -> dict: - if args.ssid: - _new_config["CONFIG_WIFI_SSID"] = f"\"{args.ssid}\"" - _new_config["CONFIG_WIFI_PASSWORD"] = f"\"{args.password}\"" +def handle_wifi_config(_new_config: dict, _main_config: dict, _args) -> dict: + if _args.ssid: + _new_config["CONFIG_WIFI_SSID"] = f"\"{_args.ssid}\"" + _new_config["CONFIG_WIFI_PASSWORD"] = f"\"{_args.password}\"" else: - _new_config["CONFIG_WIFI_SSID"] = _main_config["CONFIG_WIFI_SSID"] - _new_config["CONFIG_WIFI_PASSWORD"] = _main_config["CONFIG_WIFI_PASSWORD"] + if "CONFIG_WIFI_SSID" in _main_config: + _new_config["CONFIG_WIFI_SSID"] = _main_config["CONFIG_WIFI_SSID"] + if "CONFIG_WIFI_PASSWORD" in _main_config: + _new_config["CONFIG_WIFI_PASSWORD"] = _main_config["CONFIG_WIFI_PASSWORD"] - if args.clear_wifi: + if _args.clear_wifi: _new_config["CONFIG_WIFI_SSID"] = "\"\"" _new_config["CONFIG_WIFI_PASSWORD"] = "\"\"" return _new_config @@ -79,51 +169,65 @@ def compute_diff(_parsed_base_config: dict, _parsed_board_config: dict) -> dict: return _diff -print(f"{OKGREEN}Switching configuration to board:{ENDC} {OKBLUE}{args.board}{ENDC}") -print(f"{OKGREEN}Using defaults from :{ENDC} {get_base_config_path()}", ) -print(f"{OKGREEN}Using board config from :{ENDC} {get_board_config_path()}") +def main(): + parser = build_arg_parser() + args = parser.parse_args() -main_config = open(get_main_config_path(), "r+") -parsed_main_config = parse_config(main_config) -main_config.close() + if args.list: + list_boards() + return -base_config = open(get_base_config_path(), "r") -board_config = open(get_board_config_path(), "r") + board_input = args.board + if not board_input: + parser.error("--board is required (or use --list)") + normalized = normalize_board_name(board_input) + if not normalized: + print(f"{WARNING}Unknown board '{board_input}'.") + suggestions = _suggest_boards(board_input) + if suggestions: + print("Did you mean: " + ", ".join(suggestions)) + print("Use --list to see all boards.") + raise SystemExit(2) -parsed_base_config = parse_config(base_config) -parsed_board_config = parse_config(board_config) + if not os.path.isfile(get_base_config_path()): + raise SystemExit(f"Base defaults file not found: {get_base_config_path()}") -base_config.close() -board_config.close() + print(f"{OKGREEN}Switching configuration to board:{ENDC} {OKBLUE}{normalized}{ENDC}") + print(f"{OKGREEN}Using defaults from :{ENDC} {get_base_config_path()}") + print(f"{OKGREEN}Using board config from :{ENDC} {get_board_config_path(normalized)}") -new_board_config = {**parsed_base_config, **parsed_board_config} -new_board_config = handle_wifi_config(new_board_config, parsed_main_config) + with open(get_main_config_path(), "r+") as main_config: + parsed_main_config = parse_config(main_config) -if args.diff: - print("---"*5, f"{WARNING}DIFF{ENDC}", "---"*5) - diff = compute_diff(parsed_main_config, new_board_config) - if not diff: - print(f"{HEADER_COLOR}[DIFF]{ENDC} Nothing has changed between the base config and {OKBLUE}{args.board}{ENDC} config") + with open(get_base_config_path(), "r") as base_config, open(get_board_config_path(normalized), "r") as board_config: + parsed_base_config = parse_config(base_config) + parsed_board_config = parse_config(board_config) + + new_board_config = {**parsed_base_config, **parsed_board_config} + new_board_config = handle_wifi_config(new_board_config, parsed_main_config, args) + + if args.diff: + print("---"*5, f"{WARNING}DIFF{ENDC}", "---"*5) + diff = compute_diff(parsed_main_config, new_board_config) + if not diff: + print(f"{HEADER_COLOR}[DIFF]{ENDC} No changes between existing main config and {OKBLUE}{normalized}{ENDC}") + else: + print(f"{HEADER_COLOR}[DIFF]{ENDC} Keys differing (main -> new {OKBLUE}{normalized}{ENDC}):") + for key in sorted(diff): + print(f"{HEADER_COLOR}[DIFF]{ENDC} {key} : {diff[key]}") + print("---"*14) + + if not args.dry_run: + print(f"{WARNING}Writing changes to main config file{ENDC}") + with open(get_main_config_path(), "w") as main_config: + for key, value in new_board_config.items(): + if value: + main_config.write(f"{key}={value}\n") + else: + main_config.write(f"{key}\n") else: - print(f"{HEADER_COLOR}[DIFF]{ENDC} The following keys have changed between the base config and {OKBLUE}{args.board}{ENDC} config:") - for key in diff: - print(f"{HEADER_COLOR}[DIFF]{ENDC} {key} : {diff[key]}") - print("---"*14) + print(f"{WARNING}[DRY-RUN]{ENDC} Skipping writing to files") + print(f"{OKGREEN}Done. ESP-IDF is setup to build for:{ENDC} {OKBLUE}{normalized}{ENDC}") -if not args.dry_run: - # the main idea is to always replace the main config with the base config - # and then add the board config on top of that, overriding where necessary. - # This way we can have known working defaults safe from accidental modifications by espidf - # with know working per-board config - # and a still modifiable sdkconfig for espidf - - print(f"{WARNING}Writing changes to main config file{ENDC}") - with open(get_main_config_path(), "w") as main_config: - for key, value in new_board_config.items(): - if value: - main_config.write(f"{key}={value}\n") - else: - main_config.write(f"{key}\n") -else: - print(f"{WARNING}[DRY-RUN]{ENDC} Skipping writing to files") -print(f"{OKGREEN}Done. ESP-IDF is setup to build for:{ENDC} {OKBLUE}{args.board}{ENDC}") +if __name__ == "__main__": # pragma: no cover + main() \ No newline at end of file From 6f926306b5ac55661001864e2821df6b9524f79b Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 12:59:18 +0200 Subject: [PATCH 11/30] Adding new Kconfig options and updating LEDManager code for conditional debug LED and external error mirroring --- boards/facefocusvr/eye_L | 7 +- boards/facefocusvr/eye_R | 7 +- boards/facefocusvr/face | 5 +- .../LEDManager/LEDManager/LEDManager.cpp | 43 +- .../LEDManager/LEDManager/LEDManager.hpp | 5 + main/Kconfig.projbuild | 19 + main/openiris_main.cpp | 5 + sdkconfig | 592 ++++++++++++++++-- 8 files changed, 635 insertions(+), 48 deletions(-) diff --git a/boards/facefocusvr/eye_L b/boards/facefocusvr/eye_L index 569a13c..af9c1e7 100644 --- a/boards/facefocusvr/eye_L +++ b/boards/facefocusvr/eye_L @@ -67,7 +67,7 @@ CONFIG_MONITORING_LED_GAIN=11 CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_INTERVAL_MS=500 -CONFIG_GENERAL_BOARD="facefocusvr_eye" +CONFIG_GENERAL_BOARD="facefocusvr_eye_l" # CONFIG_GENERAL_ENABLE_WIRELESS is not set CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set @@ -76,4 +76,7 @@ CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 \ No newline at end of file +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 +# CONFIG_LED_DEBUG_ENABLE is not set +CONFIG_LED_EXTERNAL_AS_DEBUG=y +CONFIG_GENERAL_ADVERTISED_NAME="FFVR Eye L" \ No newline at end of file diff --git a/boards/facefocusvr/eye_R b/boards/facefocusvr/eye_R index 569a13c..3aa4509 100644 --- a/boards/facefocusvr/eye_R +++ b/boards/facefocusvr/eye_R @@ -67,7 +67,7 @@ CONFIG_MONITORING_LED_GAIN=11 CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_INTERVAL_MS=500 -CONFIG_GENERAL_BOARD="facefocusvr_eye" +CONFIG_GENERAL_BOARD="facefocusvr_eye_r" # CONFIG_GENERAL_ENABLE_WIRELESS is not set CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set @@ -76,4 +76,7 @@ CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 \ No newline at end of file +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 +# CONFIG_LED_DEBUG_ENABLE is not set +CONFIG_LED_EXTERNAL_AS_DEBUG=y +CONFIG_GENERAL_ADVERTISED_NAME="FFVR Eye R" \ No newline at end of file diff --git a/boards/facefocusvr/face b/boards/facefocusvr/face index a200f60..0f46bcb 100644 --- a/boards/facefocusvr/face +++ b/boards/facefocusvr/face @@ -76,4 +76,7 @@ CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 \ No newline at end of file +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 +# CONFIG_LED_DEBUG_ENABLE is not set +CONFIG_LED_EXTERNAL_AS_DEBUG=y +CONFIG_GENERAL_ADVERTISED_NAME="FFVR Face" \ No newline at end of file diff --git a/components/LEDManager/LEDManager/LEDManager.cpp b/components/LEDManager/LEDManager/LEDManager.cpp index f2e7568..e71ddfe 100644 --- a/components/LEDManager/LEDManager/LEDManager.cpp +++ b/components/LEDManager/LEDManager/LEDManager.cpp @@ -73,10 +73,13 @@ LEDManager::LEDManager(gpio_num_t pin, gpio_num_t illumninator_led_pin, void LEDManager::setup() { ESP_LOGI(LED_MANAGER_TAG, "Setting up status led."); +#ifdef CONFIG_LED_DEBUG_ENABLE gpio_reset_pin(blink_led_pin); - /* Set the GPIO as a push/pull output */ gpio_set_direction(blink_led_pin, GPIO_MODE_OUTPUT); this->toggleLED(LED_OFF); +#else + ESP_LOGI(LED_MANAGER_TAG, "Debug LED disabled via Kconfig (LED_DEBUG_ENABLE=n)"); +#endif #ifdef CONFIG_LED_EXTERNAL_CONTROL ESP_LOGI(LED_MANAGER_TAG, "Setting up illuminator led."); @@ -168,6 +171,31 @@ void LEDManager::updateState(const LEDStates_e newState) if (newState == this->currentState) return; + // Handle external LED mirroring transitions (store/restore duty) +#if defined(CONFIG_LED_EXTERNAL_CONTROL) && defined(CONFIG_LED_EXTERNAL_AS_DEBUG) + bool wasError = ledStateMap[this->currentState].isError; + bool willBeError = ledStateMap[newState].isError; + if (!wasError && willBeError) + { + // store current duty once + if (!hasStoredExternalDuty) + { + storedExternalDuty = ledc_get_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0); + hasStoredExternalDuty = true; + } + } + else if (wasError && !willBeError) + { + // restore duty + if (hasStoredExternalDuty) + { + ESP_ERROR_CHECK_WITHOUT_ABORT(ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, storedExternalDuty)); + ESP_ERROR_CHECK_WITHOUT_ABORT(ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0)); + hasStoredExternalDuty = false; + } + } +#endif + this->currentState = newState; this->currentPatternIndex = 0; this->finishedPattern = false; @@ -175,7 +203,20 @@ void LEDManager::updateState(const LEDStates_e newState) void LEDManager::toggleLED(const bool state) const { +#ifdef CONFIG_LED_DEBUG_ENABLE gpio_set_level(blink_led_pin, state); +#endif + +#if defined(CONFIG_LED_EXTERNAL_CONTROL) && defined(CONFIG_LED_EXTERNAL_AS_DEBUG) + // Mirror only for error states + if (ledStateMap.contains(this->currentState) && ledStateMap.at(this->currentState).isError) + { + // For pattern ON use 50%, OFF use 0% + uint32_t duty = (state == LED_ON) ? ((50 * 255) / 100) : 0; + ESP_ERROR_CHECK_WITHOUT_ABORT(ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, duty)); + ESP_ERROR_CHECK_WITHOUT_ABORT(ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0)); + } +#endif } void LEDManager::setExternalLEDDutyCycle(uint8_t dutyPercent) diff --git a/components/LEDManager/LEDManager/LEDManager.hpp b/components/LEDManager/LEDManager/LEDManager.hpp index 8f0838f..0129c3b 100644 --- a/components/LEDManager/LEDManager/LEDManager.hpp +++ b/components/LEDManager/LEDManager/LEDManager.hpp @@ -70,6 +70,11 @@ private: size_t currentPatternIndex = 0; size_t timeToDelayFor = 100; bool finishedPattern = false; + +#if defined(CONFIG_LED_EXTERNAL_CONTROL) && defined(CONFIG_LED_EXTERNAL_AS_DEBUG) + mutable bool hasStoredExternalDuty = false; + mutable uint32_t storedExternalDuty = 0; // raw 0-255 +#endif }; void HandleLEDDisplayTask(void *pvParameter); diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index bc81684..b2ea550 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -109,6 +109,14 @@ endmenu menu "OpenIris: LED Configuration" + config LED_DEBUG_ENABLE + bool "Enable debug/status LED" + default y + help + When disabled the firmware will not drive the dedicated debug/status GPIO. + Useful on boards without a discrete status LED. Error/state patterns can + optionally be mirrored onto the external IR LED if LED_EXTERNAL_AS_DEBUG is set. + config LED_DEBUG_GPIO int "Debug LED GPIO number" range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX @@ -130,6 +138,17 @@ menu "OpenIris: LED Configuration" help Enable this if your board can control external IR LEDs. + config LED_EXTERNAL_AS_DEBUG + bool "Mirror error pattern on external LED" + depends on LED_EXTERNAL_CONTROL + default n + help + When enabled and an error LED pattern is active, the external IR LED PWM output + will blink (0% / 50% duty) to replicate the debug/status LED pattern. If + LED_DEBUG_ENABLE is disabled this provides visual error feedback using only + the external LED. Normal configured PWM brightness is restored when leaving + the error pattern. + config LED_EXTERNAL_PWM_FREQ int "External LED PWM frequency (Hz)" default 5000 diff --git a/main/openiris_main.cpp b/main/openiris_main.cpp index 729fe51..3f2761b 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -28,7 +28,12 @@ #include #endif +#ifdef CONFIG_LED_DEBUG_ENABLE #define BLINK_GPIO (gpio_num_t) CONFIG_LED_DEBUG_GPIO +#else +// Use an invalid / unused GPIO when debug LED disabled to avoid accidental toggles +#define BLINK_GPIO (gpio_num_t) -1 +#endif #define CONFIG_LED_C_PIN_GPIO (gpio_num_t) CONFIG_LED_EXTERNAL_GPIO TaskHandle_t serialManagerHandle; diff --git a/sdkconfig b/sdkconfig index 961d096..b73e8eb 100644 --- a/sdkconfig +++ b/sdkconfig @@ -1,6 +1,7 @@ # # Automatically generated file. DO NOT EDIT. # Espressif IoT Development Framework (ESP-IDF) 5.4.2 Project Configuration +# CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 CONFIG_SOC_ADC_SUPPORTED=y @@ -374,11 +375,13 @@ CONFIG_IDF_TOOLCHAIN_GCC=y CONFIG_IDF_TARGET_ARCH_XTENSA=y CONFIG_IDF_TARGET_ARCH="xtensa" CONFIG_IDF_TARGET="esp32s3" -CONFIG_IDF_INIT_VERSION="$IDF_INIT_VERSION" +CONFIG_IDF_INIT_VERSION="5.4.2" 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 @@ -387,17 +390,27 @@ 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=y # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set + +# # Log +# # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set @@ -405,15 +418,22 @@ CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y # CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set CONFIG_BOOTLOADER_LOG_LEVEL=3 + +# # Format +# # CONFIG_BOOTLOADER_LOG_COLORS is not set CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y # end of Format # end of Log + +# # 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 @@ -428,7 +448,10 @@ CONFIG_BOOTLOADER_WDT_TIME_MS=9000 CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 # CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set # 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 @@ -436,13 +459,17 @@ CONFIG_SECURE_BOOT_V2_PREFERRED=y # 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 @@ -471,19 +498,25 @@ CONFIG_ESP_ROM_HAS_SW_FLOAT=y CONFIG_ESP_ROM_HAS_VERSION=y CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=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_QIO is not set # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -# CONFIG_ESPTOOLPY_FLASHMODE_DIO is not set +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y # CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y CONFIG_ESPTOOLPY_FLASHMODE="dio" @@ -494,8 +527,8 @@ CONFIG_ESPTOOLPY_FLASHFREQ_80M=y CONFIG_ESPTOOLPY_FLASHFREQ="80m" # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set +CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y # CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set @@ -510,7 +543,10 @@ CONFIG_ESPTOOLPY_AFTER_RESET=y 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 @@ -521,37 +557,70 @@ CONFIG_PARTITION_TABLE_FILENAME="min_spiffs.csv" CONFIG_PARTITION_TABLE_OFFSET=0x8000 CONFIG_PARTITION_TABLE_MD5=y # end of Partition Table + +# # ENV_Caps +# CONFIG_ENV_GPIO_RANGE_MIN=0 CONFIG_ENV_GPIO_RANGE_MAX=48 CONFIG_ENV_GPIO_IN_RANGE_MAX=48 CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 # end of ENV_Caps + +# # OpenIris: General Configuration -# CONFIG_GENERAL_INCLUDE_UVC_MODE is not set -# CONFIG_START_IN_UVC_MODE is not set -# CONFIG_GENERAL_STARTUP_DELAY is not set -CONFIG_GENERAL_Version="0.0.1" +# +CONFIG_START_IN_UVC_MODE=y +CONFIG_GENERAL_INCLUDE_UVC_MODE=y +CONFIG_GENERAL_STARTUP_DELAY=30 +# CONFIG_GENERAL_ENABLE_WIRELESS is not set +CONFIG_GENERAL_BOARD="facefocusvr_face" +CONFIG_GENERAL_VERSION="0.0.1" +CONFIG_GENERAL_ADVERTISED_NAME="FFVR Face" # end of OpenIris: General Configuration + +# # OpenIris: Camera Configuration +# CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_CAMERA_WIFI_XCLK_FREQ=16500000 # end of OpenIris: Camera Configuration + +# # OpenIris: WiFi Configuration -CONFIG_WIFI_MDNS_HOSTNAME="openiristracker" +# CONFIG_WIFI_SSID="" CONFIG_WIFI_PASSWORD="" CONFIG_WIFI_AP_SSID="EyeTrackVR" CONFIG_WIFI_AP_PASSWORD="12345678" # end of OpenIris: WiFi Configuration + +# # OpenIris: LED Configuration +# +# CONFIG_LED_DEBUG_ENABLE is not set CONFIG_LED_DEBUG_GPIO=8 CONFIG_LED_EXTERNAL_GPIO=9 CONFIG_LED_EXTERNAL_CONTROL=y +CONFIG_LED_EXTERNAL_AS_DEBUG=y CONFIG_LED_EXTERNAL_PWM_FREQ=20000 CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=85 # end of OpenIris: LED Configuration + +# +# OpenIris: Monitoring +# +CONFIG_MONITORING_LED_CURRENT=y +CONFIG_MONITORING_LED_ADC_GPIO=3 +CONFIG_MONITORING_LED_GAIN=11 +CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 +CONFIG_MONITORING_LED_SAMPLES=10 +CONFIG_MONITORING_LED_INTERVAL_MS=500 +# end of OpenIris: Monitoring + +# # Camera sensor pinout configuration +# CONFIG_CAMERA_MODULE_NAME="FaceFocusVR_Face" CONFIG_PWDN_GPIO_NUM=-1 CONFIG_RESET_GPIO_NUM=-1 @@ -570,7 +639,10 @@ CONFIG_VSYNC_GPIO_NUM=38 CONFIG_HREF_GPIO_NUM=47 CONFIG_PCLK_GPIO_NUM=13 # end of Camera sensor pinout configuration + +# # Compiler options +# # CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set # CONFIG_COMPILER_OPTIMIZATION_SIZE is not set CONFIG_COMPILER_OPTIMIZATION_PERF=y @@ -602,8 +674,14 @@ CONFIG_COMPILER_RT_LIB_NAME="gcc" CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y # CONFIG_COMPILER_STATIC_ANALYZER is not set # end of Compiler options + +# # Component config +# + +# # Application Level Tracing +# # CONFIG_APPTRACE_DEST_JTAG is not set CONFIG_APPTRACE_DEST_NONE=y # CONFIG_APPTRACE_DEST_UART1 is not set @@ -613,65 +691,116 @@ 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 + +# # Common Options +# # CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set # end of Common Options # 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 # CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK 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 # CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy MCPWM Driver Configurations + +# # Legacy Timer Group Driver Configurations +# # CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy Timer Group Driver Configurations + +# # Legacy RMT Driver Configurations +# # CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy RMT Driver Configurations + +# # Legacy I2S Driver Configurations +# # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy I2S Driver Configurations + +# # Legacy I2C Driver Configurations +# # CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy I2C Driver Configurations + +# # Legacy PCNT Driver Configurations +# # CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy PCNT Driver Configurations + +# # Legacy SDM Driver Configurations +# # CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy SDM Driver Configurations + +# # Legacy Temperature Sensor Driver Configurations +# # CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set # CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK 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 @@ -681,82 +810,136 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y # 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 # CONFIG_ESP_COEX_GPIO_DEBUG is not set # end of Wireless Coexistence + +# # Common ESP-related +# CONFIG_ESP_ERR_TO_NAME_LOOKUP=y # end of Common ESP-related + +# # 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_OBJ_CACHE_SAFE=y # 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 # CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 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:Touch Sensor Configurations +# # CONFIG_TOUCH_CTRL_FUNC_IN_IRAM is not set # CONFIG_TOUCH_ISR_IRAM_SAFE is not set # CONFIG_TOUCH_ENABLE_DEBUG_LOG is not set # end of ESP-Driver:Touch Sensor 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 @@ -765,29 +948,44 @@ CONFIG_ETH_USE_SPI_ETHERNET=y # 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 HID +# CONFIG_ESPHID_TASK_SIZE_BT=2048 CONFIG_ESPHID_TASK_SIZE_BLE=4096 # end of ESP HID + +# # 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 CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 # end of ESP HTTP client + +# # HTTP Server +# CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 CONFIG_HTTPD_MAX_URI_LEN=512 CONFIG_HTTPD_ERR_RESP_NO_DELAY=y @@ -797,30 +995,51 @@ CONFIG_HTTPD_WS_SUPPORT=y # CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 # 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 CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 # end of ESP HTTPS OTA + +# # ESP HTTPS server +# # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 # 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 CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=199 + +# # Maximum Supported ESP32-S3 eFuse Block Revision (eFuse Block Rev v1.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 @@ -832,7 +1051,10 @@ 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 @@ -843,38 +1065,60 @@ CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 # 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_HANDLER_IN_IRAM=y CONFIG_GDMA_OBJ_DRAM_SAFE=y # CONFIG_GDMA_ENABLE_DEBUG_LOG is not set # CONFIG_GDMA_ISR_IRAM_SAFE 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 + +# # ESP-Driver:LCD Controller Configurations +# # 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 ESP-Driver:LCD Controller Configurations + +# # ESP-MM: Memory Management Configurations +# # CONFIG_ESP_MM_CACHE_MSYNC_C2M_CHUNKED_OPS is not set # end of ESP-MM: Memory Management Configurations + +# # ESP NETIF Adapter +# CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 # CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set CONFIG_ESP_NETIF_TCPIP_LWIP=y @@ -886,9 +1130,15 @@ CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y # CONFIG_ESP_NETIF_BRIDGE_EN is not set # CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF 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 @@ -904,30 +1154,37 @@ CONFIG_ESP_PHY_CALIBRATION_MODE=0 # CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set # CONFIG_ESP_PHY_RECORD_USED_TIME is not set # end of PHY + +# # Power Management +# # CONFIG_PM_ENABLE is not set # CONFIG_PM_SLP_IRAM_OPT 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=y -# CONFIG_SPIRAM_MODE_OCT is not set +# +# CONFIG_SPIRAM_MODE_QUAD is not set +CONFIG_SPIRAM_MODE_OCT=y CONFIG_SPIRAM_TYPE_AUTO=y -# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set -# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set # CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set 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_120M 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_PRE_CONFIGURE_MEMORY_PROTECTION=y # CONFIG_SPIRAM_IGNORE_NOTFOUND is not set @@ -942,17 +1199,29 @@ CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768 # CONFIG_SPIRAM_ALLOW_NOINIT_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 Security Specific +# # end of ESP Security Specific + +# # ESP System Settings -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set +# +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y # 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 is not set CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 + +# # Cache config +# CONFIG_ESP32S3_INSTRUCTION_CACHE_16KB=y # CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB is not set CONFIG_ESP32S3_INSTRUCTION_CACHE_SIZE=0x4000 @@ -974,14 +1243,21 @@ CONFIG_ESP32S3_DATA_CACHE_LINE_32B=y # CONFIG_ESP32S3_DATA_CACHE_LINE_64B is not set CONFIG_ESP32S3_DATA_CACHE_LINE_SIZE=32 # 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 @@ -989,10 +1265,14 @@ CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y 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 @@ -1026,7 +1306,10 @@ CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y # 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 @@ -1037,15 +1320,22 @@ CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y # 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 @@ -1058,7 +1348,10 @@ 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=10 CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 @@ -1107,21 +1400,31 @@ CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y # 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 @@ -1164,13 +1467,22 @@ CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 # CONFIG_FATFS_USE_LABEL is not set CONFIG_FATFS_LINK_LOCK=y # CONFIG_FATFS_USE_DYN_BUFFERS is not set + +# # File system free space calculation behavior +# CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 # end of File system free space calculation behavior # end of FAT Filesystem support + +# # FreeRTOS +# + +# # Kernel +# # CONFIG_FREERTOS_SMP is not set # CONFIG_FREERTOS_UNICORE is not set CONFIG_FREERTOS_HZ=1000 @@ -1199,7 +1511,10 @@ CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set # CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set # end of Kernel + +# # Port +# # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y # CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set @@ -1215,9 +1530,13 @@ CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set # end of Port + +# # Extra +# CONFIG_FREERTOS_TASK_CREATE_ALLOW_EXT_MEM=y # end of Extra + CONFIG_FREERTOS_PORT=y CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y @@ -1226,7 +1545,10 @@ 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 @@ -1236,7 +1558,10 @@ 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 @@ -1248,7 +1573,14 @@ CONFIG_HEAP_TRACING_OFF=y # CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set # CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set # end of Heap memory debugging + +# +# Log +# + +# # Log Level +# # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set # CONFIG_LOG_DEFAULT_LEVEL_WARN is not set @@ -1260,7 +1592,10 @@ CONFIG_LOG_DEFAULT_LEVEL=3 # CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE=y CONFIG_LOG_MAXIMUM_LEVEL=5 + +# # Level Settings +# # CONFIG_LOG_MASTER_LEVEL is not set CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y # CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set @@ -1271,10 +1606,19 @@ CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 # end of Level Settings # end of Log Level + +# +# Format +# CONFIG_LOG_COLORS=y CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set +# end of Format +# end of Log + +# # LWIP +# CONFIG_LWIP_ENABLE=y CONFIG_LWIP_LOCAL_HOSTNAME="espressif" # CONFIG_LWIP_NETIF_API is not set @@ -1317,13 +1661,17 @@ CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y 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 CONFIG_LWIP_DHCPS_ADD_DNS=y # end of DHCP server + # CONFIG_LWIP_AUTOIP is not set CONFIG_LWIP_IPV4=y CONFIG_LWIP_IPV6=y @@ -1333,7 +1681,10 @@ CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 # 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 @@ -1356,15 +1707,22 @@ CONFIG_LWIP_TCP_OVERSIZE_MSS=y # CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set CONFIG_LWIP_TCP_RTO_TIME=1500 # end of TCP + +# # UDP +# CONFIG_LWIP_MAX_UDP_PCBS=16 CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 # end of UDP + +# # Checksums +# # CONFIG_LWIP_CHECKSUM_CHECK_IP is not set # CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y # end of Checksums + CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set @@ -1377,30 +1735,46 @@ CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 # CONFIG_LWIP_PPP_SUPPORT is not set # 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_HOST_IP=1 CONFIG_LWIP_DNS_MAX_SERVERS=3 # CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set # CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF 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 @@ -1422,9 +1796,13 @@ 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=y # CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC is not set # CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set @@ -1434,7 +1812,10 @@ 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 @@ -1442,7 +1823,10 @@ CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 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 @@ -1451,6 +1835,7 @@ CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y # 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 @@ -1479,7 +1864,10 @@ CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y 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 @@ -1488,6 +1876,7 @@ 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 @@ -1495,7 +1884,10 @@ CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y 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 @@ -1505,13 +1897,18 @@ 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_PK_PARSE_EC_EXTENDED=y CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y @@ -1541,7 +1938,10 @@ CONFIG_MBEDTLS_ERROR_STRINGS=y CONFIG_MBEDTLS_FS_IO=y # CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set # end of mbedTLS + +# # ESP-MQTT Configurations +# CONFIG_MQTT_PROTOCOL_311=y # CONFIG_MQTT_PROTOCOL_5 is not set CONFIG_MQTT_TRANSPORT_SSL=y @@ -1554,7 +1954,10 @@ CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y # 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 @@ -1567,26 +1970,42 @@ CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y # 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 # CONFIG_NVS_ALLOCATE_CACHE_IN_SPIRAM is not set # end of NVS + +# # OpenThread +# # CONFIG_OPENTHREAD_ENABLED is not set + +# # OpenThread Spinel +# # CONFIG_OPENTHREAD_SPINEL_ONLY is not set # end of OpenThread Spinel # end of OpenThread + +# # Protocomm +# CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y # end of Protocomm + +# # PThreads +# CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 CONFIG_PTHREAD_STACK_MIN=768 @@ -1596,18 +2015,33 @@ CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y 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 @@ -1620,7 +2054,10 @@ CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 # CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set # end of Optional and Experimental Features (READ DOCS FIRST) # end of Main Flash configuration + +# # SPI Flash driver +# # CONFIG_SPI_FLASH_VERIFY_WRITE is not set # CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y @@ -1636,7 +2073,10 @@ 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 @@ -1652,15 +2092,23 @@ 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 @@ -1671,7 +2119,10 @@ 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 @@ -1680,19 +2131,34 @@ CONFIG_SPIFFS_USE_MTIME=y # 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 @@ -1701,24 +2167,38 @@ 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 + +# # Hub Driver Configuration +# + +# # Root Port 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 Port configuration + # CONFIG_USB_HOST_HUBS_SUPPORTED is not set # end of Hub Driver 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 @@ -1726,30 +2206,46 @@ 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) + CONFIG_VFS_INITIALIZE_DEV_NULL=y # 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_STA_ALL_CHANNEL_SCAN=y # CONFIG_WIFI_PROV_STA_FAST_SCAN is not set # end of Wi-Fi Provisioning Manager + +# # USB Device UVC +# CONFIG_TUSB_VID=0x303A CONFIG_TUSB_PID=0x8000 CONFIG_TUSB_MANUFACTURER="ETVR" CONFIG_TUSB_PRODUCT="OpenIris Camera" CONFIG_TUSB_SERIAL_NUM="12345678" # CONFIG_UVC_SUPPORT_TWO_CAM is not set + +# # USB Cam1 Config +# CONFIG_FORMAT_MJPEG_CAM1=y # CONFIG_FORMAT_H264_CAM1 is not set # CONFIG_FORMAT_UNCOMPR_CAM1 is not set @@ -1766,31 +2262,49 @@ CONFIG_UVC_CAM1_FRAMESIZE_WIDTH=240 CONFIG_UVC_CAM1_FRAMESIZE_HEIGT=240 CONFIG_UVC_CAM1_MULTI_FRAMESIZE=y # end of USB Cam1 Config + +# # UVC_MULTI_FRAME_CONFIG +# + +# # FRAME_SIZE_1 +# CONFIG_UVC_MULTI_FRAME_WIDTH_1=240 CONFIG_UVC_MULTI_FRAME_HEIGHT_1=240 CONFIG_UVC_MULTI_FRAME_FPS_1=60 # end of FRAME_SIZE_1 + +# # FRAME_SIZE_2 +# CONFIG_UVC_MULTI_FRAME_WIDTH_2=240 CONFIG_UVC_MULTI_FRAME_HEIGHT_2=240 CONFIG_UVC_MULTI_FRAME_FPS_2=60 # end of FRAME_SIZE_2 + +# # FRAME_SIZE_3 +# CONFIG_UVC_MULTI_FRAME_WIDTH_3=240 CONFIG_UVC_MULTI_FRAME_HEIGHT_3=240 CONFIG_UVC_MULTI_FRAME_FPS_3=60 # end of FRAME_SIZE_3 # end of UVC_MULTI_FRAME_CONFIG + +# # UVC Task Config +# CONFIG_UVC_TINYUSB_TASK_PRIORITY=4 CONFIG_UVC_TINYUSB_TASK_CORE=-1 CONFIG_UVC_CAM1_TASK_PRIORITY=3 CONFIG_UVC_CAM1_TASK_CORE=-1 # end of UVC Task Config # end of USB Device UVC + +# # CMake Utilities +# # CONFIG_CU_RELINKER_ENABLE is not set # CONFIG_CU_DIAGNOSTICS_COLOR_NEVER is not set CONFIG_CU_DIAGNOSTICS_COLOR_ALWAYS=y @@ -1798,7 +2312,10 @@ CONFIG_CU_DIAGNOSTICS_COLOR_ALWAYS=y # CONFIG_CU_GCC_LTO_ENABLE is not set # CONFIG_CU_GCC_STRING_1BYTE_ALIGN is not set # end of CMake Utilities + +# # Camera configuration +# # CONFIG_OV7670_SUPPORT is not set # CONFIG_OV7725_SUPPORT is not set # CONFIG_NT99141_SUPPORT is not set @@ -1827,7 +2344,10 @@ CONFIG_CAMERA_JPEG_MODE_FRAME_SIZE_AUTO=y # CONFIG_CAMERA_CONVERTER_ENABLED is not set # CONFIG_LCD_CAM_ISR_IRAM_SAFE is not set # end of Camera configuration + +# # mDNS +# CONFIG_MDNS_MAX_INTERFACES=3 CONFIG_MDNS_MAX_SERVICES=10 CONFIG_MDNS_TASK_PRIORITY=1 @@ -1837,13 +2357,17 @@ CONFIG_MDNS_TASK_STACK_SIZE=4096 CONFIG_MDNS_TASK_AFFINITY_CPU0=y # CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set CONFIG_MDNS_TASK_AFFINITY=0x0 + +# # MDNS Memory Configuration +# # CONFIG_MDNS_TASK_CREATE_FROM_SPIRAM is not set CONFIG_MDNS_TASK_CREATE_FROM_INTERNAL=y # CONFIG_MDNS_MEMORY_ALLOC_SPIRAM is not set CONFIG_MDNS_MEMORY_ALLOC_INTERNAL=y # CONFIG_MDNS_MEMORY_CUSTOM_IMPL is not set # end of MDNS Memory Configuration + CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000 CONFIG_MDNS_TIMER_PERIOD_MS=100 # CONFIG_MDNS_NETWORKING_SOCKET is not set @@ -1852,14 +2376,19 @@ CONFIG_MDNS_TIMER_PERIOD_MS=100 CONFIG_MDNS_ENABLE_CONSOLE_CLI=y # CONFIG_MDNS_RESPOND_REVERSE_QUERIES is not set CONFIG_MDNS_MULTIPLE_INSTANCE=y + +# # MDNS Predefined interfaces +# CONFIG_MDNS_PREDEF_NETIF_STA=y CONFIG_MDNS_PREDEF_NETIF_AP=y CONFIG_MDNS_PREDEF_NETIF_ETH=y # end of MDNS Predefined interfaces # end of mDNS # 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 @@ -1872,9 +2401,9 @@ CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y CONFIG_LOG_BOOTLOADER_LEVEL=3 # CONFIG_APP_ROLLBACK_ENABLE is not set # CONFIG_FLASH_ENCRYPTION_ENABLED is not set -CONFIG_FLASHMODE_QIO=y +# CONFIG_FLASHMODE_QIO is not set # CONFIG_FLASHMODE_QOUT is not set -# CONFIG_FLASHMODE_DIO is not set +CONFIG_FLASHMODE_DIO=y # CONFIG_FLASHMODE_DOUT is not set CONFIG_MONITOR_BAUD=115200 # CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set @@ -1922,9 +2451,9 @@ 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_80=y # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 @@ -2052,24 +2581,3 @@ CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y CONFIG_SUPPORT_TERMIOS=y CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 # End of deprecated options -CONFIG_BLINK_LED_GPIO=y -CONFIG_BLINK_GPIO=21 -CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y -CONFIG_SPIRAM_MODE_OCT=y -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set -# CONFIG_FLASHMODE_QIO is not set -CONFIG_FLASHMODE_DIO=y -CONFIG_GENERAL_INCLUDE_UVC_MODE=y -CONFIG_START_IN_UVC_MODE=y -CONFIG_MONITORING_LED_CURRENT=y -CONFIG_MONITORING_LED_ADC_GPIO=3 -CONFIG_MONITORING_LED_GAIN=11 -CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 -CONFIG_MONITORING_LED_SAMPLES=10 -CONFIG_MONITORING_LED_INTERVAL_MS=500 -CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" -# CONFIG_GENERAL_ENABLE_WIRELESS is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set From b1db58ee4c87b7274400a23b2da7a550a1644070 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 13:07:16 +0200 Subject: [PATCH 12/30] Enhance LED status documentation and patterns in LEDManager and StateManager --- README.md | 24 +++++++ .../LEDManager/LEDManager/LEDManager.cpp | 72 +++++-------------- .../StateManager/StateManager.hpp | 16 +++-- 3 files changed, 49 insertions(+), 63 deletions(-) diff --git a/README.md b/README.md index cf292e2..050a64e 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,30 @@ If you want to dig deeper: commands are mapped via the `CommandManager` under `c --- ## Troubleshooting +### LED Status / Error Patterns +The firmware uses a small set of LED patterns to indicate status and blocking errors. When `LED_DEBUG_ENABLE` is disabled and `LED_EXTERNAL_AS_DEBUG` is enabled the external IR LED mirrors ONLY error patterns (0%/50% duty). Non‑error patterns are not mirrored. + +| State | Category | Repeat | Pattern (ON/OFF ms) | Meaning | +|-------|----------|--------|---------------------|---------| +| LedStateNone | idle | no | (off) | No activity / heartbeat window waiting | +| LedStateStreaming | active | yes | steady on | Streaming running (UVC or Wi‑Fi) | +| LedStateStoppedStreaming | inactive | yes | steady off | Streaming intentionally stopped | +| CameraError | error | yes | 300/300 300/700 | Camera init/runtime failure (check sensor, ribbon, power) | +| WiFiStateConnecting | transitional | yes | 400/400 | Wi‑Fi associating / DHCP pending | +| WiFiStateConnected | notification | no | 150/150 x3 then off | Wi‑Fi connected successfully | +| WiFiStateError | error | yes | 200/100 500/300 | Wi‑Fi failed (auth timeout or no AP) | + +Guidelines for adding new patterns: +- Keep error patterns short, distinctive, and repeating. +- Reserve long holds (>600ms ON) for critical failures. +- Use non-repeating patterns to acknowledge one-shot events (e.g. successful connection). + +Potential future additions (not implemented yet): +- StorageError: two long ON pulses (e.g. NVS/flash failure). +- ConfigError: triple short pulses repeating (invalid configuration / preferences corrupt). +- ThermalWarning: slow ramp or alternating duty (would require PWM pattern support). +- FirmwareUpdate: progressive heartbeat (increasing ON time) while updating OTA. + - UVC doesn’t appear on the host? - Switch mode to UVC via CLI tool, replug USB and wait 20s. diff --git a/components/LEDManager/LEDManager/LEDManager.cpp b/components/LEDManager/LEDManager/LEDManager.cpp index e71ddfe..b3baa4e 100644 --- a/components/LEDManager/LEDManager/LEDManager.cpp +++ b/components/LEDManager/LEDManager/LEDManager.cpp @@ -2,63 +2,23 @@ const char *LED_MANAGER_TAG = "[LED_MANAGER]"; +// Pattern design rules: +// - Error states: isError=true, repeat indefinitely, easily distinguishable (avoid overlap). +// - Non-error repeating: show continuous activity (e.g. streaming ON steady, connecting blink). +// - Non-repeating notification (e.g. Connected) gives user a brief confirmation burst then turns off. +// Durations in ms. ledStateMap_t LEDManager::ledStateMap = { - { - LEDStates_e::LedStateNone, - { - false, - false, - {{LED_OFF, 1000}}, - }, - }, - { - LEDStates_e::LedStateStreaming, - { - false, - true, - {{LED_ON, 1000}}, - }, - }, - { - LEDStates_e::LedStateStoppedStreaming, - { - false, - true, - {{LED_OFF, 1000}}, - }, - }, - { - LEDStates_e::CameraError, - { - true, - true, - {{{LED_ON, 300}, {LED_OFF, 300}, {LED_ON, 300}, {LED_OFF, 300}}}, - }, - }, - { - LEDStates_e::WiFiStateConnecting, - { - false, - true, - {{LED_ON, 400}, {LED_OFF, 400}}, - }, - }, - { - LEDStates_e::WiFiStateConnected, - { - false, - false, - {{LED_ON, 200}, {LED_OFF, 200}, {LED_ON, 200}, {LED_OFF, 200}, {LED_ON, 200}, {LED_OFF, 200}, {LED_ON, 200}, {LED_OFF, 200}, {LED_ON, 200}, {LED_OFF, 200}}, - }, - }, - { - LEDStates_e::WiFiStateError, - { - true, - true, - {{LED_ON, 200}, {LED_OFF, 100}, {LED_ON, 500}, {LED_OFF, 100}, {LED_ON, 200}}, - }, - }, + { LEDStates_e::LedStateNone, { /*isError*/false, /*repeat*/false, {{LED_OFF, 1000}} } }, + { LEDStates_e::LedStateStreaming, { false, /*repeat steady*/true, {{LED_ON, 1000}} } }, + { LEDStates_e::LedStateStoppedStreaming, { false, true, {{LED_OFF, 1000}} } }, + // CameraError: double blink pattern repeating + { LEDStates_e::CameraError, { true, true, {{ {LED_ON,300}, {LED_OFF,300}, {LED_ON,300}, {LED_OFF,700} }} } }, + // WiFiStateConnecting: balanced slow blink 400/400 + { LEDStates_e::WiFiStateConnecting, { false, true, {{ {LED_ON,400}, {LED_OFF,400} }} } }, + // WiFiStateConnected: short 3 quick flashes then done (was long noisy burst before) + { LEDStates_e::WiFiStateConnected, { false, false, {{ {LED_ON,150}, {LED_OFF,150}, {LED_ON,150}, {LED_OFF,150}, {LED_ON,150}, {LED_OFF,600} }} } }, + // WiFiStateError: asymmetric attention pattern (fast, pause, long, pause, fast) + { LEDStates_e::WiFiStateError, { true, true, {{ {LED_ON,200}, {LED_OFF,100}, {LED_ON,500}, {LED_OFF,300} }} } }, }; LEDManager::LEDManager(gpio_num_t pin, gpio_num_t illumninator_led_pin, diff --git a/components/StateManager/StateManager/StateManager.hpp b/components/StateManager/StateManager/StateManager.hpp index fc882d8..4541e2f 100644 --- a/components/StateManager/StateManager/StateManager.hpp +++ b/components/StateManager/StateManager/StateManager.hpp @@ -6,15 +6,17 @@ #include "freertos/FreeRTOS.h" #include "freertos/queue.h" +// LED status categories +// Naming kept stable for existing queues; documented meanings added. enum class LEDStates_e { - LedStateNone, - LedStateStreaming, - LedStateStoppedStreaming, - CameraError, - WiFiStateError, - WiFiStateConnecting, - WiFiStateConnected + LedStateNone, // Idle / no indication (LED off) + LedStateStreaming, // Active streaming (UVC or WiFi) – steady ON + LedStateStoppedStreaming, // Streaming stopped intentionally – steady OFF (could differentiate later) + CameraError, // Camera init / runtime failure – double blink pattern + WiFiStateError, // WiFi connection error – distinctive blink sequence + WiFiStateConnecting, // WiFi association / DHCP pending – slow blink + WiFiStateConnected // WiFi connected (momentary confirmation burst) }; enum class WiFiState_e From 7b84204457ec590c130299c2aa2e6d5b32ae2235 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 13:10:14 +0200 Subject: [PATCH 13/30] Update LED status patterns and add SVG representations for visual indicators --- README.md | 24 +++++++++--------------- docs/led_patterns/camera_error.svg | 5 +++++ docs/led_patterns/idle.svg | 3 +++ docs/led_patterns/stopped.svg | 3 +++ docs/led_patterns/streaming.svg | 3 +++ docs/led_patterns/wifi_connected.svg | 5 +++++ docs/led_patterns/wifi_connecting.svg | 5 +++++ docs/led_patterns/wifi_error.svg | 5 +++++ 8 files changed, 38 insertions(+), 15 deletions(-) create mode 100644 docs/led_patterns/camera_error.svg create mode 100644 docs/led_patterns/idle.svg create mode 100644 docs/led_patterns/stopped.svg create mode 100644 docs/led_patterns/streaming.svg create mode 100644 docs/led_patterns/wifi_connected.svg create mode 100644 docs/led_patterns/wifi_connecting.svg create mode 100644 docs/led_patterns/wifi_error.svg diff --git a/README.md b/README.md index 050a64e..9dc2cfc 100644 --- a/README.md +++ b/README.md @@ -125,27 +125,21 @@ If you want to dig deeper: commands are mapped via the `CommandManager` under `c ### LED Status / Error Patterns The firmware uses a small set of LED patterns to indicate status and blocking errors. When `LED_DEBUG_ENABLE` is disabled and `LED_EXTERNAL_AS_DEBUG` is enabled the external IR LED mirrors ONLY error patterns (0%/50% duty). Non‑error patterns are not mirrored. -| State | Category | Repeat | Pattern (ON/OFF ms) | Meaning | -|-------|----------|--------|---------------------|---------| -| LedStateNone | idle | no | (off) | No activity / heartbeat window waiting | -| LedStateStreaming | active | yes | steady on | Streaming running (UVC or Wi‑Fi) | -| LedStateStoppedStreaming | inactive | yes | steady off | Streaming intentionally stopped | -| CameraError | error | yes | 300/300 300/700 | Camera init/runtime failure (check sensor, ribbon, power) | -| WiFiStateConnecting | transitional | yes | 400/400 | Wi‑Fi associating / DHCP pending | -| WiFiStateConnected | notification | no | 150/150 x3 then off | Wi‑Fi connected successfully | -| WiFiStateError | error | yes | 200/100 500/300 | Wi‑Fi failed (auth timeout or no AP) | +| State | Visual | Category | Repeat | Timing Pattern (ms) | Meaning | +|-------|--------|----------|--------|----------------------|---------| +| LedStateNone | ![idle](docs/led_patterns/idle.svg) | idle | no | (off) | No activity / heartbeat window waiting | +| LedStateStreaming | ![stream](docs/led_patterns/streaming.svg) | active | yes | steady on | Streaming running (UVC or Wi‑Fi) | +| LedStateStoppedStreaming | ![stopped](docs/led_patterns/stopped.svg) | inactive | yes | steady off | Streaming intentionally stopped | +| CameraError | ![camera error](docs/led_patterns/camera_error.svg) | error | yes | 300/300 300/700 | Camera init/runtime failure (check sensor, ribbon, power) | +| WiFiStateConnecting | ![wifi connecting](docs/led_patterns/wifi_connecting.svg) | transitional | yes | 400/400 | Wi‑Fi associating / DHCP pending | +| WiFiStateConnected | ![wifi connected](docs/led_patterns/wifi_connected.svg) | notification | no | 150/150 x3 then off | Wi‑Fi connected successfully | +| WiFiStateError | ![wifi error](docs/led_patterns/wifi_error.svg) | error | yes | 200/100 500/300 | Wi‑Fi failed (auth timeout or no AP) | Guidelines for adding new patterns: - Keep error patterns short, distinctive, and repeating. - Reserve long holds (>600ms ON) for critical failures. - Use non-repeating patterns to acknowledge one-shot events (e.g. successful connection). -Potential future additions (not implemented yet): -- StorageError: two long ON pulses (e.g. NVS/flash failure). -- ConfigError: triple short pulses repeating (invalid configuration / preferences corrupt). -- ThermalWarning: slow ramp or alternating duty (would require PWM pattern support). -- FirmwareUpdate: progressive heartbeat (increasing ON time) while updating OTA. - - UVC doesn’t appear on the host? - Switch mode to UVC via CLI tool, replug USB and wait 20s. diff --git a/docs/led_patterns/camera_error.svg b/docs/led_patterns/camera_error.svg new file mode 100644 index 0000000..78eb5e7 --- /dev/null +++ b/docs/led_patterns/camera_error.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/led_patterns/idle.svg b/docs/led_patterns/idle.svg new file mode 100644 index 0000000..906d6ac --- /dev/null +++ b/docs/led_patterns/idle.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/led_patterns/stopped.svg b/docs/led_patterns/stopped.svg new file mode 100644 index 0000000..43f2fc2 --- /dev/null +++ b/docs/led_patterns/stopped.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/led_patterns/streaming.svg b/docs/led_patterns/streaming.svg new file mode 100644 index 0000000..214566d --- /dev/null +++ b/docs/led_patterns/streaming.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/led_patterns/wifi_connected.svg b/docs/led_patterns/wifi_connected.svg new file mode 100644 index 0000000..41355c5 --- /dev/null +++ b/docs/led_patterns/wifi_connected.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/led_patterns/wifi_connecting.svg b/docs/led_patterns/wifi_connecting.svg new file mode 100644 index 0000000..9a517a9 --- /dev/null +++ b/docs/led_patterns/wifi_connecting.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/led_patterns/wifi_error.svg b/docs/led_patterns/wifi_error.svg new file mode 100644 index 0000000..a0f316a --- /dev/null +++ b/docs/led_patterns/wifi_error.svg @@ -0,0 +1,5 @@ + + + + + From 306d97fa18c6b3f31a721bf07587034ad5e5818c Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 13:13:32 +0200 Subject: [PATCH 14/30] Refine LED status patterns and update SVG animations for clarity and consistency --- README.md | 18 +++++++++--------- docs/led_patterns/camera_error.svg | 6 ++++-- docs/led_patterns/wifi_connected.svg | 6 ++++-- docs/led_patterns/wifi_error.svg | 6 ++++-- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 9dc2cfc..079088f 100644 --- a/README.md +++ b/README.md @@ -125,15 +125,15 @@ If you want to dig deeper: commands are mapped via the `CommandManager` under `c ### LED Status / Error Patterns The firmware uses a small set of LED patterns to indicate status and blocking errors. When `LED_DEBUG_ENABLE` is disabled and `LED_EXTERNAL_AS_DEBUG` is enabled the external IR LED mirrors ONLY error patterns (0%/50% duty). Non‑error patterns are not mirrored. -| State | Visual | Category | Repeat | Timing Pattern (ms) | Meaning | -|-------|--------|----------|--------|----------------------|---------| -| LedStateNone | ![idle](docs/led_patterns/idle.svg) | idle | no | (off) | No activity / heartbeat window waiting | -| LedStateStreaming | ![stream](docs/led_patterns/streaming.svg) | active | yes | steady on | Streaming running (UVC or Wi‑Fi) | -| LedStateStoppedStreaming | ![stopped](docs/led_patterns/stopped.svg) | inactive | yes | steady off | Streaming intentionally stopped | -| CameraError | ![camera error](docs/led_patterns/camera_error.svg) | error | yes | 300/300 300/700 | Camera init/runtime failure (check sensor, ribbon, power) | -| WiFiStateConnecting | ![wifi connecting](docs/led_patterns/wifi_connecting.svg) | transitional | yes | 400/400 | Wi‑Fi associating / DHCP pending | -| WiFiStateConnected | ![wifi connected](docs/led_patterns/wifi_connected.svg) | notification | no | 150/150 x3 then off | Wi‑Fi connected successfully | -| WiFiStateError | ![wifi error](docs/led_patterns/wifi_error.svg) | error | yes | 200/100 500/300 | Wi‑Fi failed (auth timeout or no AP) | +| State | Visual | Category | Timing Pattern (ms) | Meaning | +|-------|--------|----------|---------------------|---------| +| LedStateNone | ![idle](docs/led_patterns/idle.svg) | idle | (off) | No activity / heartbeat window waiting | +| LedStateStreaming | ![stream](docs/led_patterns/streaming.svg) | active | steady on | Streaming running (UVC or Wi‑Fi) | +| LedStateStoppedStreaming | ![stopped](docs/led_patterns/stopped.svg) | inactive | steady off | Streaming intentionally stopped | +| CameraError | ![camera error](docs/led_patterns/camera_error.svg) | error | 300/300 300/700 (loop) | Camera init/runtime failure (check sensor, ribbon, power) | +| WiFiStateConnecting | ![wifi connecting](docs/led_patterns/wifi_connecting.svg) | transitional | 400/400 (loop) | Wi‑Fi associating / DHCP pending | +| WiFiStateConnected | ![wifi connected](docs/led_patterns/wifi_connected.svg) | notification | 150/150×3 then 600 off | Wi‑Fi connected successfully | +| WiFiStateError | ![wifi error](docs/led_patterns/wifi_error.svg) | error | 200/100 500/300 (loop) | Wi‑Fi failed (auth timeout or no AP) | Guidelines for adding new patterns: - Keep error patterns short, distinctive, and repeating. diff --git a/docs/led_patterns/camera_error.svg b/docs/led_patterns/camera_error.svg index 78eb5e7..89af1a7 100644 --- a/docs/led_patterns/camera_error.svg +++ b/docs/led_patterns/camera_error.svg @@ -1,5 +1,7 @@ - - + + + diff --git a/docs/led_patterns/wifi_connected.svg b/docs/led_patterns/wifi_connected.svg index 41355c5..0a1c510 100644 --- a/docs/led_patterns/wifi_connected.svg +++ b/docs/led_patterns/wifi_connected.svg @@ -1,5 +1,7 @@ - - + + + diff --git a/docs/led_patterns/wifi_error.svg b/docs/led_patterns/wifi_error.svg index a0f316a..f74cd49 100644 --- a/docs/led_patterns/wifi_error.svg +++ b/docs/led_patterns/wifi_error.svg @@ -1,5 +1,7 @@ - - + + + From 76d0dd4b904cd3d4c4a90ab39baf8d261bcdb526 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 13:20:38 +0200 Subject: [PATCH 15/30] Remove redundant guidelines for adding LED patterns in README.md --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index 079088f..9cd4395 100644 --- a/README.md +++ b/README.md @@ -135,11 +135,6 @@ The firmware uses a small set of LED patterns to indicate status and blocking er | WiFiStateConnected | ![wifi connected](docs/led_patterns/wifi_connected.svg) | notification | 150/150×3 then 600 off | Wi‑Fi connected successfully | | WiFiStateError | ![wifi error](docs/led_patterns/wifi_error.svg) | error | 200/100 500/300 (loop) | Wi‑Fi failed (auth timeout or no AP) | -Guidelines for adding new patterns: -- Keep error patterns short, distinctive, and repeating. -- Reserve long holds (>600ms ON) for critical failures. -- Use non-repeating patterns to acknowledge one-shot events (e.g. successful connection). - - UVC doesn’t appear on the host? - Switch mode to UVC via CLI tool, replug USB and wait 20s. From 76644f759e8686fca1ae3e2791c896e90da0174f Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 13:27:19 +0200 Subject: [PATCH 16/30] Added bew features to README --- README.md | 83 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 71 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 9cd4395..0265354 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,11 @@ Firmware and tools for OpenIris — Wi‑Fi, UVC streaming, and a Python setup C - Python tools for setup over USB serial: - `tools/switchBoardType.py` — choose a board profile (builds the right sdkconfig) - `tools/openiris_setup.py` — interactive CLI for Wi‑Fi, MDNS/Name, Mode, LED PWM, Logs, and a Settings Summary + - Composite USB (UVC + CDC) when UVC mode is enabled (`GENERAL_INCLUDE_UVC_MODE`) for simultaneous video streaming and command channel + - LED current monitoring (if enabled via `MONITORING_LED_CURRENT`) with filtered mA readings + - Configurable debug LED + external IR LED control with optional error mirroring (`LED_DEBUG_ENABLE`, `LED_EXTERNAL_AS_DEBUG`) + - Auto‑discovered per‑board configuration overlays under `boards/` + - Command framework (JSON over serial / CDC / REST) for mode switching, Wi‑Fi config, OTA credentials, LED brightness, info & monitoring --- @@ -71,6 +76,8 @@ Notes: ### 2) Build & flash - Set the target (e.g., ESP32‑S3). - Build, flash, and open the serial monitor. + - (Optional) For UVC mode ensure `GENERAL_INCLUDE_UVC_MODE=y`. If you want device to boot directly into UVC: also set `START_IN_UVC_MODE=y`. + - Disable Wi‑Fi services for pure wired builds: `GENERAL_ENABLE_WIRELESS=n`. ### 3) Use the Python setup CLI (recommended) Configure the device over USB serial. @@ -109,6 +116,8 @@ What the CLI can do: - Fast Wi‑Fi setup: in the CLI, go to “Wi‑Fi settings” → “Automatic setup”, then check “status”. - Change name/MDNS: set the device name in the CLI, then replug USB — UVC will show the new name. - Adjust brightness/LED: set LED PWM in the CLI. + - Switch to UVC mode over commands: send JSON `{ "cmd": "switch_mode", "mode": "uvc" }` then reboot. + - Read filtered LED current (if enabled): `{ "cmd": "get_led_current" }`. --- @@ -121,19 +130,53 @@ If you want to dig deeper: commands are mapped via the `CommandManager` under `c --- -## Troubleshooting -### LED Status / Error Patterns -The firmware uses a small set of LED patterns to indicate status and blocking errors. When `LED_DEBUG_ENABLE` is disabled and `LED_EXTERNAL_AS_DEBUG` is enabled the external IR LED mirrors ONLY error patterns (0%/50% duty). Non‑error patterns are not mirrored. +### USB Composite (UVC + CDC) +When UVC support is compiled in the device enumerates as a composite USB device: +- UVC interface: video streaming (JPEG frames) +- CDC (virtual COM): command channel accepting newline‑terminated JSON objects -| State | Visual | Category | Timing Pattern (ms) | Meaning | -|-------|--------|----------|---------------------|---------| -| LedStateNone | ![idle](docs/led_patterns/idle.svg) | idle | (off) | No activity / heartbeat window waiting | -| LedStateStreaming | ![stream](docs/led_patterns/streaming.svg) | active | steady on | Streaming running (UVC or Wi‑Fi) | -| LedStateStoppedStreaming | ![stopped](docs/led_patterns/stopped.svg) | inactive | steady off | Streaming intentionally stopped | -| CameraError | ![camera error](docs/led_patterns/camera_error.svg) | error | 300/300 300/700 (loop) | Camera init/runtime failure (check sensor, ribbon, power) | -| WiFiStateConnecting | ![wifi connecting](docs/led_patterns/wifi_connecting.svg) | transitional | 400/400 (loop) | Wi‑Fi associating / DHCP pending | -| WiFiStateConnected | ![wifi connected](docs/led_patterns/wifi_connected.svg) | notification | 150/150×3 then 600 off | Wi‑Fi connected successfully | -| WiFiStateError | ![wifi error](docs/led_patterns/wifi_error.svg) | error | 200/100 500/300 (loop) | Wi‑Fi failed (auth timeout or no AP) | +Example newline‑terminated JSON commands over CDC: +``` +{"cmd":"ping"}\n +{"cmd":"get_info"}\n +{"cmd":"switch_mode","mode":"wifi"}\n +``` +Responses are JSON blobs flushed immediately. + +### Command Summary (JSON) +| Command | Purpose | Example | +|---------|---------|---------| +| ping | Reachability test | {"cmd":"ping"} | +| get_info | Board + version info | {"cmd":"get_info"} | +| switch_mode | Set streaming mode (uvc|wifi|auto/setup) | {"cmd":"switch_mode","mode":"uvc"} | +| start_streaming | Force start (skip delay) | {"cmd":"start_streaming"} | +| update_ota | Set OTA creds / port | {"cmd":"update_ota","login":"u","password":"p","port":3232} | +| update_led_pwm | Set external LED duty (%) | {"cmd":"update_led_pwm","dutyCycle":60} | +| set_device_mode | Legacy numeric mode set | {"cmd":"set_device_mode","mode":1} | +| get_led_current | Return LED current mA | {"cmd":"get_led_current"} | +| restart | Schedule a reboot | {"cmd":"restart"} | +| scan_wifi | Scan networks | {"cmd":"scan_wifi"} | +| set_wifi_sta | Configure STA creds | {"cmd":"set_wifi_sta","ssid":"AP","password":"pw"} | +| connect_wifi | Start Wi‑Fi connect | {"cmd":"connect_wifi"} | +| get_wifi_status | Wi‑Fi state snapshot | {"cmd":"get_wifi_status"} | + +Notes: +- Commands are newline (`\n`) delimited on CDC; REST & original USB‑serial use the same JSON payloads. +- Error responses return `{ "error": "message" }`. + +### Monitoring (LED Current) +Enabled with `MONITORING_LED_CURRENT=y` plus shunt/gain settings. The task samples every `CONFIG_MONITORING_LED_INTERVAL_MS` ms and maintains a filtered moving average over `CONFIG_MONITORING_LED_SAMPLES` samples. Use `get_led_current` command to query. + +### Debug & External LED Configuration +| Kconfig | Effect | +|---------|--------| +| LED_DEBUG_ENABLE | Enables/disables discrete status LED GPIO init & drive | +| LED_EXTERNAL_CONTROL | Enables PWM control for IR / external LED | +| LED_EXTERNAL_PWM_DUTY_CYCLE | Default duty % applied at boot (0–100) | +| LED_EXTERNAL_AS_DEBUG | Mirrors only error patterns onto external LED (0%/50%) when debug LED absent or also for redundancy | + +### Board Profiles +Each file under `boards/` overlays `sdkconfig.base_defaults`. The merge order: base → board file → (optional) dynamic Wi‑Fi overrides via `switchBoardType.py` flags. Duplicate trailing segment directories collapse to unique keys. - UVC doesn’t appear on the host? - Switch mode to UVC via CLI tool, replug USB and wait 20s. @@ -151,4 +194,20 @@ Tips: --- +## Troubleshooting +### LED Status / Error Patterns +The firmware uses a small set of LED patterns to indicate status and blocking errors. When `LED_DEBUG_ENABLE` is disabled and `LED_EXTERNAL_AS_DEBUG` is enabled the external IR LED mirrors ONLY error patterns (0%/50% duty). Non‑error patterns are not mirrored. + +| State | Visual | Category | Timing Pattern (ms) | Meaning | +|-------|--------|----------|---------------------|---------| +| LedStateNone | ![idle](docs/led_patterns/idle.svg) | idle | (off) | No activity / heartbeat window waiting | +| LedStateStreaming | ![stream](docs/led_patterns/streaming.svg) | active | steady on | Streaming running (UVC or Wi‑Fi) | +| LedStateStoppedStreaming | ![stopped](docs/led_patterns/stopped.svg) | inactive | steady off | Streaming intentionally stopped | +| CameraError | ![camera error](docs/led_patterns/camera_error.svg) | error | 300/300 300/700 (loop) | Camera init/runtime failure (check sensor, ribbon, power) | +| WiFiStateConnecting | ![wifi connecting](docs/led_patterns/wifi_connecting.svg) | transitional | 400/400 (loop) | Wi‑Fi associating / DHCP pending | +| WiFiStateConnected | ![wifi connected](docs/led_patterns/wifi_connected.svg) | notification | 150/150×3 then 600 off | Wi‑Fi connected successfully | +| WiFiStateError | ![wifi error](docs/led_patterns/wifi_error.svg) | error | 200/100 500/300 (loop) | Wi‑Fi failed (auth timeout or no AP) | + +--- + Feedback, issues, and PRs are welcome. \ No newline at end of file From f239ccb5289db0d91a8cdbc86018cafcccb3cf5c Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 13:29:54 +0200 Subject: [PATCH 17/30] Remove command summary section from README.md --- README.md | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/README.md b/README.md index 0265354..c98d6e1 100644 --- a/README.md +++ b/README.md @@ -143,26 +143,7 @@ Example newline‑terminated JSON commands over CDC: ``` Responses are JSON blobs flushed immediately. -### Command Summary (JSON) -| Command | Purpose | Example | -|---------|---------|---------| -| ping | Reachability test | {"cmd":"ping"} | -| get_info | Board + version info | {"cmd":"get_info"} | -| switch_mode | Set streaming mode (uvc|wifi|auto/setup) | {"cmd":"switch_mode","mode":"uvc"} | -| start_streaming | Force start (skip delay) | {"cmd":"start_streaming"} | -| update_ota | Set OTA creds / port | {"cmd":"update_ota","login":"u","password":"p","port":3232} | -| update_led_pwm | Set external LED duty (%) | {"cmd":"update_led_pwm","dutyCycle":60} | -| set_device_mode | Legacy numeric mode set | {"cmd":"set_device_mode","mode":1} | -| get_led_current | Return LED current mA | {"cmd":"get_led_current"} | -| restart | Schedule a reboot | {"cmd":"restart"} | -| scan_wifi | Scan networks | {"cmd":"scan_wifi"} | -| set_wifi_sta | Configure STA creds | {"cmd":"set_wifi_sta","ssid":"AP","password":"pw"} | -| connect_wifi | Start Wi‑Fi connect | {"cmd":"connect_wifi"} | -| get_wifi_status | Wi‑Fi state snapshot | {"cmd":"get_wifi_status"} | - -Notes: -- Commands are newline (`\n`) delimited on CDC; REST & original USB‑serial use the same JSON payloads. -- Error responses return `{ "error": "message" }`. +--- ### Monitoring (LED Current) Enabled with `MONITORING_LED_CURRENT=y` plus shunt/gain settings. The task samples every `CONFIG_MONITORING_LED_INTERVAL_MS` ms and maintains a filtered moving average over `CONFIG_MONITORING_LED_SAMPLES` samples. Use `get_led_current` command to query. From 68ae53876ebb40661da5e244717573327308f11f Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 13:30:42 +0200 Subject: [PATCH 18/30] Update supported targets in README.md for clarity --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c98d6e1..a98ae12 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -| Supported Targets | ESP32-S3 | -| ----------------- | -------- | +| Supported Targets | ESP32-S3 · Project Babble · FaceFocusVR | +| ----------------- | --------------------------------------- | ## OpenIris-ESPIDF From 718fa2c1efd72a4a92956879783eb53353f85f4d Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 13:33:35 +0200 Subject: [PATCH 19/30] Add section for advertised name configuration in README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index a98ae12..37c67d0 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ Firmware and tools for OpenIris — Wi‑Fi, UVC streaming, and a Python setup C - Configurable debug LED + external IR LED control with optional error mirroring (`LED_DEBUG_ENABLE`, `LED_EXTERNAL_AS_DEBUG`) - Auto‑discovered per‑board configuration overlays under `boards/` - Command framework (JSON over serial / CDC / REST) for mode switching, Wi‑Fi config, OTA credentials, LED brightness, info & monitoring + - Single source advertised name (`CONFIG_GENERAL_ADVERTISED_NAME`) used for both UVC device name and mDNS hostname (unless overridden at runtime) --- @@ -110,6 +111,13 @@ What the CLI can do: - The CLI displays the MAC by default (clearer); it’s the value used as the serial number. - The UVC device name is based on the MDNS hostname. +## Advertised Name (UVC + mDNS) +`CONFIG_GENERAL_ADVERTISED_NAME` (Kconfig) defines the base name announced over: +- USB UVC descriptor (appears in OS camera list) +- mDNS hostname / service name + +Runtime override: If the setup CLI (or a JSON command) provides a new device name, that value supersedes the compile-time default until next flash/reset of settings. + --- ## Common workflows From fd64693d7291f539ebc4434234a989b789a1f073 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 14:04:58 +0200 Subject: [PATCH 20/30] updating configuration parameters --- boards/facefocusvr/eye_L | 2 -- boards/facefocusvr/eye_R | 2 -- boards/facefocusvr/face | 2 -- boards/project_babble/project_babble | 2 +- boards/seed_studio/xiao_esp32s3 | 3 +- main/Kconfig.projbuild | 4 +-- sdkconfig | 42 +++++++++++----------------- 7 files changed, 21 insertions(+), 36 deletions(-) diff --git a/boards/facefocusvr/eye_L b/boards/facefocusvr/eye_L index af9c1e7..6cb91bf 100644 --- a/boards/facefocusvr/eye_L +++ b/boards/facefocusvr/eye_L @@ -1,5 +1,3 @@ -CONFIG_BLINK_LED_GPIO=y -CONFIG_BLINK_GPIO=21 CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32S3_SPIRAM_SUPPORT=y diff --git a/boards/facefocusvr/eye_R b/boards/facefocusvr/eye_R index 3aa4509..34d5503 100644 --- a/boards/facefocusvr/eye_R +++ b/boards/facefocusvr/eye_R @@ -1,5 +1,3 @@ -CONFIG_BLINK_LED_GPIO=y -CONFIG_BLINK_GPIO=21 CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32S3_SPIRAM_SUPPORT=y diff --git a/boards/facefocusvr/face b/boards/facefocusvr/face index 0f46bcb..4e1afa0 100644 --- a/boards/facefocusvr/face +++ b/boards/facefocusvr/face @@ -1,5 +1,3 @@ -CONFIG_BLINK_LED_GPIO=y -CONFIG_BLINK_GPIO=21 CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32S3_SPIRAM_SUPPORT=y diff --git a/boards/project_babble/project_babble b/boards/project_babble/project_babble index f5c1d31..507ffbe 100644 --- a/boards/project_babble/project_babble +++ b/boards/project_babble/project_babble @@ -1,4 +1,4 @@ -CONFIG_BLINK_GPIO=38 +CONFIG_LED_DEBUG_GPIO=38 CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32S3_SPIRAM_SUPPORT=y # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set diff --git a/boards/seed_studio/xiao_esp32s3 b/boards/seed_studio/xiao_esp32s3 index 5fce593..98da3bb 100644 --- a/boards/seed_studio/xiao_esp32s3 +++ b/boards/seed_studio/xiao_esp32s3 @@ -1,5 +1,4 @@ -CONFIG_BLINK_LED_GPIO=y -CONFIG_BLINK_GPIO=21 +CONFIG_LED_DEBUG_GPIO=21 CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32S3_SPIRAM_SUPPORT=y diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index b2ea550..064f8e0 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -28,7 +28,7 @@ menu "OpenIris: General Configuration" config GENERAL_STARTUP_DELAY int "Setup grace period (s)" - default 30 + default 20 range 10 10000 help Number of seconds the device remains in SETUP / heartbeat mode on boot (when the @@ -53,7 +53,7 @@ menu "OpenIris: General Configuration" config GENERAL_VERSION string "Firmware version" - default "0.0.0" + default "0.0.1" help A firmware version string exposed via the get_info command. diff --git a/sdkconfig b/sdkconfig index b73e8eb..7ae9821 100644 --- a/sdkconfig +++ b/sdkconfig @@ -570,13 +570,13 @@ CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 # # OpenIris: General Configuration # -CONFIG_START_IN_UVC_MODE=y +# CONFIG_START_IN_UVC_MODE is not set CONFIG_GENERAL_INCLUDE_UVC_MODE=y -CONFIG_GENERAL_STARTUP_DELAY=30 -# CONFIG_GENERAL_ENABLE_WIRELESS is not set -CONFIG_GENERAL_BOARD="facefocusvr_face" +CONFIG_GENERAL_STARTUP_DELAY=20 +CONFIG_GENERAL_ENABLE_WIRELESS=y +CONFIG_GENERAL_BOARD="xiao_esp32s3" CONFIG_GENERAL_VERSION="0.0.1" -CONFIG_GENERAL_ADVERTISED_NAME="FFVR Face" +CONFIG_GENERAL_ADVERTISED_NAME="openiristracker" # end of OpenIris: General Configuration # @@ -598,30 +598,22 @@ CONFIG_WIFI_AP_PASSWORD="12345678" # # OpenIris: LED Configuration # -# CONFIG_LED_DEBUG_ENABLE is not set -CONFIG_LED_DEBUG_GPIO=8 -CONFIG_LED_EXTERNAL_GPIO=9 -CONFIG_LED_EXTERNAL_CONTROL=y -CONFIG_LED_EXTERNAL_AS_DEBUG=y -CONFIG_LED_EXTERNAL_PWM_FREQ=20000 -CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=85 +CONFIG_LED_DEBUG_ENABLE=y +CONFIG_LED_DEBUG_GPIO=21 +CONFIG_LED_EXTERNAL_GPIO=1 +# CONFIG_LED_EXTERNAL_CONTROL is not set # end of OpenIris: LED Configuration # # OpenIris: Monitoring # -CONFIG_MONITORING_LED_CURRENT=y -CONFIG_MONITORING_LED_ADC_GPIO=3 -CONFIG_MONITORING_LED_GAIN=11 -CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000 -CONFIG_MONITORING_LED_SAMPLES=10 -CONFIG_MONITORING_LED_INTERVAL_MS=500 +# CONFIG_MONITORING_LED_CURRENT is not set # end of OpenIris: Monitoring # # Camera sensor pinout configuration # -CONFIG_CAMERA_MODULE_NAME="FaceFocusVR_Face" +CONFIG_CAMERA_MODULE_NAME="ESP32S3_XIAO_SENSE" CONFIG_PWDN_GPIO_NUM=-1 CONFIG_RESET_GPIO_NUM=-1 CONFIG_XCLK_GPIO_NUM=10 @@ -1214,10 +1206,10 @@ CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768 # # ESP System Settings # -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y +# 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 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240 # # Cache config @@ -2451,10 +2443,10 @@ 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=y +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80 is not set # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 +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 From 37b59c40874830f4536d6b0946597787157b0f1b Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 14:07:19 +0200 Subject: [PATCH 21/30] sdkconfig for babble --- sdkconfig | 61 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/sdkconfig b/sdkconfig index 7ae9821..ce3f32c 100644 --- a/sdkconfig +++ b/sdkconfig @@ -514,9 +514,9 @@ CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y # 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 is not set +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y +# 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" @@ -527,13 +527,13 @@ CONFIG_ESPTOOLPY_FLASHFREQ_80M=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=y +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="8MB" +CONFIG_ESPTOOLPY_FLASHSIZE="4MB" # CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set CONFIG_ESPTOOLPY_BEFORE_RESET=y # CONFIG_ESPTOOLPY_BEFORE_NORESET is not set @@ -574,7 +574,7 @@ CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 CONFIG_GENERAL_INCLUDE_UVC_MODE=y CONFIG_GENERAL_STARTUP_DELAY=20 CONFIG_GENERAL_ENABLE_WIRELESS=y -CONFIG_GENERAL_BOARD="xiao_esp32s3" +CONFIG_GENERAL_BOARD="project_babble" CONFIG_GENERAL_VERSION="0.0.1" CONFIG_GENERAL_ADVERTISED_NAME="openiristracker" # end of OpenIris: General Configuration @@ -599,9 +599,12 @@ CONFIG_WIFI_AP_PASSWORD="12345678" # OpenIris: LED Configuration # CONFIG_LED_DEBUG_ENABLE=y -CONFIG_LED_DEBUG_GPIO=21 +CONFIG_LED_DEBUG_GPIO=38 CONFIG_LED_EXTERNAL_GPIO=1 -# CONFIG_LED_EXTERNAL_CONTROL is not set +CONFIG_LED_EXTERNAL_CONTROL=y +# CONFIG_LED_EXTERNAL_AS_DEBUG is not set +CONFIG_LED_EXTERNAL_PWM_FREQ=5000 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 # end of OpenIris: LED Configuration # @@ -613,23 +616,23 @@ CONFIG_LED_EXTERNAL_GPIO=1 # # Camera sensor pinout configuration # -CONFIG_CAMERA_MODULE_NAME="ESP32S3_XIAO_SENSE" +CONFIG_CAMERA_MODULE_NAME="SWROOM_BABBLE_S3" CONFIG_PWDN_GPIO_NUM=-1 CONFIG_RESET_GPIO_NUM=-1 -CONFIG_XCLK_GPIO_NUM=10 -CONFIG_SIOD_GPIO_NUM=40 -CONFIG_SIOC_GPIO_NUM=39 -CONFIG_Y9_GPIO_NUM=48 -CONFIG_Y8_GPIO_NUM=11 -CONFIG_Y7_GPIO_NUM=12 -CONFIG_Y6_GPIO_NUM=14 -CONFIG_Y5_GPIO_NUM=16 -CONFIG_Y4_GPIO_NUM=18 -CONFIG_Y3_GPIO_NUM=17 -CONFIG_Y2_GPIO_NUM=15 -CONFIG_VSYNC_GPIO_NUM=38 -CONFIG_HREF_GPIO_NUM=47 -CONFIG_PCLK_GPIO_NUM=13 +CONFIG_XCLK_GPIO_NUM=4 +CONFIG_SIOD_GPIO_NUM=48 +CONFIG_SIOC_GPIO_NUM=47 +CONFIG_Y9_GPIO_NUM=13 +CONFIG_Y8_GPIO_NUM=5 +CONFIG_Y7_GPIO_NUM=6 +CONFIG_Y6_GPIO_NUM=15 +CONFIG_Y5_GPIO_NUM=17 +CONFIG_Y4_GPIO_NUM=8 +CONFIG_Y3_GPIO_NUM=18 +CONFIG_Y2_GPIO_NUM=16 +CONFIG_VSYNC_GPIO_NUM=21 +CONFIG_HREF_GPIO_NUM=14 +CONFIG_PCLK_GPIO_NUM=7 # end of Camera sensor pinout configuration # @@ -1164,19 +1167,21 @@ CONFIG_SPIRAM=y # # SPI RAM config # -# CONFIG_SPIRAM_MODE_QUAD is not set -CONFIG_SPIRAM_MODE_OCT=y +CONFIG_SPIRAM_MODE_QUAD=y +# CONFIG_SPIRAM_MODE_OCT is not set CONFIG_SPIRAM_TYPE_AUTO=y +# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set +# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set # CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set 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_120M 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_PRE_CONFIGURE_MEMORY_PROTECTION=y # CONFIG_SPIRAM_IGNORE_NOTFOUND is not set @@ -2393,9 +2398,9 @@ CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y CONFIG_LOG_BOOTLOADER_LEVEL=3 # CONFIG_APP_ROLLBACK_ENABLE is not set # CONFIG_FLASH_ENCRYPTION_ENABLED is not set -# CONFIG_FLASHMODE_QIO is not set +CONFIG_FLASHMODE_QIO=y # CONFIG_FLASHMODE_QOUT is not set -CONFIG_FLASHMODE_DIO=y +# CONFIG_FLASHMODE_DIO is not set # CONFIG_FLASHMODE_DOUT is not set CONFIG_MONITOR_BAUD=115200 # CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set From d83bcb5d5709f31a5dca2c1f9d196c868b9f094b Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 7 Sep 2025 14:58:11 +0200 Subject: [PATCH 22/30] Adjust LED external PWM duty cycle --- boards/facefocusvr/eye_L | 2 +- boards/facefocusvr/eye_R | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/boards/facefocusvr/eye_L b/boards/facefocusvr/eye_L index 6cb91bf..41b8ac8 100644 --- a/boards/facefocusvr/eye_L +++ b/boards/facefocusvr/eye_L @@ -55,7 +55,7 @@ CONFIG_SPIRAM_SPEED_80M=y CONFIG_LED_EXTERNAL_CONTROL=y CONFIG_LED_EXTERNAL_GPIO=9 CONFIG_LED_EXTERNAL_PWM_FREQ=20000 -CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=50 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=45 CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y CONFIG_START_IN_UVC_MODE=y diff --git a/boards/facefocusvr/eye_R b/boards/facefocusvr/eye_R index 34d5503..766160f 100644 --- a/boards/facefocusvr/eye_R +++ b/boards/facefocusvr/eye_R @@ -55,7 +55,7 @@ CONFIG_SPIRAM_SPEED_80M=y CONFIG_LED_EXTERNAL_CONTROL=y CONFIG_LED_EXTERNAL_GPIO=9 CONFIG_LED_EXTERNAL_PWM_FREQ=20000 -CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=50 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=45 CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_INCLUDE_UVC_MODE=y CONFIG_START_IN_UVC_MODE=y From 31c294d9dd8e3547781f9c50bd16e7cd2a538a7f Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Mon, 8 Sep 2025 01:30:18 +0200 Subject: [PATCH 23/30] Remove CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 from eye_L, eye_R, and face configuration files --- boards/facefocusvr/eye_L | 1 - boards/facefocusvr/eye_R | 1 - boards/facefocusvr/face | 1 - 3 files changed, 3 deletions(-) diff --git a/boards/facefocusvr/eye_L b/boards/facefocusvr/eye_L index 41b8ac8..fcc5502 100644 --- a/boards/facefocusvr/eye_L +++ b/boards/facefocusvr/eye_L @@ -1,5 +1,4 @@ CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32S3_SPIRAM_SUPPORT=y CONFIG_SPIRAM_MODE_OCT=y # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set diff --git a/boards/facefocusvr/eye_R b/boards/facefocusvr/eye_R index 766160f..c6c6bc6 100644 --- a/boards/facefocusvr/eye_R +++ b/boards/facefocusvr/eye_R @@ -1,5 +1,4 @@ CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32S3_SPIRAM_SUPPORT=y CONFIG_SPIRAM_MODE_OCT=y # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set diff --git a/boards/facefocusvr/face b/boards/facefocusvr/face index 4e1afa0..dda374c 100644 --- a/boards/facefocusvr/face +++ b/boards/facefocusvr/face @@ -1,5 +1,4 @@ CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32S3_SPIRAM_SUPPORT=y CONFIG_SPIRAM_MODE_OCT=y # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set From e6305536e66f7b8e878d003497c314c50eb828e2 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Mon, 15 Sep 2025 13:42:26 +0200 Subject: [PATCH 24/30] Add CDC interface string index and unify user-visible names to advertised name --- components/usb_device_uvc/tusb/usb_descriptors.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/components/usb_device_uvc/tusb/usb_descriptors.c b/components/usb_device_uvc/tusb/usb_descriptors.c index 315d141..6dcf486 100644 --- a/components/usb_device_uvc/tusb/usb_descriptors.c +++ b/components/usb_device_uvc/tusb/usb_descriptors.c @@ -70,6 +70,8 @@ uint8_t const *tud_descriptor_device_cb(void) #define STRID_PRODUCT 2 #define STRID_SERIAL 3 #define STRID_UVC_CAM1 4 +// CDC interface string index used by TUD_CDC_DESCRIPTOR below +#define STRID_CDC 6 // Endpoint numbers for CDC #define EPNUM_CDC_NOTIF 0x81 @@ -200,12 +202,15 @@ uint8_t const *tud_descriptor_configuration_cb(uint8_t index) //--------------------------------------------------------------------+ // Array of pointers to string literals. Indices must match STRID_* above. +// NOTE: Indices must be contiguous up to the highest used index (STRID_CDC = 6) char const *string_desc_arr[] = { (const char[]){0x09, 0x04}, // 0: Supported language: English (0x0409) CONFIG_TUSB_MANUFACTURER, // 1: Manufacturer - CONFIG_TUSB_PRODUCT, // 2: Product + CONFIG_TUSB_PRODUCT, // 2: Product (overridden by advertised name) CONFIG_TUSB_SERIAL_NUM, // 3: Serial (overridden by get_serial_number()) - "UVC CAM1", // 4: UVC Interface name for Cam1 (overridden by get_uvc_device_name()) + "UVC CAM1", // 4: UVC Interface name for Cam1 (overridden by get_uvc_device_name()) + "CDC", // 5: placeholder (unused) + "CDC Interface", // 6: CDC Interface name (overridden to advertised name) }; static uint16_t _desc_str[32]; @@ -249,7 +254,8 @@ uint16_t const *tud_descriptor_string_cb(uint8_t index, uint16_t langid) // Allow dynamic overrides for specific indices if (index == STRID_SERIAL) str = get_serial_number(); - if (index == STRID_UVC_CAM1) + // Unify all user-visible names (Product, UVC interface, CDC interface) to advertised name + if (index == STRID_UVC_CAM1 || index == STRID_PRODUCT || index == STRID_CDC) str = get_uvc_device_name(); if (str == NULL) str = string_desc_arr[index]; From 69406e62b3dde2a879019a4ebda36129278069f3 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Tue, 16 Sep 2025 21:55:17 +0200 Subject: [PATCH 25/30] Fixe: name not saving --- components/ProjectConfig/ProjectConfig/ProjectConfig.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/components/ProjectConfig/ProjectConfig/ProjectConfig.cpp b/components/ProjectConfig/ProjectConfig/ProjectConfig.cpp index ca38622..04f12e5 100644 --- a/components/ProjectConfig/ProjectConfig/ProjectConfig.cpp +++ b/components/ProjectConfig/ProjectConfig/ProjectConfig.cpp @@ -115,6 +115,7 @@ void ProjectConfig::setMDNSConfig(const std::string &hostname) { ESP_LOGD(CONFIGURATION_TAG, "Updating MDNS config"); this->config.mdns.hostname.assign(hostname); + this->config.mdns.save(); } void ProjectConfig::setCameraConfig(const uint8_t vflip, From 15641753f0145bf4870fb3c4306a7999f8f11d2f Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Wed, 17 Sep 2025 12:30:19 +0200 Subject: [PATCH 26/30] Improve frame handling in UVCStream to prevent corruption and ensure proper pacing maybe fix to camera glitches --- components/UVCStream/UVCStream/UVCStream.cpp | 78 +++++++++++--------- 1 file changed, 44 insertions(+), 34 deletions(-) diff --git a/components/UVCStream/UVCStream/UVCStream.cpp b/components/UVCStream/UVCStream/UVCStream.cpp index 4fcc853..531b7e8 100644 --- a/components/UVCStream/UVCStream/UVCStream.cpp +++ b/components/UVCStream/UVCStream/UVCStream.cpp @@ -6,6 +6,10 @@ static const char *UVC_STREAM_TAG = "[UVC DEVICE]"; +// Tracks whether a frame has been handed to TinyUSB and not yet returned. +// File scope so both get_cb and return_cb can access it safely. +static bool s_frame_inflight = false; + extern "C" { static char serial_number_str[13]; @@ -85,55 +89,57 @@ static void UVCStreamHelpers::camera_stop_cb(void *cb_ctx) static uvc_fb_t *UVCStreamHelpers::camera_fb_get_cb(void *cb_ctx) { auto *mgr = static_cast(cb_ctx); - s_fb.cam_fb_p = esp_camera_fb_get(); - if (!s_fb.cam_fb_p) - { - return nullptr; - } + // Guard against requesting a new frame while previous is still in flight. + // This was causing intermittent corruption/glitches because the pointer + // to the underlying camera buffer was overwritten before TinyUSB returned it. - //-------------------------------------------------------------------------------------------------------------- - // Pace frames to exactly 60 fps (drop extras). Uses fixed-point accumulator - // to achieve an exact average of 60.000 fps without drifting. - static int64_t next_deadline_us = 0; - static int rem_acc = 0; // remainder accumulator for 1e6 % fps distribution - constexpr int target_fps = 60; - constexpr int64_t us_per_sec = 1000000LL; + // --- Frame pacing BEFORE grabbing a new camera frame --- + static int64_t next_deadline_us = 0; // next permitted capture time + static int rem_acc = 0; // fractional remainder accumulator + constexpr int target_fps = 60; // desired FPS + constexpr int64_t us_per_sec = 1000000; // 1e6 microseconds constexpr int base_interval_us = us_per_sec / target_fps; // 16666 - constexpr int rem_us = us_per_sec % target_fps; // 40 + constexpr int rem_us = us_per_sec % target_fps; // 40 (distributed) const int64_t now_us = esp_timer_get_time(); if (next_deadline_us == 0) { - // First frame: allow immediately and schedule next slot from now + // First allowed capture immediately next_deadline_us = now_us; } - if (now_us < next_deadline_us) + + // If a frame is still being transmitted or we are too early, just signal no frame + if (s_frame_inflight || now_us < next_deadline_us) + { + return nullptr; // host will poll again + } + + // Acquire a fresh frame only when allowed and no frame in flight + camera_fb_t *cam_fb = esp_camera_fb_get(); + if (!cam_fb) { - // Too early for next frame: drop this camera buffer - esp_camera_fb_return(s_fb.cam_fb_p); - s_fb.cam_fb_p = nullptr; return nullptr; } - //-------------------------------------------------------------------------------------------------------------- - s_fb.uvc_fb.buf = s_fb.cam_fb_p->buf; - s_fb.uvc_fb.len = s_fb.cam_fb_p->len; - s_fb.uvc_fb.width = s_fb.cam_fb_p->width; - s_fb.uvc_fb.height = s_fb.cam_fb_p->height; - s_fb.uvc_fb.format = UVC_FORMAT_JPEG; // we gotta make sure we're ALWAYS using JPEG - s_fb.uvc_fb.timestamp = s_fb.cam_fb_p->timestamp; + s_fb.cam_fb_p = cam_fb; + s_fb.uvc_fb.buf = cam_fb->buf; + s_fb.uvc_fb.len = cam_fb->len; + s_fb.uvc_fb.width = cam_fb->width; + s_fb.uvc_fb.height = cam_fb->height; + s_fb.uvc_fb.format = UVC_FORMAT_JPEG; + s_fb.uvc_fb.timestamp = cam_fb->timestamp; - // Ensure frame fits into configured UVC transfer buffer + // Validate size fits into transfer buffer if (mgr && s_fb.uvc_fb.len > mgr->getUvcBufferSize()) { ESP_LOGE(UVC_STREAM_TAG, "Frame size %d exceeds UVC buffer size %u", (int)s_fb.uvc_fb.len, (unsigned)mgr->getUvcBufferSize()); - esp_camera_fb_return(s_fb.cam_fb_p); + esp_camera_fb_return(cam_fb); + s_fb.cam_fb_p = nullptr; return nullptr; } - //-------------------------------------------------------------------------------------------------------------- - // Schedule the next allowed frame time: base interval plus distributed remainder + // Schedule next frame time (distribute remainder for exact long‑term 60.000 fps) rem_acc += rem_us; int extra_us = 0; if (rem_acc >= target_fps) @@ -141,11 +147,10 @@ static uvc_fb_t *UVCStreamHelpers::camera_fb_get_cb(void *cb_ctx) rem_acc -= target_fps; extra_us = 1; } - // Accumulate from the previous deadline to avoid drift; if we are badly late, catch up from now - const int64_t base_next = next_deadline_us + base_interval_us + extra_us; - next_deadline_us = (base_next < now_us) ? now_us : base_next; - //-------------------------------------------------------------------------------------------------------------- + const int64_t candidate_next = next_deadline_us + base_interval_us + extra_us; + next_deadline_us = (candidate_next < now_us) ? now_us : candidate_next; + s_frame_inflight = true; return &s_fb.uvc_fb; } @@ -153,7 +158,12 @@ static void UVCStreamHelpers::camera_fb_return_cb(uvc_fb_t *fb, void *cb_ctx) { (void)cb_ctx; assert(fb == &s_fb.uvc_fb); - esp_camera_fb_return(s_fb.cam_fb_p); + if (s_fb.cam_fb_p) + { + esp_camera_fb_return(s_fb.cam_fb_p); + s_fb.cam_fb_p = nullptr; + } + s_frame_inflight = false; } esp_err_t UVCStreamManager::setup() From e47735c72021675a0ab11859a3f88a5ab427e69c Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Tue, 23 Sep 2025 01:46:53 +0200 Subject: [PATCH 27/30] Changes made based on pr feedback. --- README.md | 22 ++++++++++++++----- .../LEDManager/LEDManager/LEDManager.hpp | 4 ++-- .../Monitoring/Monitoring/CurrentMonitor.hpp | 4 ++++ .../Monitoring/MonitoringManager.hpp | 2 -- components/UVCStream/UVCStream/UVCStream.cpp | 8 +++---- main/openiris_main.cpp | 22 +++++++++---------- tools/openiris_setup.py | 16 ++++++-------- tools/switchBoardType.py | 20 ++++------------- 8 files changed, 48 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index 37c67d0..d7c8a34 100644 --- a/README.md +++ b/README.md @@ -124,8 +124,10 @@ Runtime override: If the setup CLI (or a JSON command) provides a new device nam - Fast Wi‑Fi setup: in the CLI, go to “Wi‑Fi settings” → “Automatic setup”, then check “status”. - Change name/MDNS: set the device name in the CLI, then replug USB — UVC will show the new name. - Adjust brightness/LED: set LED PWM in the CLI. - - Switch to UVC mode over commands: send JSON `{ "cmd": "switch_mode", "mode": "uvc" }` then reboot. - - Read filtered LED current (if enabled): `{ "cmd": "get_led_current" }`. + - Switch to UVC mode over commands (CDC/serial): + `{"commands":[{"command":"switch_mode","data":{"mode":"uvc"}}]}` then reboot. + - Read filtered LED current (if enabled): + `{"commands":[{"command":"get_led_current"}]}` --- @@ -143,11 +145,19 @@ When UVC support is compiled in the device enumerates as a composite USB device: - UVC interface: video streaming (JPEG frames) - CDC (virtual COM): command channel accepting newline‑terminated JSON objects -Example newline‑terminated JSON commands over CDC: +Example newline‑terminated JSON commands over CDC (one per line): ``` -{"cmd":"ping"}\n -{"cmd":"get_info"}\n -{"cmd":"switch_mode","mode":"wifi"}\n +{"commands":[{"command":"ping"}]} +{"commands":[{"command":"get_who_am_i"}]} +{"commands":[{"command":"switch_mode","data":{"mode":"wifi"}}]} +``` + +Chained commands in a single request (processed in order): +``` +{"commands":[ + {"command":"set_mdns","data":{"hostname":"tracker"}}, + {"command":"set_wifi","data":{"name":"main","ssid":"your_network","password":"password","channel":0,"power":0}} +]} ``` Responses are JSON blobs flushed immediately. diff --git a/components/LEDManager/LEDManager/LEDManager.hpp b/components/LEDManager/LEDManager/LEDManager.hpp index 0129c3b..a08ace3 100644 --- a/components/LEDManager/LEDManager/LEDManager.hpp +++ b/components/LEDManager/LEDManager/LEDManager.hpp @@ -72,8 +72,8 @@ private: bool finishedPattern = false; #if defined(CONFIG_LED_EXTERNAL_CONTROL) && defined(CONFIG_LED_EXTERNAL_AS_DEBUG) - mutable bool hasStoredExternalDuty = false; - mutable uint32_t storedExternalDuty = 0; // raw 0-255 + bool hasStoredExternalDuty = false; + uint32_t storedExternalDuty = 0; // raw 0-255 #endif }; diff --git a/components/Monitoring/Monitoring/CurrentMonitor.hpp b/components/Monitoring/Monitoring/CurrentMonitor.hpp index 3285f4e..d1163d3 100644 --- a/components/Monitoring/Monitoring/CurrentMonitor.hpp +++ b/components/Monitoring/Monitoring/CurrentMonitor.hpp @@ -1,3 +1,5 @@ +#ifndef CURRENT_MONITOR_HPP +#define CURRENT_MONITOR_HPP #pragma once #include #include @@ -43,3 +45,5 @@ private: size_t sample_idx_ = 0; size_t sample_count_ = 0; }; + +#endif diff --git a/components/Monitoring/Monitoring/MonitoringManager.hpp b/components/Monitoring/Monitoring/MonitoringManager.hpp index 6b96688..3e7a6c2 100644 --- a/components/Monitoring/Monitoring/MonitoringManager.hpp +++ b/components/Monitoring/Monitoring/MonitoringManager.hpp @@ -6,8 +6,6 @@ class MonitoringManager { public: - MonitoringManager() = default; - ~MonitoringManager() = default; void setup(); void start(); diff --git a/components/UVCStream/UVCStream/UVCStream.cpp b/components/UVCStream/UVCStream/UVCStream.cpp index 531b7e8..4f773a6 100644 --- a/components/UVCStream/UVCStream/UVCStream.cpp +++ b/components/UVCStream/UVCStream/UVCStream.cpp @@ -97,10 +97,10 @@ static uvc_fb_t *UVCStreamHelpers::camera_fb_get_cb(void *cb_ctx) // --- Frame pacing BEFORE grabbing a new camera frame --- static int64_t next_deadline_us = 0; // next permitted capture time static int rem_acc = 0; // fractional remainder accumulator - constexpr int target_fps = 60; // desired FPS - constexpr int64_t us_per_sec = 1000000; // 1e6 microseconds - constexpr int base_interval_us = us_per_sec / target_fps; // 16666 - constexpr int rem_us = us_per_sec % target_fps; // 40 (distributed) + static const int target_fps = 60; // desired FPS + static const int64_t us_per_sec = 1000000; // 1e6 microseconds + static const int base_interval_us = us_per_sec / target_fps; // 16666 + static const int rem_us = us_per_sec % target_fps; // 40 (distributed) const int64_t now_us = esp_timer_get_time(); if (next_deadline_us == 0) diff --git a/main/openiris_main.cpp b/main/openiris_main.cpp index 3f2761b..81b443e 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -5,9 +5,9 @@ #include "freertos/queue.h" #include "driver/gpio.h" #include "esp_log.h" +#include "esp_timer.h" #include "sdkconfig.h" #include "nvs_flash.h" -#include "esp_wifi.h" #include #include @@ -65,7 +65,7 @@ UVCStreamManager uvcStream; auto ledManager = std::make_shared(BLINK_GPIO, CONFIG_LED_C_PIN_GPIO, ledStateQueue, deviceConfig); auto *serialManager = new SerialManager(commandManager, &timerHandle, deviceConfig); -MonitoringManager monitoringManager; +std::shared_ptr monitoringManager = std::make_shared(); void startWiFiMode(bool shouldCloseSerialManager); void startWiredMode(bool shouldCloseSerialManager); @@ -233,11 +233,11 @@ void startSetupMode() { // If we're in SETUP mode - Device starts with a 20-second delay before deciding on what to do // during this time we await any commands - const int startup_delay_s = CONFIG_GENERAL_STARTUP_DELAY; + const uint64_t startup_delay_s = CONFIG_GENERAL_STARTUP_DELAY; ESP_LOGI("[MAIN]", "====================================="); - ESP_LOGI("[MAIN]", "STARTUP: %d-SECOND DELAY MODE ACTIVE", startup_delay_s); + ESP_LOGI("[MAIN]", "STARTUP: %llu-SECOND DELAY MODE ACTIVE", (unsigned long long)startup_delay_s); ESP_LOGI("[MAIN]", "====================================="); - ESP_LOGI("[MAIN]", "Device will wait %d seconds for commands...", startup_delay_s); + ESP_LOGI("[MAIN]", "Device will wait %llu seconds for commands...", (unsigned long long)startup_delay_s); // Create a one-shot timer for 20 seconds const esp_timer_create_args_t startup_timer_args = { @@ -248,9 +248,9 @@ void startSetupMode() .skip_unhandled_events = false}; ESP_ERROR_CHECK(esp_timer_create(&startup_timer_args, &timerHandle)); - ESP_ERROR_CHECK(esp_timer_start_once(timerHandle, (uint64_t)startup_delay_s * 1000000)); - ESP_LOGI("[MAIN]", "Started %d-second startup timer", startup_delay_s); - ESP_LOGI("[MAIN]", "Send any command within %d seconds to enter heartbeat mode", startup_delay_s); + ESP_ERROR_CHECK(esp_timer_start_once(timerHandle, startup_delay_s * 1000000)); + ESP_LOGI("[MAIN]", "Started %llu-second startup timer", (unsigned long long)startup_delay_s); + ESP_LOGI("[MAIN]", "Send any command within %llu seconds to enter heartbeat mode", (unsigned long long)startup_delay_s); } extern "C" void app_main(void) @@ -262,7 +262,7 @@ extern "C" void app_main(void) dependencyRegistry->registerService(DependencyType::wifi_manager, wifiManager); #endif dependencyRegistry->registerService(DependencyType::led_manager, ledManager); - dependencyRegistry->registerService(DependencyType::monitoring_manager, std::shared_ptr(&monitoringManager, [](MonitoringManager*){})); + dependencyRegistry->registerService(DependencyType::monitoring_manager, monitoringManager); // add endpoint to check firmware version // add firmware version somewhere @@ -275,8 +275,8 @@ extern "C" void app_main(void) initNVSStorage(); deviceConfig->load(); ledManager->setup(); - monitoringManager.setup(); - monitoringManager.start(); + monitoringManager->setup(); + monitoringManager->start(); xTaskCreate( HandleStateManagerTask, diff --git a/tools/openiris_setup.py b/tools/openiris_setup.py index b0af91f..403267c 100644 --- a/tools/openiris_setup.py +++ b/tools/openiris_setup.py @@ -1063,10 +1063,9 @@ def get_settings(device: OpenIrisDevice, args=None): print("🔑 Serial/MAC: unavailable") # Advertised Name - adv = summary.get("AdvertisedName", {}) - adv_name = adv.get("advertised_name") - if adv_name: - print(f"📛 Name: {adv_name}") + advertised_name_data = summary.get("AdvertisedName", {}) + if advertised_name := advertised_name_data.get("advertised_name"): + print(f"📛 Name: {advertised_name}") # Info info = summary.get("Info", {}) @@ -1090,12 +1089,11 @@ def get_settings(device: OpenIrisDevice, args=None): print(f"🎚️ Mode: {mode if mode else 'unknown'}") # Current - current = summary.get("Current", {}).get("led_current_ma") - if current is not None: - print(f"🔌 LED Current: {current:.3f} mA") + current_section = summary.get("Current", {}) + if (led_current_ma := current_section.get("led_current_ma")) is not None: + print(f"🔌 LED Current: {led_current_ma:.3f} mA") else: - err = summary.get("Current", {}).get("error") - if err: + if (err := current_section.get("error")): print(f"🔌 LED Current: unavailable ({err})") else: print("🔌 LED Current: unavailable") diff --git a/tools/switchBoardType.py b/tools/switchBoardType.py index 069ea6d..0ff17f6 100644 --- a/tools/switchBoardType.py +++ b/tools/switchBoardType.py @@ -1,4 +1,5 @@ import os +import difflib import argparse from typing import Dict, Optional, List @@ -70,22 +71,9 @@ def _suggest_boards(partial: str) -> List[str]: contains = [b for b in BOARD_CONFIGS if partial_low in b.lower()] if contains: return contains[:10] - # simple levenshtein distance limited (manual lightweight) - def distance(a: str, b: str) -> int: - if len(a) < len(b): - a, b = b, a - prev = list(range(len(b)+1)) - for i, ca in enumerate(a, 1): - cur = [i] - for j, cb in enumerate(b, 1): - ins = cur[j-1] + 1 - dele = prev[j] + 1 - sub = prev[j-1] + (ca != cb) - cur.append(min(ins, dele, sub)) - prev = cur - return prev[-1] - ranked = sorted(BOARD_CONFIGS, key=lambda k: distance(partial_low, k.lower())) - return ranked[:5] + # fallback to fuzzy matching using difflib + choices = list(BOARD_CONFIGS.keys()) + return difflib.get_close_matches(partial, choices, n=5, cutoff=0.4) def normalize_board_name(raw: Optional[str]) -> Optional[str]: if raw is None: From 66b4264d73f0984dbc3fc91fc3c75e3fb37e2071 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sat, 27 Sep 2025 21:06:23 +0200 Subject: [PATCH 28/30] Update USB configuration descriptor to advertise max bus power consumption as 200 mA --- components/usb_device_uvc/tusb/usb_descriptors.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/usb_device_uvc/tusb/usb_descriptors.c b/components/usb_device_uvc/tusb/usb_descriptors.c index 6dcf486..5ccb305 100644 --- a/components/usb_device_uvc/tusb/usb_descriptors.c +++ b/components/usb_device_uvc/tusb/usb_descriptors.c @@ -126,7 +126,8 @@ static uint8_t const desc_fs_configuration[] = { // TUD_CONFIG_DESCRIPTOR(config_number, interface_count, string_index, // total_length, attributes, power_mA) // attributes: 0 = bus-powered (default). Add TUSB_DESC_CONFIG_ATT_SELF_POWERED or _REMOTE_WAKEUP if needed. - TUD_CONFIG_DESCRIPTOR(1, ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, 0, 500), + // Advertise max bus power consumption: 200 mA + TUD_CONFIG_DESCRIPTOR(1, ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, 0, 200), TUD_CDC_DESCRIPTOR(ITF_NUM_CDC, 6, EPNUM_CDC_NOTIF, 8, EPNUM_CDC_OUT, EPNUM_CDC_IN, 64), // IAD for Video Control #if CFG_TUD_CAM1_VIDEO_STREAMING_BULK From 05cc906988544e395f925a1a473eaad123246aa5 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Tue, 30 Sep 2025 13:49:56 +0200 Subject: [PATCH 29/30] Adjust camera configuration --- components/CameraManager/CameraManager/CameraManager.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/components/CameraManager/CameraManager/CameraManager.cpp b/components/CameraManager/CameraManager/CameraManager.cpp index 6efdb3e..d9ef530 100644 --- a/components/CameraManager/CameraManager/CameraManager.cpp +++ b/components/CameraManager/CameraManager/CameraManager.cpp @@ -79,10 +79,10 @@ void CameraManager::setupCameraPinout() .pixel_format = PIXFORMAT_JPEG, // YUV422,GRAYSCALE,RGB565,JPEG .frame_size = FRAMESIZE_240X240, // QQVGA-UXGA, For ESP32, do not use sizes above QVGA when not JPEG. The performance of the ESP32-S series has improved a lot, but JPEG mode always gives better frame rates. - .jpeg_quality = 7, // 0-63, for OV series camera sensors, lower number means higher quality // Below 6 stability problems - .fb_count = 2, // When jpeg mode is used, if fb_count more than one, the driver will work in continuous mode. - .fb_location = CAMERA_FB_IN_DRAM, - .grab_mode = CAMERA_GRAB_LATEST, // CAMERA_GRAB_WHEN_EMPTY + .jpeg_quality = 8, // 0-63, for OV series camera sensors, lower number means higher quality // Below 6 stability problems + .fb_count = 2, // When jpeg mode is used, if fb_count more than one, the driver will work in continuous mode. + .fb_location = CAMERA_FB_IN_DRAM, + .grab_mode = CAMERA_GRAB_WHEN_EMPTY, // was CAMERA_GRAB_LATEST; new mode reduces frame skips at cost of minor latency }; } From 1187be50f4adcc3205fb88edc61b49204567bb54 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Tue, 30 Sep 2025 20:13:55 +0200 Subject: [PATCH 30/30] Removed CPU frequency configurations from facefocusvr board configs. Underclocking is very likely the cause of why the streams glitch --- boards/facefocusvr/eye_L | 8 -------- boards/facefocusvr/eye_R | 8 -------- boards/facefocusvr/face | 8 -------- 3 files changed, 24 deletions(-) diff --git a/boards/facefocusvr/eye_L b/boards/facefocusvr/eye_L index fcc5502..2655bfc 100644 --- a/boards/facefocusvr/eye_L +++ b/boards/facefocusvr/eye_L @@ -66,14 +66,6 @@ CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_INTERVAL_MS=500 CONFIG_GENERAL_BOARD="facefocusvr_eye_l" # CONFIG_GENERAL_ENABLE_WIRELESS is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 # CONFIG_LED_DEBUG_ENABLE is not set CONFIG_LED_EXTERNAL_AS_DEBUG=y CONFIG_GENERAL_ADVERTISED_NAME="FFVR Eye L" \ No newline at end of file diff --git a/boards/facefocusvr/eye_R b/boards/facefocusvr/eye_R index c6c6bc6..9d3af2c 100644 --- a/boards/facefocusvr/eye_R +++ b/boards/facefocusvr/eye_R @@ -66,14 +66,6 @@ CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_INTERVAL_MS=500 CONFIG_GENERAL_BOARD="facefocusvr_eye_r" # CONFIG_GENERAL_ENABLE_WIRELESS is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 # CONFIG_LED_DEBUG_ENABLE is not set CONFIG_LED_EXTERNAL_AS_DEBUG=y CONFIG_GENERAL_ADVERTISED_NAME="FFVR Eye R" \ No newline at end of file diff --git a/boards/facefocusvr/face b/boards/facefocusvr/face index dda374c..e51b9e7 100644 --- a/boards/facefocusvr/face +++ b/boards/facefocusvr/face @@ -66,14 +66,6 @@ CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_INTERVAL_MS=500 CONFIG_GENERAL_BOARD="facefocusvr_face" # CONFIG_GENERAL_ENABLE_WIRELESS is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80=y -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=80 # CONFIG_LED_DEBUG_ENABLE is not set CONFIG_LED_EXTERNAL_AS_DEBUG=y CONFIG_GENERAL_ADVERTISED_NAME="FFVR Face" \ No newline at end of file