menu "ENV_Caps" orsource "$IDF_PATH/examples/common_components/env_caps/$IDF_TARGET/Kconfig.env_caps" endmenu menu "OpenIris: General Configuration" config START_IN_UVC_MODE bool "Default initial streaming mode = UVC" default false help Sets the power‑on default streaming mode (before any user preference is stored). If enabled AND UVC support is compiled in (GENERAL_INCLUDE_UVC_MODE), the device will default to UVC mode on first boot. If disabled it defaults to SETUP mode, waiting for a user choice or commands. This option does NOT compile UVC support in; it only changes the initial preference used when no saved mode exists. config GENERAL_INCLUDE_UVC_MODE bool "Include UVC (USB Video Class) support" default false help Compiles in UVC (USB Video Class) streaming support (camera + CDC bridge). Disable this on boards that are Wi‑Fi only or where USB bandwidth / memory should be conserved. If disabled any attempt to switch to UVC mode will log an error and fall back to Wi‑Fi (if wireless is enabled). Combine with START_IN_UVC_MODE only when the hardware supports UVC. config GENERAL_STARTUP_DELAY int "Setup grace period (s)" default 20 range 10 10000 help Number of seconds the device remains in SETUP / heartbeat mode on boot (when the current streaming mode resolves to SETUP) before automatically launching the selected streaming backend (UVC or Wi‑Fi). During this window host commands can change mode or other settings. After the timer expires, streaming starts automatically unless a command was received or startup was paused. config GENERAL_ENABLE_WIRELESS bool "Enable wireless (WiFi/Bluetooth)" default y help When disabled, the firmware will not start WiFi or related services (mDNS/REST), and any Bluetooth memory (if present on the SoC) should be left released. This can reduce power consumption when operating solely in UVC mode or without networking. config GENERAL_BOARD string "Board / device identifier" default "OpenIris" help A human-readable board or device identifier exposed via the get_info command. config GENERAL_VERSION string "Firmware version" default "0.0.1" help A firmware version string exposed via the get_info command. config GENERAL_ADVERTISED_NAME string "Advertised device name (UVC + mDNS)" default "openiristracker" help Human-readable device name advertised uniformly across interfaces. Used as the default mDNS hostname and (indirectly) the UVC USB device name via get_uvc_device_name(). Users can still override the runtime hostname through preferences. endmenu 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" # mDNS hostname now derives from GENERAL_ADVERTISED_NAME (no separate Kconfig) config WIFI_SSID string "WiFi network name (SSID)" default "" config WIFI_PASSWORD string "WiFi password" default "" config WIFI_AP_SSID string "Access Point WiFi network name (SSID)" default "EyeTrackVR" config WIFI_AP_PASSWORD string "Access Point WiFi password" default "12345678" endmenu menu "OpenIris: LED Configuration" config LED_DEBUG_ENABLE bool "Enable debug/status LED" default y help When disabled the firmware will not drive the dedicated debug/status GPIO. Useful on boards without a discrete status LED. Error/state patterns can optionally be mirrored onto the external IR LED if LED_EXTERNAL_AS_DEBUG is set. config LED_DEBUG_GPIO int "Debug LED GPIO number" range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX default 8 help GPIO number (IOxx) used to drive an onboard debug/status LED. Some GPIOs are reserved for other functions (e.g. flash) and cannot be used. config LED_EXTERNAL_GPIO 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_AS_DEBUG bool "Mirror error pattern on external LED" depends on LED_EXTERNAL_CONTROL default n help When enabled and an error LED pattern is active, the external IR LED PWM output will blink (0% / 50% duty) to replicate the debug/status LED pattern. If LED_DEBUG_ENABLE is disabled this provides visual error feedback using only the external LED. Normal configured PWM brightness is restored when leaving the error pattern. config LED_EXTERNAL_PWM_FREQ int "External LED PWM frequency (Hz)" default 5000 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 menu "OpenIris: Monitoring" config MONITORING_LED_CURRENT bool "Enable LED current monitoring" default y help Enable sampling LED current via ADC and report it over commands. config MONITORING_LED_ADC_GPIO int "ADC GPIO for LED current sense" depends on MONITORING_LED_CURRENT range 0 48 default 3 help GPIO connected to the current sense input (ADC1 on ESP32-S3: 1..10 supported). config MONITORING_LED_GAIN int "Analog front-end gain/divider" depends on MONITORING_LED_CURRENT range 1 1024 default 11 help Divider or amplifier gain between shunt and ADC. The measured mV are divided by this value. config MONITORING_LED_SHUNT_MILLIOHM int "Shunt resistance (milli-ohms)" depends on MONITORING_LED_CURRENT range 1 1000000 default 22000 help Shunt resistor value in milli-ohms. Current[mA] = 1000 * Vshunt[mV] / R[mΩ]. config MONITORING_LED_SAMPLES int "Filter window size (samples)" depends on MONITORING_LED_CURRENT range 1 200 default 10 help Moving-average window length for voltage filtering. config MONITORING_LED_INTERVAL_MS int "Sampling interval (ms)" depends on MONITORING_LED_CURRENT range 10 60000 default 500 help Period between samples when background monitoring is active. endmenu