From 6b3e130f12bb27b2432a43001a1bccdfd93dad49 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Thu, 7 Aug 2025 12:06:01 +0200 Subject: [PATCH 01/16] Fixing base defaults --- sdkconfig.base_defaults | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sdkconfig.base_defaults b/sdkconfig.base_defaults index c4a9dfd..f474559 100644 --- a/sdkconfig.base_defaults +++ b/sdkconfig.base_defaults @@ -2204,7 +2204,7 @@ CONFIG_UVC_CAM1_MULTI_FRAMESIZE=y # CONFIG_UVC_MULTI_FRAME_WIDTH_1=240 CONFIG_UVC_MULTI_FRAME_HEIGHT_1=240 -CONFIG_UVC_MULTI_FRAME_FPS_1=60 +CONFIG_UVC_MULTI_FRAME_FPS_1=90 # end of FRAME_SIZE_1 # @@ -2212,7 +2212,7 @@ CONFIG_UVC_MULTI_FRAME_FPS_1=60 # CONFIG_UVC_MULTI_FRAME_WIDTH_2=240 CONFIG_UVC_MULTI_FRAME_HEIGHT_2=240 -CONFIG_UVC_MULTI_FRAME_FPS_2=60 +CONFIG_UVC_MULTI_FRAME_FPS_2=90 # end of FRAME_SIZE_2 # @@ -2220,7 +2220,7 @@ CONFIG_UVC_MULTI_FRAME_FPS_2=60 # CONFIG_UVC_MULTI_FRAME_WIDTH_3=240 CONFIG_UVC_MULTI_FRAME_HEIGHT_3=240 -CONFIG_UVC_MULTI_FRAME_FPS_3=60 +CONFIG_UVC_MULTI_FRAME_FPS_3=90 # end of FRAME_SIZE_3 # end of UVC_MULTI_FRAME_CONFIG From 2346d0ec6cf31dc01c23c191f77fb1d95278e812 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 8 Aug 2025 21:26:06 +0200 Subject: [PATCH 02/16] -Add configurable PWM frequency and duty cycle for external LED control -Reworked Kconfig menu structure for better organization --- .../LEDManager/LEDManager/LEDManager.cpp | 45 +++++---- .../LEDManager/LEDManager/LEDManager.hpp | 2 +- dependencies.lock | 2 +- main/Kconfig.projbuild | 91 ++++++++++------- main/openiris_main.cpp | 4 +- sdkconfig | 99 ++++++++++++------- sdkconfig.base_defaults | 2 +- sdkconfig.board.project_babble | 4 +- sdkconfig.board.xiao-esp32s3 | 2 +- 9 files changed, 156 insertions(+), 95 deletions(-) diff --git a/components/LEDManager/LEDManager/LEDManager.cpp b/components/LEDManager/LEDManager/LEDManager.cpp index f80d434..97ad6e0 100644 --- a/components/LEDManager/LEDManager/LEDManager.cpp +++ b/components/LEDManager/LEDManager/LEDManager.cpp @@ -78,32 +78,35 @@ void LEDManager::setup() { gpio_set_direction(blink_led_pin, GPIO_MODE_OUTPUT); this->toggleLED(LED_OFF); -#ifdef CONFIG_SUPPORTS_EXTERNAL_LED_CONTROL - ESP_LOGD(LED_MANAGER_TAG, "Setting up illuminator led."); - const int freq = 5000; - const auto resolution = LEDC_TIMER_8_BIT; - const int dutyCycle = 255; +#ifdef CONFIG_LED_EXTERNAL_CONTROL + ESP_LOGD(LED_MANAGER_TAG, "Setting up illuminator led."); + const int freq = CONFIG_LED_EXTERNAL_PWM_FREQ; + const auto resolution = LEDC_TIMER_8_BIT; + const int dutyCycle = (CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE * 255) / 100; - ledc_timer_config_t ledc_timer = { - .speed_mode = LEDC_LOW_SPEED_MODE, - .duty_resolution = resolution, - .timer_num = LEDC_TIMER_0, - .freq_hz = freq, - .clk_cfg = LEDC_AUTO_CLK}; + ledc_timer_config_t ledc_timer = { + .speed_mode = LEDC_LOW_SPEED_MODE, + .duty_resolution = resolution, + .timer_num = LEDC_TIMER_0, + .freq_hz = freq, + .clk_cfg = LEDC_AUTO_CLK + }; - ESP_ERROR_CHECK(ledc_timer_config(&ledc_timer)); + ESP_ERROR_CHECK(ledc_timer_config(&ledc_timer)); - ledc_channel_config_t ledc_channel = { - .gpio_num = this->illumninator_led_pin, - .speed_mode = LEDC_LOW_SPEED_MODE, - .channel = LEDC_CHANNEL_0, - .intr_type = LEDC_INTR_DISABLE, - .timer_sel = LEDC_TIMER_0, - .duty = dutyCycle, - .hpoint = 0}; + ledc_channel_config_t ledc_channel = { + .gpio_num = this->illumninator_led_pin, + .speed_mode = LEDC_LOW_SPEED_MODE, + .channel = LEDC_CHANNEL_0, + .intr_type = LEDC_INTR_DISABLE, + .timer_sel = LEDC_TIMER_0, + .duty = dutyCycle, + .hpoint = 0 + }; - ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel)); + ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel)); #endif + ESP_LOGD(LED_MANAGER_TAG, "Done."); } diff --git a/components/LEDManager/LEDManager/LEDManager.hpp b/components/LEDManager/LEDManager/LEDManager.hpp index 1df8dbb..af92387 100644 --- a/components/LEDManager/LEDManager/LEDManager.hpp +++ b/components/LEDManager/LEDManager/LEDManager.hpp @@ -6,7 +6,7 @@ #include "freertos/FreeRTOS.h" #include "freertos/queue.h" -#ifdef CONFIG_SUPPORTS_EXTERNAL_LED_CONTROL +#ifdef CONFIG_LED_EXTERNAL_CONTROL #include "driver/ledc.h" #endif diff --git a/dependencies.lock b/dependencies.lock index c56cb65..c7e209c 100644 --- a/dependencies.lock +++ b/dependencies.lock @@ -53,7 +53,7 @@ dependencies: idf: source: type: idf - version: 5.3.2 + version: 5.3.3 direct_dependencies: - espressif/cmake_utilities - espressif/esp32-camera diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 2f95048..0de545f 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -1,56 +1,79 @@ -menu "OpenIris basic configuration" +menu "ENV_Caps" orsource "$IDF_PATH/examples/common_components/env_caps/$IDF_TARGET/Kconfig.env_caps" - config BLINK_GPIO - int "Blink GPIO number" - range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX - default 8 - help - GPIO number (IOxx) to blink on and off the LED. - Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to blink. +endmenu - config SUPPORTS_EXTERNAL_LED_CONTROL - bool "Tick if your board supports the control of external IR leds (Project Babble)" - default false - help - GPIO number (IOxx) to the pin controlling the LEDs found on Babble boards. - - config LED_C_PIN - int "Pin number of the pin controlling the external leds (Project Babble)" - range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX - default 1 - help - GPIO number (IOxx) to the pin controlling the LEDs found on Babble boards. - - config BLINK_PERIOD - int "Blink period in ms" - range 10 3600000 - default 1000 - help - Define the blinking period in milliseconds. +menu "OpenIris: General Configuration" config WIRED_MODE - bool "WIred mode" + bool "Wired mode" default false +endmenu + +menu "OpenIris: WiFi Configuration" + config MDNS_HOSTNAME - string "mDNS name" + string "mDNS hostname" default "openiristracker" config WIFI_SSID - string "WiFi network name" + string "WiFi network name (SSID)" default "" - + config WIFI_PASSWORD string "WiFi password" default "" config AP_WIFI_SSID - string "AP WiFi network name" + string "Access Point WiFi network name (SSID)" default "EyeTrackVR" - + config AP_WIFI_PASSWORD - string "AP WiFi password" + string "Access Point WiFi password" default "12345678" + endmenu + +menu "OpenIris: LED Configuration" + + config LED_BLINK_GPIO + int "Blink GPIO number" + range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX + default 8 + help + GPIO number (IOxx) used to blink an onboard LED. + Some GPIOs are reserved for other functions (e.g. flash) and cannot be used. + + config LED_EXTERNAL_GPIO + int "GPIO pin controlling external LEDs" + range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX + default 1 + help + GPIO number connected to the control line of the external IR LEDs. + + config LED_EXTERNAL_CONTROL + bool "Board supports external IR LED control" + default false + help + Enable this if your board can control external IR LEDs. + + config LED_EXTERNAL_PWM_FREQ + int "External LED PWM frequency (Hz)" + default 5000 + range 1 40000 + depends on LED_EXTERNAL_CONTROL + help + Frequency of the PWM signal driving the external IR LEDs. + + config LED_EXTERNAL_PWM_DUTY_CYCLE + int "External LED PWM duty cycle (%)" + default 50 + range 0 100 + depends on LED_EXTERNAL_CONTROL + help + Duty cycle of the PWM signal for external IR LEDs, in percent. + 0 means always off, 100 means always on. + +endmenu \ No newline at end of file diff --git a/main/openiris_main.cpp b/main/openiris_main.cpp index e5e9744..38b9962 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -25,8 +25,8 @@ #include #endif -#define BLINK_GPIO (gpio_num_t) CONFIG_BLINK_GPIO -#define CONFIG_LED_C_PIN_GPIO (gpio_num_t) CONFIG_LED_C_PIN +#define BLINK_GPIO (gpio_num_t) CONFIG_LED_BLINK_GPIO +#define CONFIG_LED_C_PIN_GPIO (gpio_num_t) CONFIG_LED_EXTERNAL_GPIO esp_timer_handle_t timerHandle; QueueHandle_t eventQueue = xQueueCreate(10, sizeof(SystemEvent)); diff --git a/sdkconfig b/sdkconfig index 1d2a05b..22ce997 100644 --- a/sdkconfig +++ b/sdkconfig @@ -1,6 +1,6 @@ # # Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.3.2 Project Configuration +# Espressif IoT Development Framework (ESP-IDF) 5.3.3 Project Configuration # CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 @@ -64,6 +64,7 @@ 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 @@ -101,6 +102,7 @@ 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 @@ -203,6 +205,7 @@ 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 @@ -243,6 +246,8 @@ 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 @@ -537,23 +542,37 @@ CONFIG_PARTITION_TABLE_MD5=y # end of Partition Table # -# OpenIris basic configuration +# 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 -CONFIG_BLINK_GPIO=38 -CONFIG_SUPPORTS_EXTERNAL_LED_CONTROL=y -CONFIG_LED_C_PIN=1 -CONFIG_BLINK_PERIOD=1000 +# end of ENV_Caps + +# +# OpenIris: General Configuration +# CONFIG_WIRED_MODE=y +# end of OpenIris: General Configuration + +# +# OpenIris: WiFi Configuration +# 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 +# end of OpenIris: WiFi Configuration + +# +# OpenIris: LED Configuration +# +CONFIG_LED_BLINK_GPIO=1 +CONFIG_LED_EXTERNAL_GPIO=1 +# CONFIG_LED_EXTERNAL_CONTROL is not set +# end of OpenIris: LED Configuration # # Camera sensor pinout configuration @@ -628,7 +647,12 @@ CONFIG_APPTRACE_LOCK_ENABLE=y # Bluetooth # # CONFIG_BT_ENABLED is not set -CONFIG_BT_ALARM_MAX_NUM=50 + +# +# Common Options +# +# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set +# end of Common Options # end of Bluetooth # @@ -652,6 +676,7 @@ CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y # 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 @@ -664,42 +689,49 @@ CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y # 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 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 @@ -759,6 +791,7 @@ CONFIG_ESP_ERR_TO_NAME_LOOKUP=y 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 @@ -877,6 +910,13 @@ 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 # @@ -1051,6 +1091,7 @@ CONFIG_ESP_PHY_RF_CAL_PARTIAL=y # 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 # @@ -1251,9 +1292,9 @@ 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_CACHE_TX_BUFFER_NUM=32 CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y # CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 @@ -1263,7 +1304,6 @@ 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_AMSDU_TX_ENABLED is not set CONFIG_ESP_WIFI_NVS_ENABLED=y CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_0=y # CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_1 is not set @@ -1434,7 +1474,6 @@ 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 -# CONFIG_HAL_ECDSA_GEN_SIG_CM is not set # end of Hardware Abstraction Layer (HAL) and Low Level (LL) # @@ -1836,25 +1875,10 @@ CONFIG_STDATOMIC_S32C1I_SPIRAM_WORKAROUND=y # CONFIG_OPENTHREAD_ENABLED is not set # -# Thread Operational Dataset +# OpenThread Spinel # -CONFIG_OPENTHREAD_NETWORK_NAME="OpenThread-ESP" -CONFIG_OPENTHREAD_MESH_LOCAL_PREFIX="fd00:db8:a0:0::/64" -CONFIG_OPENTHREAD_NETWORK_CHANNEL=15 -CONFIG_OPENTHREAD_NETWORK_PANID=0x1234 -CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe" -CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff" -CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" -# end of Thread Operational Dataset - -CONFIG_OPENTHREAD_XTAL_ACCURACY=130 # CONFIG_OPENTHREAD_SPINEL_ONLY is not set -CONFIG_OPENTHREAD_RX_ON_WHEN_IDLE=y - -# -# Thread Address Query Config -# -# end of Thread Address Query Config +# end of OpenThread Spinel # end of OpenThread # @@ -1863,6 +1887,7 @@ CONFIG_OPENTHREAD_RX_ON_WHEN_IDLE=y 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 # @@ -2190,6 +2215,7 @@ CONFIG_OV5640_SUPPORT=y # CONFIG_SC101IOT_SUPPORT is not set # CONFIG_SC030IOT_SUPPORT is not set # CONFIG_SC031GS_SUPPORT is not set +CONFIG_MEGA_CCM_SUPPORT=y # CONFIG_SCCB_HARDWARE_I2C_PORT0 is not set CONFIG_SCCB_HARDWARE_I2C_PORT1=y CONFIG_SCCB_CLK_FREQ=100000 @@ -2216,6 +2242,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 @@ -2326,7 +2363,6 @@ CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y CONFIG_ESP32S3_DEBUG_OCDAWARE=y CONFIG_BROWNOUT_DET=y CONFIG_ESP32S3_BROWNOUT_DET=y -CONFIG_ESP32S3_BROWNOUT_DET=y CONFIG_BROWNOUT_DET_LVL_SEL_7=y CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_7=y # CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set @@ -2349,17 +2385,14 @@ 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_CACHE_TX_BUFFER_NUM=32 # CONFIG_ESP32_WIFI_CSI_ENABLED is not set CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y CONFIG_ESP32_WIFI_TX_BA_WIN=6 CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y CONFIG_ESP32_WIFI_RX_BA_WIN=6 -CONFIG_ESP32_WIFI_RX_BA_WIN=6 -# CONFIG_ESP32_WIFI_AMSDU_TX_ENABLED is not set CONFIG_ESP32_WIFI_NVS_ENABLED=y CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y # CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set diff --git a/sdkconfig.base_defaults b/sdkconfig.base_defaults index f474559..bf9f3bc 100644 --- a/sdkconfig.base_defaults +++ b/sdkconfig.base_defaults @@ -551,7 +551,7 @@ CONFIG_WIFI_SSID="" CONFIG_WIFI_PASSWORD="" CONFIG_AP_WIFI_SSID="EyeTrackVR" CONFIG_AP_WIFI_PASSWORD="12345678" -# CONFIG_SUPPORTS_EXTERNAL_LED_CONTROL is not set +# CONFIG_LED_EXTERNAL_CONTROL is not set CONFIG_LED_C_PIN=1 # end of OpenIris basic configuration diff --git a/sdkconfig.board.project_babble b/sdkconfig.board.project_babble index 2b6ad55..f3125ba 100644 --- a/sdkconfig.board.project_babble +++ b/sdkconfig.board.project_babble @@ -46,4 +46,6 @@ CONFIG_SPIRAM_CS_IO=26 # CONFIG_SPIRAM_RODATA is not set # CONFIG_SPIRAM_SPEED_120M is not set CONFIG_SPIRAM_SPEED_80M=y -CONFIG_SUPPORTS_EXTERNAL_LED_CONTROL=y \ No newline at end of file +CONFIG_LED_EXTERNAL_CONTROL=y +CONFIG_LED_EXTERNAL_PWM_FREQ=5000 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 \ No newline at end of file diff --git a/sdkconfig.board.xiao-esp32s3 b/sdkconfig.board.xiao-esp32s3 index b44f93f..1932ff7 100644 --- a/sdkconfig.board.xiao-esp32s3 +++ b/sdkconfig.board.xiao-esp32s3 @@ -54,4 +54,4 @@ CONFIG_SPIRAM_SPEED_80M=y # CONFIG_SPIRAM_SPEED_120M is not set CONFIG_SPIRAM_SPEED=80 CONFIG_SPIRAM_SPEED_80M=y -# CONFIG_SUPPORTS_EXTERNAL_LED_CONTROL is not set \ No newline at end of file +# CONFIG_LED_EXTERNAL_CONTROL is not set \ No newline at end of file From 5c5d32b083c323f8b4f88e7d7f23ad66ee226a0e Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 8 Aug 2025 21:37:57 +0200 Subject: [PATCH 03/16] Fix: ensure SerialManager task handle is stored correctly for timer callback - Replaced TaskHandle_t* with TaskHandle_t to allow xTaskCreate() to store the task handle - Passed the actual handle to the start_video_streaming timer callback - Prevented potential null/invalid handle issues when deleting the SerialManager task --- main/openiris_main.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/main/openiris_main.cpp b/main/openiris_main.cpp index 38b9962..4cc1929 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -78,6 +78,8 @@ void disable_serial_manager_task(TaskHandle_t serialManagerHandle) { // if we get anything on the serial, we stop the timer and reset it after the commands are done // this is done to ensure the user has enough time to configure the board if need be void start_video_streaming(void *arg) { + TaskHandle_t serialTaskHandle = (TaskHandle_t)arg; // retrieve task handle from arg + // if we're in auto-mode, we can decide which streaming helper to start based on the // presence of Wi-Fi credentials ESP_LOGI("[MAIN]", "Setup window expired, starting streaming services, quitting serial manager."); @@ -102,8 +104,9 @@ void start_video_streaming(void *arg) { break; } - const auto serialTaskHandle = static_cast(arg); - disable_serial_manager_task(serialTaskHandle); + if (serialTaskHandle != nullptr) { + disable_serial_manager_task(serialTaskHandle); + } } esp_timer_handle_t createStartVideoStreamingTimer(void *pvParameter) { @@ -122,7 +125,12 @@ esp_timer_handle_t createStartVideoStreamingTimer(void *pvParameter) { } extern "C" void app_main(void) { - TaskHandle_t *serialManagerHandle = nullptr; + // --- FIX: Use a real TaskHandle_t variable instead of a pointer --- + // Previously: TaskHandle_t* serialManagerHandle = nullptr; + // This caused xTaskCreate() to never store a valid handle, + // leading to random failures when deleting the task in the timer callback. + TaskHandle_t serialManagerHandle = nullptr; + dependencyRegistry->registerService(DependencyType::project_config, deviceConfig); dependencyRegistry->registerService(DependencyType::camera_manager, cameraHandler); // uvc plan @@ -197,13 +205,15 @@ extern "C" void app_main(void) { deviceConfig->load(); serialManager->setup(); + // Pass address of variable so xTaskCreate() stores the actual task handle xTaskCreate( HandleSerialManagerTask, "HandleSerialManagerTask", 1024 * 6, serialManager, 1, // we only rely on the serial manager during provisioning, we can run it slower - serialManagerHandle); + &serialManagerHandle + ); wifiManager.Begin(); mdnsManager.start(); @@ -218,8 +228,9 @@ extern "C" void app_main(void) { 1, // it's the rest API, we only serve commands over it so we don't really need a higher priority nullptr); - timerHandle = createStartVideoStreamingTimer(serialManagerHandle); + // Pass the actual TaskHandle_t value into the timer + timerHandle = createStartVideoStreamingTimer((void*)serialManagerHandle); if (timerHandle != nullptr) { esp_timer_start_once(timerHandle, 30000000); // 30s } -} +} \ No newline at end of file From 421a4cdaf33e22be3ff41b8c6f15ce9f45c539ac Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 8 Aug 2025 22:01:07 +0200 Subject: [PATCH 04/16] Added facefocusvr_face board --- sdkconfig | 64 ++++++++++++++++---------------- sdkconfig.board.facefocusvr_face | 60 ++++++++++++++++++++++++++++++ sdkconfig.board.project_babble | 3 +- tools/switchBoardType.py | 3 +- 4 files changed, 96 insertions(+), 34 deletions(-) create mode 100644 sdkconfig.board.facefocusvr_face diff --git a/sdkconfig b/sdkconfig index 22ce997..e4cbda2 100644 --- a/sdkconfig +++ b/sdkconfig @@ -497,9 +497,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" @@ -511,13 +511,13 @@ CONFIG_ESPTOOLPY_FLASHFREQ_80M_DEFAULT=y CONFIG_ESPTOOLPY_FLASHFREQ="80m" # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_4MB=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 @@ -569,31 +569,33 @@ CONFIG_AP_WIFI_PASSWORD="12345678" # # OpenIris: LED Configuration # -CONFIG_LED_BLINK_GPIO=1 -CONFIG_LED_EXTERNAL_GPIO=1 -# CONFIG_LED_EXTERNAL_CONTROL is not set +CONFIG_LED_BLINK_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 # end of OpenIris: LED Configuration # # Camera sensor pinout configuration # -CONFIG_CAMERA_MODULE_NAME="SWROOM_BABBLE_S3" +CONFIG_CAMERA_MODULE_NAME="ESP32S3_XIAO_SENSE" 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 # @@ -1111,11 +1113,9 @@ 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_ALLOW_STACK_EXTERNAL_MEMORY=y CONFIG_SPIRAM_CLK_IO=30 @@ -1123,10 +1123,10 @@ 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_IGNORE_NOTFOUND is not set # CONFIG_SPIRAM_USE_MEMMAP is not set @@ -2180,9 +2180,9 @@ CONFIG_UVC_MULTI_FRAME_FPS_3=90 # # UVC Task Config # -CONFIG_UVC_TINYUSB_TASK_PRIORITY=3 +CONFIG_UVC_TINYUSB_TASK_PRIORITY=4 CONFIG_UVC_TINYUSB_TASK_CORE=-1 -CONFIG_UVC_CAM1_TASK_PRIORITY=2 +CONFIG_UVC_CAM1_TASK_PRIORITY=3 CONFIG_UVC_CAM1_TASK_CORE=-1 # end of UVC Task Config # end of USB Device UVC @@ -2286,9 +2286,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.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face new file mode 100644 index 0000000..262f998 --- /dev/null +++ b/sdkconfig.board.facefocusvr_face @@ -0,0 +1,60 @@ +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=y +CONFIG_LED_EXTERNAL_GPIO=9 +CONFIG_LED_EXTERNAL_PWM_FREQ=20000 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 \ No newline at end of file diff --git a/sdkconfig.board.project_babble b/sdkconfig.board.project_babble index f3125ba..4cc6639 100644 --- a/sdkconfig.board.project_babble +++ b/sdkconfig.board.project_babble @@ -48,4 +48,5 @@ CONFIG_SPIRAM_CS_IO=26 CONFIG_SPIRAM_SPEED_80M=y CONFIG_LED_EXTERNAL_CONTROL=y CONFIG_LED_EXTERNAL_PWM_FREQ=5000 -CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 \ No newline at end of file +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 +CONFIG_LED_EXTERNAL_GPIO=1 \ No newline at end of file diff --git a/tools/switchBoardType.py b/tools/switchBoardType.py index b60f5c6..c8e2f76 100644 --- a/tools/switchBoardType.py +++ b/tools/switchBoardType.py @@ -10,7 +10,8 @@ ENDC = '\033[0m' sdkconfig_defaults = "sdkconfig.base_defaults" supported_boards = [ "xiao-esp32s3", - "project_babble" + "project_babble", + "facefocusvr_face" ] parser = argparse.ArgumentParser() From 2a2327b038a1107bdd926557cb99a7e0293df46a Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 8 Aug 2025 22:08:32 +0200 Subject: [PATCH 05/16] Added FaceFocusVR to CONFIG_CAMERA_MODULE_NAME --- sdkconfig | 2 +- sdkconfig.board.facefocusvr_face | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdkconfig b/sdkconfig index e4cbda2..a1d5033 100644 --- a/sdkconfig +++ b/sdkconfig @@ -579,7 +579,7 @@ CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 # # 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 diff --git a/sdkconfig.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face index 262f998..978af14 100644 --- a/sdkconfig.board.facefocusvr_face +++ b/sdkconfig.board.facefocusvr_face @@ -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 From a5d4ac3c7dec92952eec6ec8ee37d09182b6bdd9 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Fri, 8 Aug 2025 22:45:28 +0200 Subject: [PATCH 06/16] Added Camera_USB_XCLK_FREQ and CONFIG_GENERAL_UVC_DELAY --- .vscode/settings.json | 4 ++++ .../CameraManager/CameraManager.hpp | 2 +- main/Kconfig.projbuild | 18 ++++++++++++++++++ main/openiris_main.cpp | 2 +- sdkconfig | 7 +++++++ sdkconfig.board.facefocusvr_face | 3 ++- 6 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..59886ab --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "idf.portWin": "COM21", + "idf.flashType": "UART" +} \ No newline at end of file diff --git a/components/CameraManager/CameraManager/CameraManager.hpp b/components/CameraManager/CameraManager/CameraManager.hpp index 3a6a441..b992224 100644 --- a/components/CameraManager/CameraManager/CameraManager.hpp +++ b/components/CameraManager/CameraManager/CameraManager.hpp @@ -16,7 +16,7 @@ #ifndef DEFAULT_XCLK_FREQ_HZ #define DEFAULT_XCLK_FREQ_HZ 16500000 -#define USB_DEFAULT_XCLK_FREQ_HZ 20000000 +#define USB_DEFAULT_XCLK_FREQ_HZ CONFIG_Camera_USB_XCLK_FREQ #define OV5640_XCLK_FREQ_HZ DEFAULT_XCLK_FREQ_HZ #endif diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 0de545f..4b470ed 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -10,6 +10,24 @@ menu "OpenIris: General Configuration" bool "Wired mode" default false + config GENERAL_UVC_DELAY + int "UVC delay (s)" + default 30 + range 10 10000 + help + Delay in seconds before the ESP reports itself as a UVC device. + +endmenu + +menu "OpenIris: Camera Configuration" + + config Camera_USB_XCLK_FREQ + int "USB XCLK frequency (Hz)" + default 20000000 + range 1 40000000 + help + USB XCLK frequency in Hertz. + endmenu menu "OpenIris: WiFi Configuration" diff --git a/main/openiris_main.cpp b/main/openiris_main.cpp index 4cc1929..b5ee5f3 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -231,6 +231,6 @@ extern "C" void app_main(void) { // Pass the actual TaskHandle_t value into the timer timerHandle = createStartVideoStreamingTimer((void*)serialManagerHandle); if (timerHandle != nullptr) { - esp_timer_start_once(timerHandle, 30000000); // 30s + esp_timer_start_once(timerHandle, CONFIG_GENERAL_UVC_DELAY * 1000000); } } \ No newline at end of file diff --git a/sdkconfig b/sdkconfig index a1d5033..4500264 100644 --- a/sdkconfig +++ b/sdkconfig @@ -554,8 +554,15 @@ CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 # OpenIris: General Configuration # CONFIG_WIRED_MODE=y +CONFIG_GENERAL_UVC_DELAY=30 # end of OpenIris: General Configuration +# +# OpenIris: Camera Configuration +# +CONFIG_Camera_USB_XCLK_FREQ=23000000 +# end of OpenIris: Camera Configuration + # # OpenIris: WiFi Configuration # diff --git a/sdkconfig.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face index 978af14..5ae7e16 100644 --- a/sdkconfig.board.facefocusvr_face +++ b/sdkconfig.board.facefocusvr_face @@ -57,4 +57,5 @@ 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 \ No newline at end of file +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 +CONFIG_Camera_USB_XCLK_FREQ=23000000 \ No newline at end of file From 03822f90c865b48d502308235c9a73750a236715 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sat, 9 Aug 2025 03:10:44 +0200 Subject: [PATCH 07/16] fb_location to DRAM, no need for psram with small files and DRAM should be more stable --- .vscode/settings.json | 2 +- .../CameraManager/CameraManager/CameraManager.cpp | 13 ++++++------- sdkconfig | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 59886ab..0a9fe64 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,4 @@ { - "idf.portWin": "COM21", + "idf.portWin": "COM22", "idf.flashType": "UART" } \ No newline at end of file diff --git a/components/CameraManager/CameraManager/CameraManager.cpp b/components/CameraManager/CameraManager/CameraManager.cpp index 511a48d..0fcdadf 100644 --- a/components/CameraManager/CameraManager/CameraManager.cpp +++ b/components/CameraManager/CameraManager/CameraManager.cpp @@ -71,8 +71,7 @@ void CameraManager::setupCameraPinout() .pin_href = CONFIG_HREF_GPIO_NUM, // CAM_PIN_HREF, .pin_pclk = CONFIG_PCLK_GPIO_NUM, // CAM_PIN_PCLK, - // XCLK 20MHz or 10MHz for OV2640 double FPS (Experimental) - .xclk_freq_hz = xclk_freq_hz, // 20000000, + .xclk_freq_hz = xclk_freq_hz, // Set in config .ledc_timer = LEDC_TIMER_0, .ledc_channel = LEDC_CHANNEL_0, @@ -80,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 - .fb_count = 2, // 3 // When jpeg mode is used, if fb_count more than one, the driver will work in continuous mode. - .fb_location = CAMERA_FB_IN_PSRAM, // maybe it cannot put them fully in psram? - .grab_mode = CAMERA_GRAB_WHEN_EMPTY, // CAMERA_GRAB_LATEST + .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_WHEN_EMPTY, }; } @@ -95,7 +94,7 @@ void CameraManager::setupBasicResolution() ESP_LOGE(CAMERA_MANAGER_TAG, "PSRAM not initialized!"); ESP_LOGD(CAMERA_MANAGER_TAG, "Setting fb_location to CAMERA_FB_IN_DRAM with lower picture quality"); config.fb_location = CAMERA_FB_IN_DRAM; - config.jpeg_quality = 9; + config.jpeg_quality = 7; config.fb_count = 2; return; } diff --git a/sdkconfig b/sdkconfig index 4500264..a822a4f 100644 --- a/sdkconfig +++ b/sdkconfig @@ -580,7 +580,7 @@ CONFIG_LED_BLINK_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=50 # end of OpenIris: LED Configuration # From 35821507eff80767e34e0dca9d78b3a08d677a5c Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sat, 9 Aug 2025 03:25:02 +0200 Subject: [PATCH 08/16] Added CONFIG_CAMERA_WIFI_XCLK_FREQ --- .../CameraManager/CameraManager.cpp | 2 +- .../CameraManager/CameraManager.hpp | 4 +- main/Kconfig.projbuild | 15 +++-- sdkconfig | 61 ++++++++++--------- sdkconfig.board.xiao-esp32s3 | 3 +- 5 files changed, 48 insertions(+), 37 deletions(-) diff --git a/components/CameraManager/CameraManager/CameraManager.cpp b/components/CameraManager/CameraManager/CameraManager.cpp index 0fcdadf..b52ce86 100644 --- a/components/CameraManager/CameraManager/CameraManager.cpp +++ b/components/CameraManager/CameraManager/CameraManager.cpp @@ -18,7 +18,7 @@ void CameraManager::setupCameraPinout() // 10000000 stable // 16500000 optimal freq on ESP32-CAM (default) // 20000000 max freq on ESP32-CAM - // 24000000 optimal freq on ESP32-S3 + // 24000000 optimal freq on ESP32-S3 // 23MHz same fps int xclk_freq_hz = DEFAULT_XCLK_FREQ_HZ; #if CONFIG_CAMERA_MODULE_ESP_EYE diff --git a/components/CameraManager/CameraManager/CameraManager.hpp b/components/CameraManager/CameraManager/CameraManager.hpp index b992224..c031cce 100644 --- a/components/CameraManager/CameraManager/CameraManager.hpp +++ b/components/CameraManager/CameraManager/CameraManager.hpp @@ -15,8 +15,8 @@ #include #ifndef DEFAULT_XCLK_FREQ_HZ -#define DEFAULT_XCLK_FREQ_HZ 16500000 -#define USB_DEFAULT_XCLK_FREQ_HZ CONFIG_Camera_USB_XCLK_FREQ +#define DEFAULT_XCLK_FREQ_HZ CONFIG_CAMERA_WIFI_XCLK_FREQ +#define USB_DEFAULT_XCLK_FREQ_HZ CONFIG_CAMERA_USB_XCLK_FREQ #define OV5640_XCLK_FREQ_HZ DEFAULT_XCLK_FREQ_HZ #endif diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 4b470ed..e7a8ada 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -21,12 +21,19 @@ endmenu menu "OpenIris: Camera Configuration" - config Camera_USB_XCLK_FREQ + config CAMERA_USB_XCLK_FREQ int "USB XCLK frequency (Hz)" - default 20000000 - range 1 40000000 + default 10000000 # should be set in individual board config + range 1 24000000 help - USB XCLK frequency in Hertz. + USB XCLK frequency in Hz. + + config CAMERA_WIFI_XCLK_FREQ + int "WIFI XCLK frequency (Hz)" + default 16500000 + range 1 24000000 + help + WIFI XCLK frequency in Hz. endmenu diff --git a/sdkconfig b/sdkconfig index a822a4f..b9f9ab6 100644 --- a/sdkconfig +++ b/sdkconfig @@ -497,9 +497,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" @@ -511,13 +511,13 @@ CONFIG_ESPTOOLPY_FLASHFREQ_80M_DEFAULT=y CONFIG_ESPTOOLPY_FLASHFREQ="80m" # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_8MB=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 @@ -560,7 +560,8 @@ CONFIG_GENERAL_UVC_DELAY=30 # # OpenIris: Camera Configuration # -CONFIG_Camera_USB_XCLK_FREQ=23000000 +CONFIG_CAMERA_USB_XCLK_FREQ=10000000 +CONFIG_CAMERA_WIFI_XCLK_FREQ=16500000 # end of OpenIris: Camera Configuration # @@ -577,32 +578,32 @@ CONFIG_AP_WIFI_PASSWORD="12345678" # OpenIris: LED Configuration # CONFIG_LED_BLINK_GPIO=8 -CONFIG_LED_EXTERNAL_GPIO=9 +CONFIG_LED_EXTERNAL_GPIO=1 CONFIG_LED_EXTERNAL_CONTROL=y -CONFIG_LED_EXTERNAL_PWM_FREQ=20000 -CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=50 +CONFIG_LED_EXTERNAL_PWM_FREQ=5000 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 # end of OpenIris: LED Configuration # # Camera sensor pinout configuration # -CONFIG_CAMERA_MODULE_NAME="FaceFocusVR_Face" +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 # @@ -1120,9 +1121,11 @@ 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_ALLOW_STACK_EXTERNAL_MEMORY=y CONFIG_SPIRAM_CLK_IO=30 @@ -1130,10 +1133,10 @@ 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_IGNORE_NOTFOUND is not set # CONFIG_SPIRAM_USE_MEMMAP is not set @@ -2293,9 +2296,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 diff --git a/sdkconfig.board.xiao-esp32s3 b/sdkconfig.board.xiao-esp32s3 index 1932ff7..a46e266 100644 --- a/sdkconfig.board.xiao-esp32s3 +++ b/sdkconfig.board.xiao-esp32s3 @@ -54,4 +54,5 @@ 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 \ No newline at end of file +# CONFIG_LED_EXTERNAL_CONTROL is not set +CONFIG_CAMERA_USB_XCLK_FREQ=23000000 \ No newline at end of file From c842b1fb1450de3eba6a226bd7a36b2b4a509a57 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sat, 9 Aug 2025 16:18:06 +0200 Subject: [PATCH 09/16] Remove VSCode config from tracking --- .vscode/settings.json | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 0a9fe64..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "idf.portWin": "COM22", - "idf.flashType": "UART" -} \ No newline at end of file From ab2c1cbfe48bd1f599e178b2e70f95f98416c8d3 Mon Sep 17 00:00:00 2001 From: Phosphoros Date: Sat, 9 Aug 2025 16:20:16 +0200 Subject: [PATCH 10/16] Delete .vscode directory --- .vscode/settings.json | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 0a9fe64..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "idf.portWin": "COM22", - "idf.flashType": "UART" -} \ No newline at end of file From 0c4a3006479db021e0fd4b2d92640a307d325603 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sat, 9 Aug 2025 17:13:04 +0200 Subject: [PATCH 11/16] - Applied changes based on PR feedback - Remove redundant menu entries from default config (will be set by Kconfig.projbuild) --- .gitignore | 10 +++++----- bootloader_components/boot_hooks.c | 2 +- .../CameraManager/CameraManager.cpp | 8 ++++---- .../CameraManager/CameraManager.hpp | 6 +----- .../ProjectConfig/ProjectConfig/Models.hpp | 6 +++--- components/UVCStream/UVCStream/UVCStream.cpp | 2 +- .../wifiManager/wifiManager/wifiManager.cpp | 4 ++-- main/Kconfig.projbuild | 8 ++++---- main/openiris_main.cpp | 4 ++-- sdkconfig | 8 ++++---- sdkconfig.base_defaults | 19 ------------------- sdkconfig.board.project_babble | 3 ++- 12 files changed, 29 insertions(+), 51 deletions(-) diff --git a/.gitignore b/.gitignore index 9c2f8d7..21f60c1 100644 --- a/.gitignore +++ b/.gitignore @@ -82,11 +82,11 @@ sdkconfig ### VisualStudioCode ### .vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -!.vscode/*.code-snippets +# !.vscode/settings.json +##!.vscode/tasks.json +# !.vscode/launch.json +# !.vscode/extensions.json +# !.vscode/*.code-snippets # Local History for Visual Studio Code .history/ diff --git a/bootloader_components/boot_hooks.c b/bootloader_components/boot_hooks.c index 6ed84f6..b13d3f8 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_WIRED_MODE +#ifdef CONFIG_GENERAL_WIRED_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 b52ce86..b53d570 100644 --- a/components/CameraManager/CameraManager/CameraManager.cpp +++ b/components/CameraManager/CameraManager/CameraManager.cpp @@ -19,7 +19,7 @@ void CameraManager::setupCameraPinout() // 16500000 optimal freq on ESP32-CAM (default) // 20000000 max freq on ESP32-CAM // 24000000 optimal freq on ESP32-S3 // 23MHz same fps - int xclk_freq_hz = DEFAULT_XCLK_FREQ_HZ; + int xclk_freq_hz = CONFIG_CAMERA_WIFI_XCLK_FREQ; #if CONFIG_CAMERA_MODULE_ESP_EYE /* IO13, IO14 is designed for JTAG by default, @@ -48,8 +48,8 @@ void CameraManager::setupCameraPinout() ESP_LOGI(CAMERA_MANAGER_TAG, "CAM_BOARD"); #endif -#if CONFIG_WIRED_MODE - xclk_freq_hz = USB_DEFAULT_XCLK_FREQ_HZ; +#if CONFIG_GENERAL_WIRED_MODE + xclk_freq_hz = CONFIG_CAMERA_USB_XCLK_FREQ; #endif config = { @@ -196,7 +196,7 @@ bool CameraManager::setupCamera() return false; } -#if CONFIG_WIRED_MODE +#if CONFIG_GENERAL_WIRED_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/CameraManager/CameraManager/CameraManager.hpp b/components/CameraManager/CameraManager/CameraManager.hpp index c031cce..c6a909b 100644 --- a/components/CameraManager/CameraManager/CameraManager.hpp +++ b/components/CameraManager/CameraManager/CameraManager.hpp @@ -14,11 +14,7 @@ #include #include -#ifndef DEFAULT_XCLK_FREQ_HZ -#define DEFAULT_XCLK_FREQ_HZ CONFIG_CAMERA_WIFI_XCLK_FREQ -#define USB_DEFAULT_XCLK_FREQ_HZ CONFIG_CAMERA_USB_XCLK_FREQ -#define OV5640_XCLK_FREQ_HZ DEFAULT_XCLK_FREQ_HZ -#endif +#define OV5640_XCLK_FREQ_HZ CONFIG_CAMERA_WIFI_XCLK_FREQ class CameraManager { diff --git a/components/ProjectConfig/ProjectConfig/Models.hpp b/components/ProjectConfig/ProjectConfig/Models.hpp index f931775..201cde2 100644 --- a/components/ProjectConfig/ProjectConfig/Models.hpp +++ b/components/ProjectConfig/ProjectConfig/Models.hpp @@ -80,7 +80,7 @@ struct MDNSConfig_t : BaseConfigModel { // by default, this will be openiris // but we can override it at compile time - std::string default_hostname = CONFIG_MDNS_HOSTNAME; + std::string default_hostname = CONFIG_WIFI_MDNS_HOSTNAME; if (default_hostname.empty()) { @@ -214,8 +214,8 @@ struct AP_WiFiConfig_t : BaseConfigModel void load() { - this->ssid = this->pref->getString("apSSID", CONFIG_AP_WIFI_SSID); - this->password = this->pref->getString("apPassword", CONFIG_AP_WIFI_PASSWORD); + this->ssid = this->pref->getString("apSSID", CONFIG_WIFI_AP_SSID); + this->password = this->pref->getString("apPassword", CONFIG_WIFI_AP_PASSWORD); }; void save() const { diff --git a/components/UVCStream/UVCStream/UVCStream.cpp b/components/UVCStream/UVCStream/UVCStream.cpp index 761e43e..07f61c3 100644 --- a/components/UVCStream/UVCStream/UVCStream.cpp +++ b/components/UVCStream/UVCStream/UVCStream.cpp @@ -109,7 +109,7 @@ static void UVCStreamHelpers::camera_fb_return_cb(uvc_fb_t *fb, void *cb_ctx) esp_err_t UVCStreamManager::setup() { -#ifndef CONFIG_WIRED_MODE +#ifndef CONFIG_GENERAL_WIRED_MODE ESP_LOGE(UVC_STREAM_TAG, "The board does not support UVC, please, setup WiFi connection."); return; #endif diff --git a/components/wifiManager/wifiManager/wifiManager.cpp b/components/wifiManager/wifiManager/wifiManager.cpp index 616b383..792af5f 100644 --- a/components/wifiManager/wifiManager/wifiManager.cpp +++ b/components/wifiManager/wifiManager/wifiManager.cpp @@ -152,8 +152,8 @@ void WiFiManager::SetupAccessPoint() wifi_config_t ap_wifi_config = { .ap = { - .ssid = CONFIG_AP_WIFI_SSID, - .password = CONFIG_AP_WIFI_PASSWORD, + .ssid = CONFIG_WIFI_AP_SSID, + .password = CONFIG_WIFI_AP_PASSWORD, .max_connection = 1, }, diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index e7a8ada..10b4d05 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -6,7 +6,7 @@ endmenu menu "OpenIris: General Configuration" - config WIRED_MODE + config GENERAL_WIRED_MODE bool "Wired mode" default false @@ -39,7 +39,7 @@ endmenu menu "OpenIris: WiFi Configuration" - config MDNS_HOSTNAME + config WIFI_MDNS_HOSTNAME string "mDNS hostname" default "openiristracker" @@ -51,11 +51,11 @@ menu "OpenIris: WiFi Configuration" string "WiFi password" default "" - config AP_WIFI_SSID + config WIFI_AP_SSID string "Access Point WiFi network name (SSID)" default "EyeTrackVR" - config AP_WIFI_PASSWORD + config WIFI_AP_PASSWORD string "Access Point WiFi password" default "12345678" diff --git a/main/openiris_main.cpp b/main/openiris_main.cpp index b5ee5f3..d4f06ec 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -21,7 +21,7 @@ #include #include -#ifdef CONFIG_WIRED_MODE +#ifdef CONFIG_GENERAL_WIRED_MODE #include #endif @@ -48,7 +48,7 @@ StreamServer streamServer(80, stateManager); auto *restAPI = new RestAPI("http://0.0.0.0:81", commandManager); -#ifdef CONFIG_WIRED_MODE +#ifdef CONFIG_GENERAL_WIRED_MODE UVCStreamManager uvcStream; #endif diff --git a/sdkconfig b/sdkconfig index b9f9ab6..7cd9acf 100644 --- a/sdkconfig +++ b/sdkconfig @@ -553,7 +553,7 @@ CONFIG_ENV_GPIO_OUT_RANGE_MAX=48 # # OpenIris: General Configuration # -CONFIG_WIRED_MODE=y +CONFIG_GENERAL_WIRED_MODE=y CONFIG_GENERAL_UVC_DELAY=30 # end of OpenIris: General Configuration @@ -567,11 +567,11 @@ CONFIG_CAMERA_WIFI_XCLK_FREQ=16500000 # # OpenIris: WiFi Configuration # -CONFIG_MDNS_HOSTNAME="openiristracker" +CONFIG_WIFI_MDNS_HOSTNAME="openiristracker" CONFIG_WIFI_SSID="" CONFIG_WIFI_PASSWORD="" -CONFIG_AP_WIFI_SSID="EyeTrackVR" -CONFIG_AP_WIFI_PASSWORD="12345678" +CONFIG_WIFI_AP_SSID="EyeTrackVR" +CONFIG_WIFI_AP_PASSWORD="12345678" # end of OpenIris: WiFi Configuration # diff --git a/sdkconfig.base_defaults b/sdkconfig.base_defaults index bf9f3bc..5553cc8 100644 --- a/sdkconfig.base_defaults +++ b/sdkconfig.base_defaults @@ -536,25 +536,6 @@ 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_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" -# CONFIG_LED_EXTERNAL_CONTROL is not set -CONFIG_LED_C_PIN=1 -# end of OpenIris basic configuration - # # Camera sensor pinout configuration # diff --git a/sdkconfig.board.project_babble b/sdkconfig.board.project_babble index 4cc6639..301a6e5 100644 --- a/sdkconfig.board.project_babble +++ b/sdkconfig.board.project_babble @@ -49,4 +49,5 @@ CONFIG_SPIRAM_SPEED_80M=y CONFIG_LED_EXTERNAL_CONTROL=y CONFIG_LED_EXTERNAL_PWM_FREQ=5000 CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 -CONFIG_LED_EXTERNAL_GPIO=1 \ No newline at end of file +CONFIG_LED_EXTERNAL_GPIO=1 +CONFIG_Camera_USB_XCLK_FREQ=23000000 # NOT TESTED \ No newline at end of file From 46f91124fe757f17191258799dac2b0683dfc8ee Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sat, 9 Aug 2025 17:33:45 +0200 Subject: [PATCH 12/16] Added FaceFocusVR board (eye module) --- sdkconfig.board.facefocusvr_eye | 61 +++++++++++++++++++++++++++++++++ tools/switchBoardType.py | 3 +- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 sdkconfig.board.facefocusvr_eye diff --git a/sdkconfig.board.facefocusvr_eye b/sdkconfig.board.facefocusvr_eye new file mode 100644 index 0000000..d8918fa --- /dev/null +++ b/sdkconfig.board.facefocusvr_eye @@ -0,0 +1,61 @@ +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="FaceFocusVR_Face" +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=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 \ No newline at end of file diff --git a/tools/switchBoardType.py b/tools/switchBoardType.py index c8e2f76..997650c 100644 --- a/tools/switchBoardType.py +++ b/tools/switchBoardType.py @@ -11,7 +11,8 @@ sdkconfig_defaults = "sdkconfig.base_defaults" supported_boards = [ "xiao-esp32s3", "project_babble", - "facefocusvr_face" + "facefocusvr_face", + "facefocusvr_eye" ] parser = argparse.ArgumentParser() From 4c2e183f119293d12967301b668e0dc0852cf727 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sat, 9 Aug 2025 20:42:36 +0200 Subject: [PATCH 13/16] - Changed `return;` to `return ESP_FAIL;` to match esp_err_t return type - Prevent build errors by properly handling missing wired mode configuration --- components/UVCStream/UVCStream/UVCStream.cpp | 2 +- main/openiris_main.cpp | 8 ++++++++ sdkconfig.board.facefocusvr_eye | 3 ++- sdkconfig.board.facefocusvr_face | 3 ++- sdkconfig.board.project_babble | 3 ++- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/components/UVCStream/UVCStream/UVCStream.cpp b/components/UVCStream/UVCStream/UVCStream.cpp index 07f61c3..e33b839 100644 --- a/components/UVCStream/UVCStream/UVCStream.cpp +++ b/components/UVCStream/UVCStream/UVCStream.cpp @@ -111,7 +111,7 @@ esp_err_t UVCStreamManager::setup() #ifndef CONFIG_GENERAL_WIRED_MODE ESP_LOGE(UVC_STREAM_TAG, "The board does not support UVC, please, setup WiFi connection."); - return; + return ESP_FAIL; #endif ESP_LOGI(UVC_STREAM_TAG, "Setting up UVC Stream"); diff --git a/main/openiris_main.cpp b/main/openiris_main.cpp index d4f06ec..4d2be06 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -90,13 +90,21 @@ void start_video_streaming(void *arg) { ESP_LOGI("[MAIN]", "WiFi setup detected, starting WiFi streaming."); streamServer.startStreamServer(); } else { + #ifdef CONFIG_GENERAL_WIRED_MODE ESP_LOGI("[MAIN]", "UVC setup detected, starting UVC streaming."); uvcStream.setup(); + #else + ESP_LOGW("[MAIN]", "UVC streaming not supported in this configuration."); + #endif } break; case StreamingMode::UVC: + #ifdef CONFIG_GENERAL_WIRED_MODE ESP_LOGI("[MAIN]", "Device set to UVC Mode, starting UVC streaming."); uvcStream.setup(); + #else + ESP_LOGW("[MAIN]", "UVC streaming not supported in this configuration."); + #endif break; case StreamingMode::WIFI: ESP_LOGI("[MAIN]", "Device set to Wi-Fi mode, starting WiFi streaming."); diff --git a/sdkconfig.board.facefocusvr_eye b/sdkconfig.board.facefocusvr_eye index d8918fa..e05fc60 100644 --- a/sdkconfig.board.facefocusvr_eye +++ b/sdkconfig.board.facefocusvr_eye @@ -58,4 +58,5 @@ 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 \ No newline at end of file +CONFIG_Camera_USB_XCLK_FREQ=23000000 +CONFIG_GENERAL_WIRED_MODE=y \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face index 5ae7e16..64ced36 100644 --- a/sdkconfig.board.facefocusvr_face +++ b/sdkconfig.board.facefocusvr_face @@ -58,4 +58,5 @@ CONFIG_LED_EXTERNAL_CONTROL=y CONFIG_LED_EXTERNAL_GPIO=9 CONFIG_LED_EXTERNAL_PWM_FREQ=20000 CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 -CONFIG_Camera_USB_XCLK_FREQ=23000000 \ No newline at end of file +CONFIG_Camera_USB_XCLK_FREQ=23000000 +CONFIG_GENERAL_WIRED_MODE=y \ No newline at end of file diff --git a/sdkconfig.board.project_babble b/sdkconfig.board.project_babble index 301a6e5..cab3591 100644 --- a/sdkconfig.board.project_babble +++ b/sdkconfig.board.project_babble @@ -50,4 +50,5 @@ CONFIG_LED_EXTERNAL_CONTROL=y CONFIG_LED_EXTERNAL_PWM_FREQ=5000 CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 CONFIG_LED_EXTERNAL_GPIO=1 -CONFIG_Camera_USB_XCLK_FREQ=23000000 # NOT TESTED \ No newline at end of file +CONFIG_Camera_USB_XCLK_FREQ=23000000 # NOT TESTED +CONFIG_GENERAL_WIRED_MODE=y \ No newline at end of file From 4243800010da1f6f87007acee4d98ce38706408e Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sat, 9 Aug 2025 20:59:25 +0200 Subject: [PATCH 14/16] Typo --- sdkconfig.board.facefocusvr_eye | 2 +- sdkconfig.board.facefocusvr_face | 2 +- sdkconfig.board.project_babble | 2 +- sdkconfig.board.xiao-esp32s3 | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/sdkconfig.board.facefocusvr_eye b/sdkconfig.board.facefocusvr_eye index e05fc60..0ee0a7e 100644 --- a/sdkconfig.board.facefocusvr_eye +++ b/sdkconfig.board.facefocusvr_eye @@ -58,5 +58,5 @@ 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_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_WIRED_MODE=y \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face index 64ced36..5006bae 100644 --- a/sdkconfig.board.facefocusvr_face +++ b/sdkconfig.board.facefocusvr_face @@ -58,5 +58,5 @@ CONFIG_LED_EXTERNAL_CONTROL=y 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_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_GENERAL_WIRED_MODE=y \ No newline at end of file diff --git a/sdkconfig.board.project_babble b/sdkconfig.board.project_babble index cab3591..47b59a9 100644 --- a/sdkconfig.board.project_babble +++ b/sdkconfig.board.project_babble @@ -50,5 +50,5 @@ CONFIG_LED_EXTERNAL_CONTROL=y CONFIG_LED_EXTERNAL_PWM_FREQ=5000 CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 CONFIG_LED_EXTERNAL_GPIO=1 -CONFIG_Camera_USB_XCLK_FREQ=23000000 # NOT TESTED +CONFIG_CAMERA_USB_XCLK_FREQ=23000000 # NOT TESTED CONFIG_GENERAL_WIRED_MODE=y \ No newline at end of file diff --git a/sdkconfig.board.xiao-esp32s3 b/sdkconfig.board.xiao-esp32s3 index a46e266..8c11ad3 100644 --- a/sdkconfig.board.xiao-esp32s3 +++ b/sdkconfig.board.xiao-esp32s3 @@ -55,4 +55,5 @@ CONFIG_SPIRAM_SPEED_80M=y CONFIG_SPIRAM_SPEED=80 CONFIG_SPIRAM_SPEED_80M=y # CONFIG_LED_EXTERNAL_CONTROL is not set -CONFIG_CAMERA_USB_XCLK_FREQ=23000000 \ No newline at end of file +CONFIG_CAMERA_USB_XCLK_FREQ=23000000 +CONFIG_GENERAL_WIRED_MODE=y \ No newline at end of file From 22fc593ffb563272ef43f967a65cc9e241b95357 Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 10 Aug 2025 16:55:02 +0200 Subject: [PATCH 15/16] =?UTF-8?q?Config=20f=C3=BCr=20FaceFocusVR=5FFace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdkconfig | 60 +++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/sdkconfig b/sdkconfig index 7cd9acf..376cee5 100644 --- a/sdkconfig +++ b/sdkconfig @@ -497,9 +497,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" @@ -511,13 +511,13 @@ CONFIG_ESPTOOLPY_FLASHFREQ_80M_DEFAULT=y CONFIG_ESPTOOLPY_FLASHFREQ="80m" # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_4MB=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 @@ -560,7 +560,7 @@ CONFIG_GENERAL_UVC_DELAY=30 # # OpenIris: Camera Configuration # -CONFIG_CAMERA_USB_XCLK_FREQ=10000000 +CONFIG_CAMERA_USB_XCLK_FREQ=23000000 CONFIG_CAMERA_WIFI_XCLK_FREQ=16500000 # end of OpenIris: Camera Configuration @@ -578,32 +578,32 @@ 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_DUTY_CYCLE=100 +CONFIG_LED_EXTERNAL_PWM_FREQ=20000 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=90 # end of OpenIris: LED Configuration # # 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 # @@ -1121,11 +1121,9 @@ 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_ALLOW_STACK_EXTERNAL_MEMORY=y CONFIG_SPIRAM_CLK_IO=30 @@ -1133,10 +1131,10 @@ 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_IGNORE_NOTFOUND is not set # CONFIG_SPIRAM_USE_MEMMAP is not set @@ -2296,9 +2294,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 From a439c88eeea7711d811029bf4a270aea1e92ee9f Mon Sep 17 00:00:00 2001 From: PhosphorosVR Date: Sun, 10 Aug 2025 16:58:49 +0200 Subject: [PATCH 16/16] revert last commit --- sdkconfig | 60 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/sdkconfig b/sdkconfig index 376cee5..7cd9acf 100644 --- a/sdkconfig +++ b/sdkconfig @@ -497,9 +497,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" @@ -511,13 +511,13 @@ CONFIG_ESPTOOLPY_FLASHFREQ_80M_DEFAULT=y CONFIG_ESPTOOLPY_FLASHFREQ="80m" # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_8MB=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 @@ -560,7 +560,7 @@ CONFIG_GENERAL_UVC_DELAY=30 # # OpenIris: Camera Configuration # -CONFIG_CAMERA_USB_XCLK_FREQ=23000000 +CONFIG_CAMERA_USB_XCLK_FREQ=10000000 CONFIG_CAMERA_WIFI_XCLK_FREQ=16500000 # end of OpenIris: Camera Configuration @@ -578,32 +578,32 @@ CONFIG_WIFI_AP_PASSWORD="12345678" # OpenIris: LED Configuration # CONFIG_LED_BLINK_GPIO=8 -CONFIG_LED_EXTERNAL_GPIO=9 +CONFIG_LED_EXTERNAL_GPIO=1 CONFIG_LED_EXTERNAL_CONTROL=y -CONFIG_LED_EXTERNAL_PWM_FREQ=20000 -CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=90 +CONFIG_LED_EXTERNAL_PWM_FREQ=5000 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 # end of OpenIris: LED Configuration # # Camera sensor pinout configuration # -CONFIG_CAMERA_MODULE_NAME="FaceFocusVR_Face" +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 # @@ -1121,9 +1121,11 @@ 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_ALLOW_STACK_EXTERNAL_MEMORY=y CONFIG_SPIRAM_CLK_IO=30 @@ -1131,10 +1133,10 @@ 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_IGNORE_NOTFOUND is not set # CONFIG_SPIRAM_USE_MEMMAP is not set @@ -2294,9 +2296,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