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 511a48d..b53d570 100644 --- a/components/CameraManager/CameraManager/CameraManager.cpp +++ b/components/CameraManager/CameraManager/CameraManager.cpp @@ -18,8 +18,8 @@ void CameraManager::setupCameraPinout() // 10000000 stable // 16500000 optimal freq on ESP32-CAM (default) // 20000000 max freq on ESP32-CAM - // 24000000 optimal freq on ESP32-S3 - int xclk_freq_hz = DEFAULT_XCLK_FREQ_HZ; + // 24000000 optimal freq on ESP32-S3 // 23MHz same fps + 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 = { @@ -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; } @@ -197,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 3a6a441..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 16500000 -#define USB_DEFAULT_XCLK_FREQ_HZ 20000000 -#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/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/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..e33b839 100644 --- a/components/UVCStream/UVCStream/UVCStream.cpp +++ b/components/UVCStream/UVCStream/UVCStream.cpp @@ -109,9 +109,9 @@ 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; + return ESP_FAIL; #endif ESP_LOGI(UVC_STREAM_TAG, "Setting up UVC Stream"); 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/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..10b4d05 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -1,56 +1,104 @@ -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" + config GENERAL_WIRED_MODE + bool "Wired mode" default false - config MDNS_HOSTNAME - string "mDNS name" + 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 10000000 # should be set in individual board config + range 1 24000000 + help + 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 + +menu "OpenIris: WiFi Configuration" + + config WIFI_MDNS_HOSTNAME + 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" + config WIFI_AP_SSID + string "Access Point WiFi network name (SSID)" default "EyeTrackVR" - - config AP_WIFI_PASSWORD - string "AP WiFi password" + + config WIFI_AP_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..4d2be06 100644 --- a/main/openiris_main.cpp +++ b/main/openiris_main.cpp @@ -21,12 +21,12 @@ #include #include -#ifdef CONFIG_WIRED_MODE +#ifdef CONFIG_GENERAL_WIRED_MODE #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)); @@ -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 @@ -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."); @@ -88,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."); @@ -102,8 +112,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 +133,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 +213,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 +236,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 + esp_timer_start_once(timerHandle, CONFIG_GENERAL_UVC_DELAY * 1000000); } -} +} \ No newline at end of file diff --git a/sdkconfig b/sdkconfig index 1d2a05b..7cd9acf 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,47 @@ 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 -CONFIG_WIRED_MODE=y -CONFIG_MDNS_HOSTNAME="openiristracker" +# end of ENV_Caps + +# +# OpenIris: General Configuration +# +CONFIG_GENERAL_WIRED_MODE=y +CONFIG_GENERAL_UVC_DELAY=30 +# end of OpenIris: General Configuration + +# +# OpenIris: Camera Configuration +# +CONFIG_CAMERA_USB_XCLK_FREQ=10000000 +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_AP_WIFI_SSID="EyeTrackVR" -CONFIG_AP_WIFI_PASSWORD="12345678" -# end of OpenIris basic configuration +CONFIG_WIFI_AP_SSID="EyeTrackVR" +CONFIG_WIFI_AP_PASSWORD="12345678" +# end of OpenIris: WiFi Configuration + +# +# OpenIris: LED Configuration +# +CONFIG_LED_BLINK_GPIO=8 +CONFIG_LED_EXTERNAL_GPIO=1 +CONFIG_LED_EXTERNAL_CONTROL=y +CONFIG_LED_EXTERNAL_PWM_FREQ=5000 +CONFIG_LED_EXTERNAL_PWM_DUTY_CYCLE=100 +# end of OpenIris: LED Configuration # # Camera sensor pinout configuration @@ -628,7 +657,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 +686,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 +699,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 +801,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 +920,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 +1101,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 +1302,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 +1314,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 +1484,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 +1885,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 +1897,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 # @@ -2155,9 +2190,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 @@ -2190,6 +2225,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 +2252,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 +2373,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 +2395,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 c4a9dfd..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_SUPPORTS_EXTERNAL_LED_CONTROL is not set -CONFIG_LED_C_PIN=1 -# end of OpenIris basic configuration - # # Camera sensor pinout configuration # @@ -2204,7 +2185,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 +2193,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 +2201,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 diff --git a/sdkconfig.board.facefocusvr_eye b/sdkconfig.board.facefocusvr_eye new file mode 100644 index 0000000..0ee0a7e --- /dev/null +++ b/sdkconfig.board.facefocusvr_eye @@ -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="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 +CONFIG_GENERAL_WIRED_MODE=y \ No newline at end of file diff --git a/sdkconfig.board.facefocusvr_face b/sdkconfig.board.facefocusvr_face new file mode 100644 index 0000000..5006bae --- /dev/null +++ b/sdkconfig.board.facefocusvr_face @@ -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="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=100 +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 2b6ad55..47b59a9 100644 --- a/sdkconfig.board.project_babble +++ b/sdkconfig.board.project_babble @@ -46,4 +46,9 @@ 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 +CONFIG_LED_EXTERNAL_GPIO=1 +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 b44f93f..8c11ad3 100644 --- a/sdkconfig.board.xiao-esp32s3 +++ b/sdkconfig.board.xiao-esp32s3 @@ -54,4 +54,6 @@ 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 +CONFIG_CAMERA_USB_XCLK_FREQ=23000000 +CONFIG_GENERAL_WIRED_MODE=y \ No newline at end of file diff --git a/tools/switchBoardType.py b/tools/switchBoardType.py index b60f5c6..997650c 100644 --- a/tools/switchBoardType.py +++ b/tools/switchBoardType.py @@ -10,7 +10,9 @@ ENDC = '\033[0m' sdkconfig_defaults = "sdkconfig.base_defaults" supported_boards = [ "xiao-esp32s3", - "project_babble" + "project_babble", + "facefocusvr_face", + "facefocusvr_eye" ] parser = argparse.ArgumentParser()