diff --git a/components/LEDManager/LEDManager/LEDManager.cpp b/components/LEDManager/LEDManager/LEDManager.cpp index a5b7d0a..f2e7568 100644 --- a/components/LEDManager/LEDManager/LEDManager.cpp +++ b/components/LEDManager/LEDManager/LEDManager.cpp @@ -181,7 +181,6 @@ void LEDManager::toggleLED(const bool state) const void LEDManager::setExternalLEDDutyCycle(uint8_t dutyPercent) { #ifdef CONFIG_LED_EXTERNAL_CONTROL - dutyPercent = std::min(100, dutyPercent); const uint32_t dutyCycle = (static_cast(dutyPercent) * 255) / 100; ESP_LOGI(LED_MANAGER_TAG, "Updating external LED duty to %u%% (raw %lu)", dutyPercent, dutyCycle); diff --git a/components/UVCStream/UVCStream/UVCStream.cpp b/components/UVCStream/UVCStream/UVCStream.cpp index 4851e91..7b9cc61 100644 --- a/components/UVCStream/UVCStream/UVCStream.cpp +++ b/components/UVCStream/UVCStream/UVCStream.cpp @@ -84,7 +84,6 @@ static void UVCStreamHelpers::camera_stop_cb(void *cb_ctx) static uvc_fb_t *UVCStreamHelpers::camera_fb_get_cb(void *cb_ctx) { auto *mgr = static_cast(cb_ctx); - (void)mgr; s_fb.cam_fb_p = esp_camera_fb_get(); if (!s_fb.cam_fb_p) @@ -126,16 +125,8 @@ esp_err_t UVCStreamManager::setup() #endif ESP_LOGI(UVC_STREAM_TAG, "Setting up UVC Stream"); - - // Derive transfer buffer size from configuration/descriptor settings. - // Use a conservative default if not defined elsewhere. - // For now, allocate based on commonly used max frame size or future Kconfig value. - // You can wire this to a Kconfig like CONFIG_UVC_MAX_FRAME_SIZE. - if (uvc_buffer_size == 0) - { - // default to 75 KiB if not set elsewhere - uvc_buffer_size = 75 * 1024; - } + // Allocate a fixed-size transfer buffer (compile-time constant) + uvc_buffer_size = UVCStreamManager::UVC_MAX_FRAMESIZE_SIZE; uvc_buffer = static_cast(malloc(uvc_buffer_size)); if (uvc_buffer == nullptr) { @@ -145,7 +136,7 @@ esp_err_t UVCStreamManager::setup() uvc_device_config_t config = { .uvc_buffer = uvc_buffer, - .uvc_buffer_size = uvc_buffer_size, + .uvc_buffer_size = UVCStreamManager::UVC_MAX_FRAMESIZE_SIZE, .start_cb = UVCStreamHelpers::camera_start_cb, .fb_get_cb = UVCStreamHelpers::camera_fb_get_cb, .fb_return_cb = UVCStreamHelpers::camera_fb_return_cb, diff --git a/components/UVCStream/UVCStream/UVCStream.hpp b/components/UVCStream/UVCStream/UVCStream.hpp index 253f29d..46ff69e 100644 --- a/components/UVCStream/UVCStream/UVCStream.hpp +++ b/components/UVCStream/UVCStream/UVCStream.hpp @@ -55,6 +55,8 @@ class UVCStreamManager uint32_t uvc_buffer_size = 0; public: + // Compile-time buffer size; keep conservative headroom for MJPEG QVGA + static constexpr uint32_t UVC_MAX_FRAMESIZE_SIZE = 75 * 1024; esp_err_t setup(); esp_err_t start(); uint32_t getUvcBufferSize() const { return uvc_buffer_size; } diff --git a/sdkconfig b/sdkconfig index e88b1e2..49a8791 100644 --- a/sdkconfig +++ b/sdkconfig @@ -514,9 +514,9 @@ CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y # CONFIG_ESPTOOLPY_NO_STUB is not set # CONFIG_ESPTOOLPY_OCT_FLASH is not set CONFIG_ESPTOOLPY_FLASH_MODE_AUTO_DETECT=y -# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y +# CONFIG_ESPTOOLPY_FLASHMODE_DIO is not set # CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y CONFIG_ESPTOOLPY_FLASHMODE="dio" @@ -527,13 +527,13 @@ CONFIG_ESPTOOLPY_FLASHFREQ_80M=y CONFIG_ESPTOOLPY_FLASHFREQ="80m" # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="8MB" +CONFIG_ESPTOOLPY_FLASHSIZE="4MB" # CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set CONFIG_ESPTOOLPY_BEFORE_RESET=y # CONFIG_ESPTOOLPY_BEFORE_NORESET is not set @@ -595,32 +595,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=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 # @@ -1155,19 +1155,21 @@ CONFIG_SPIRAM=y # # SPI RAM config # -# CONFIG_SPIRAM_MODE_QUAD is not set -CONFIG_SPIRAM_MODE_OCT=y +CONFIG_SPIRAM_MODE_QUAD=y +# CONFIG_SPIRAM_MODE_OCT is not set CONFIG_SPIRAM_TYPE_AUTO=y +# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set +# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set # CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set CONFIG_SPIRAM_CLK_IO=30 CONFIG_SPIRAM_CS_IO=26 # CONFIG_SPIRAM_XIP_FROM_PSRAM is not set # CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set # CONFIG_SPIRAM_RODATA is not set +# CONFIG_SPIRAM_SPEED_120M is not set CONFIG_SPIRAM_SPEED_80M=y # CONFIG_SPIRAM_SPEED_40M is not set CONFIG_SPIRAM_SPEED=80 -# CONFIG_SPIRAM_ECC_ENABLE is not set CONFIG_SPIRAM_BOOT_INIT=y CONFIG_SPIRAM_PRE_CONFIGURE_MEMORY_PROTECTION=y # CONFIG_SPIRAM_IGNORE_NOTFOUND is not set @@ -2384,9 +2386,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