Files
OpenIris-ESPIDF/main/Kconfig.projbuild
2025-09-07 14:04:58 +02:00

219 lines
7.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 poweron 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 WiFi 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 WiFi (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 WiFi). 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