Implement HFP client (Hands-Free Unit role) for the ESP32 test harness: Firmware: - bt_hfp.c/h: Full HFP client with call control, audio, volume, DTMF, voice recognition - Enable HFP in sdkconfig.defaults with Wide Band Speech support - Add HFP commands/events to protocol.h and cmd_dispatcher.c Python MCP tools: - 15 new tools: enable, connect, audio_connect, answer, reject, dial, send_dtmf, volume, voice_recognition_start/stop, query_calls, status - Full protocol constants in protocol.py Tested: HFP enable returns role='hands_free_unit', ready for AG pairing
43 lines
1.0 KiB
Plaintext
43 lines
1.0 KiB
Plaintext
# Bluetooth (dual-mode: Classic + BLE via Bluedroid)
|
|
CONFIG_BT_ENABLED=y
|
|
CONFIG_BT_BLUEDROID_ENABLED=y
|
|
CONFIG_BT_CLASSIC_ENABLED=y
|
|
CONFIG_BT_BLE_ENABLED=y
|
|
CONFIG_BT_SPP_ENABLED=y
|
|
|
|
# Classic BT Profiles
|
|
CONFIG_BT_HID_ENABLED=y
|
|
CONFIG_BT_HID_DEVICE_ENABLED=y
|
|
CONFIG_BT_A2DP_ENABLE=n
|
|
|
|
# HFP (Hands-Free Profile) - headset role
|
|
CONFIG_BT_HFP_ENABLE=y
|
|
CONFIG_BT_HFP_CLIENT_ENABLE=y
|
|
CONFIG_BT_HFP_AG_ENABLE=n
|
|
CONFIG_BT_HFP_AUDIO_DATA_PATH_HCI=y
|
|
CONFIG_BT_HFP_WBS_ENABLE=y
|
|
|
|
# GAP & GATTS
|
|
CONFIG_BT_GATTS_ENABLE=y
|
|
CONFIG_BT_GATTC_ENABLE=n
|
|
|
|
# Bluetooth controller
|
|
CONFIG_BTDM_CTRL_MODE_BTDM=y
|
|
|
|
# UART — disable ESP-IDF console so our protocol handler owns UART0
|
|
CONFIG_ESP_CONSOLE_NONE=y
|
|
|
|
# Stack sizes (Bluetooth needs generous stacks)
|
|
CONFIG_BT_BTU_TASK_STACK_SIZE=8192
|
|
CONFIG_BTDM_CTRL_HCI_MODE_VHCI=y
|
|
|
|
# Logging — keep it reasonable
|
|
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
|
|
CONFIG_LOG_MAXIMUM_LEVEL_DEBUG=y
|
|
|
|
# Partition table — large (1.5MB app) needed for dual-mode BT stack
|
|
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y
|
|
|
|
# FreeRTOS
|
|
CONFIG_FREERTOS_HZ=1000
|