Files
buzz_detector/main/Kconfig.projbuild
T

111 lines
3.7 KiB
Plaintext

menu "Door Buzzer Detector"
menu "Hardware"
config BUZZ_I2S_BCLK_GPIO
int "I2S BCLK (mic SCK) GPIO"
default 3
range 0 48
config BUZZ_I2S_WS_GPIO
int "I2S WS (mic WS/LRCL) GPIO"
default 4
range 0 48
config BUZZ_I2S_DATA_GPIO
int "I2S data-in (mic SD) GPIO"
default 5
range 0 48
choice BUZZ_I2S_SLOT
prompt "I2S slot that carries the mic"
default BUZZ_I2S_SLOT_LEFT
help
INMP441: L/R pin tied to GND -> left slot, tied to VDD -> right slot.
config BUZZ_I2S_SLOT_LEFT
bool "Left"
config BUZZ_I2S_SLOT_RIGHT
bool "Right"
endchoice
config BUZZ_AUDIO_SHIFT
int "Right shift applied to the 32-bit I2S sample"
default 14
range 8 20
help
The INMP441 delivers 24-bit data left-justified in a 32-bit slot, so
a shift of 16 keeps the top 16 bits (unity gain). A smaller shift adds
digital gain (14 = 4x) which helps with this quiet mic; the result is
clamped to int16. Fingerprints are level-independent, but the RMS gate
is not.
config BUZZ_BOOT_BUTTON_GPIO
int "User button GPIO (BOOT)"
default 0
range 0 48
config BUZZ_RGB_LED_ENABLE
bool "Drive the on-board WS2812 status LED"
default y
config BUZZ_RGB_LED_GPIO
int "RGB LED GPIO"
default 48
range 0 48
depends on BUZZ_RGB_LED_ENABLE
endmenu
menu "Detector defaults (runtime-adjustable, persisted in NVS)"
config BUZZ_THRESHOLD_MILLI
int "Cosine-similarity threshold x1000"
default 800
range 100 999
config BUZZ_MIN_RMS
int "Loudness gate: minimum frame RMS (int16 units)"
default 200
range 0 32767
config BUZZ_WIN_N
int "Sliding window length N (frames, 32 ms each)"
default 15
range 1 32
config BUZZ_WIN_M
int "Matches required M within the window"
default 10
range 1 32
config BUZZ_COOLDOWN_MS
int "Quiet tail to group buzz frames into one event (milliseconds)"
default 500
range 0 86400000
config BUZZ_NOISE_MULT_X10
int "Learn/adapt gate: noise floor multiplier x10"
default 40
range 10 1000
config BUZZ_ADAPT_WEIGHT_PCT
int "Adapt: weight (percent) of the newly learned template"
default 50
range 0 100
config BUZZ_MONITOR_MS
int "Minimum interval between 'monitor' lines (ms)"
default 100
range 10 60000
endmenu
menu "Wi-Fi"
config BUZZ_WIFI_SSID
string "Wi-Fi SSID"
default ""
config BUZZ_WIFI_PASSWORD
string "Wi-Fi password"
default ""
endmenu
menu "ntfy notifications"
config BUZZ_NTFY_SERVER
string "ntfy server URL"
default "https://ntfy.sh"
config BUZZ_NTFY_TOPIC
string "Alert topic (anyone who knows it can read it: make it unguessable)"
default "change-me-door-buzzer"
config BUZZ_NTFY_HB_TOPIC
string "Heartbeat topic"
default "change-me-door-buzzer-heartbeat"
config BUZZ_HEARTBEAT_HOURS
int "Heartbeat interval in hours (0 = disabled)"
default 0
range 0 720
endmenu
endmenu