OVMS3-idf/components/bt/Kconfig

2789 lines
106 KiB
Plaintext

menu Bluetooth
config BT_ENABLED
bool "Bluetooth"
help
Select this option to enable Bluetooth and show the submenu with Bluetooth configuration choices.
menu "Bluetooth controller"
visible if BT_ENABLED
choice BTDM_CONTROLLER_MODE
prompt "Bluetooth controller mode (BR/EDR/BLE/DUALMODE)"
depends on BT_ENABLED
help
Specify the bluetooth controller mode (BR/EDR, BLE or dual mode).
config BTDM_CONTROLLER_MODE_BLE_ONLY
bool "BLE Only"
config BTDM_CONTROLLER_MODE_BR_EDR_ONLY
bool "BR/EDR Only"
config BTDM_CONTROLLER_MODE_BTDM
bool "Bluetooth Dual Mode"
endchoice
config BTDM_CONTROLLER_BLE_MAX_CONN
int "BLE Max Connections"
depends on BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM
default 3
range 1 9
help
BLE maximum connections of bluetooth controller.
Each connection uses 1KB static DRAM whenever the BT controller is enabled.
config BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN
int "BR/EDR ACL Max Connections"
depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
default 2
range 1 7
help
BR/EDR ACL maximum connections of bluetooth controller.
Each connection uses 1.2KB static DRAM whenever the BT controller is enabled.
config BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN
int "BR/EDR Sync(SCO/eSCO) Max Connections"
depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
default 0
range 0 3
help
BR/EDR Synchronize maximum connections of bluetooth controller.
Each connection uses 2KB static DRAM whenever the BT controller is enabled.
choice BTDM_CTRL_BR_EDR_SCO_DATA_PATH
prompt "BR/EDR Sync(SCO/eSCO) default data path"
depends on BTDM_CTRL_MODE_BR_EDR_ONLY || BTDM_CTRL_MODE_BTDM
default BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
help
SCO data path, i.e. HCI or PCM.
SCO data can be sent/received through HCI synchronous packets, or the data
can be routed to on-chip PCM module on ESP32. PCM input/output signals can
be "matrixed" to GPIOs. The default data path can also be set using API
"esp_bredr_sco_datapath_set"
config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_HCI
bool "HCI"
config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
bool "PCM"
endchoice
config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF
int
default 0 if BTDM_CTRL_BR_EDR_SCO_DATA_PATH_HCI
default 1 if BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
default 0
config BTDM_CTRL_AUTO_LATENCY
bool "Auto latency"
depends on BTDM_CONTROLLER_MODE_BTDM
default n
help
BLE auto latency, used to enhance classic BT performance
while classic BT and BLE are enabled at the same time.
config BTDM_CTRL_AUTO_LATENCY_EFF
bool
default BTDM_CTRL_AUTO_LATENCY if BTDM_CONTROLLER_MODE_BTDM
default n
config BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT
bool "Legacy Authentication Vendor Specific Event Enable"
depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
default y
help
To protect from BIAS attack during Legacy authentication,
Legacy authentication Vendor specific event should be enabled
config BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF
bool
default BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
default 0
config BTDM_CONTROLLER_BLE_MAX_CONN_EFF
int
default BTDM_CONTROLLER_BLE_MAX_CONN if BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM
default 0
config BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF
int
default BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM # NOERROR
default 0
config BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF
int
default BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM # NOERROR
default 0
choice BTDM_CONTROLLER_PINNED_TO_CORE_CHOICE
prompt "The cpu core which bluetooth controller run"
depends on BT_ENABLED && !FREERTOS_UNICORE
help
Specify the cpu core to run bluetooth controller.
Can not specify no-affinity.
config BTDM_CONTROLLER_PINNED_TO_CORE_0
bool "Core 0 (PRO CPU)"
config BTDM_CONTROLLER_PINNED_TO_CORE_1
bool "Core 1 (APP CPU)"
depends on !FREERTOS_UNICORE
endchoice
config BTDM_CONTROLLER_PINNED_TO_CORE
int
default 0 if BTDM_CONTROLLER_PINNED_TO_CORE_0
default 1 if BTDM_CONTROLLER_PINNED_TO_CORE_1
default 0
choice BTDM_CONTROLLER_HCI_MODE_CHOICE
prompt "HCI mode"
depends on BT_ENABLED
help
Speicify HCI mode as VHCI or UART(H4)
config BTDM_CONTROLLER_HCI_MODE_VHCI
bool "VHCI"
help
Normal option. Mostly, choose this VHCI when bluetooth host run on ESP32, too.
config BTDM_CONTROLLER_HCI_MODE_UART_H4
bool "UART(H4)"
help
If use external bluetooth host which run on other hardware and use UART as the HCI interface,
choose this option.
endchoice
menu "HCI UART(H4) Options"
visible if BTDM_CONTROLLER_HCI_MODE_UART_H4
config BT_HCI_UART_NO
int "UART Number for HCI"
depends on BTDM_CONTROLLER_HCI_MODE_UART_H4
range 1 2
default 1
help
Uart number for HCI. The available uart is UART1 and UART2.
config BT_HCI_UART_BAUDRATE
int "UART Baudrate for HCI"
depends on BTDM_CONTROLLER_HCI_MODE_UART_H4
range 115200 921600
default 921600
help
UART Baudrate for HCI. Please use standard baudrate.
endmenu
menu "MODEM SLEEP Options"
visible if BT_ENABLED
config BTDM_CONTROLLER_MODEM_SLEEP
bool "Bluetooth modem sleep"
depends on BT_ENABLED
default y
help
Enable/disable bluetooth controller low power mode.
choice BTDM_MODEM_SLEEP_MODE
prompt "Bluetooth Modem sleep mode"
depends on BTDM_CONTROLLER_MODEM_SLEEP
help
To select which strategy to use for modem sleep
config BTDM_MODEM_SLEEP_MODE_ORIG
bool "ORIG Mode(sleep with low power clock)"
help
ORIG mode is a bluetooth sleep mode that can be used for dual mode controller. In this mode,
bluetooth controller sleeps between BR/EDR frames and BLE events. A low power clock is used to
maintain bluetooth reference clock.
config BTDM_MODEM_SLEEP_MODE_EVED
bool "EVED Mode(For internal test only)"
help
EVED mode is for BLE only and is only for internal test. Do not use it for production. this
mode is not compatible with DFS nor light sleep
endchoice
choice BTDM_LOW_POWER_CLOCK
prompt "Bluetooth low power clock"
depends on BTDM_MODEM_SLEEP_MODE_ORIG
help
Select the low power clock source for bluetooth controller
config BTDM_LPCLK_SEL_MAIN_XTAL
bool "Main crystal"
help
Main crystal can be used as low power clock for bluetooth modem sleep. If this option is
selected, bluetooth modem sleep can work under Dynamic Frequency Scaling(DFS) enabled, but
cannot work when light sleep is enabled. Main crystal has a relatively better performance than
other bluetooth low power clock sources.
config BTDM_LPCLK_SEL_EXT_32K_XTAL
bool "External 32kHz crystal"
depends on ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL
endchoice
endmenu
config BLE_SCAN_DUPLICATE
bool "BLE Scan Duplicate Options"
depends on (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
default y
help
This select enables parameters setting of BLE scan duplicate.
choice SCAN_DUPLICATE_TYPE
prompt "Scan Duplicate Type"
default SCAN_DUPLICATE_BY_DEVICE_ADDR
depends on BLE_SCAN_DUPLICATE
help
Scan duplicate have three ways. one is "Scan Duplicate By Device Address", This way is to use
advertiser address filtering. The adv packet of the same address is only allowed to be reported once.
Another way is "Scan Duplicate By Device Address And Advertising Data". This way is to use advertising
data and device address filtering. All different adv packets with the same address are allowed to be
reported. The last way is "Scan Duplicate By Advertising Data". This way is to use advertising data
filtering. All same advertising data only allow to be reported once even though they are from
different devices.
config SCAN_DUPLICATE_BY_DEVICE_ADDR
bool "Scan Duplicate By Device Address"
help
This way is to use advertiser address filtering. The adv packet of the same address is only
allowed to be reported once
config SCAN_DUPLICATE_BY_ADV_DATA
bool "Scan Duplicate By Advertising Data"
help
This way is to use advertising data filtering. All same advertising data only allow to be reported
once even though they are from different devices.
config SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR
bool "Scan Duplicate By Device Address And Advertising Data"
help
This way is to use advertising data and device address filtering. All different adv packets with
the same address are allowed to be reported.
endchoice
config SCAN_DUPLICATE_TYPE
int
depends on BLE_SCAN_DUPLICATE
default 0 if SCAN_DUPLICATE_BY_DEVICE_ADDR
default 1 if SCAN_DUPLICATE_BY_ADV_DATA
default 2 if SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR
default 0
config DUPLICATE_SCAN_CACHE_SIZE
int "Maximum number of devices in scan duplicate filter"
depends on BLE_SCAN_DUPLICATE
range 10 1000
default 200
help
Maximum number of devices which can be recorded in scan duplicate filter.
When the maximum amount of device in the filter is reached, the cache will be refreshed.
config BLE_MESH_SCAN_DUPLICATE_EN
bool "Special duplicate scan mechanism for BLE Mesh scan"
depends on BLE_SCAN_DUPLICATE
default n
help
This enables the BLE scan duplicate for special BLE Mesh scan.
config MESH_DUPLICATE_SCAN_CACHE_SIZE
int "Maximum number of Mesh adv packets in scan duplicate filter"
depends on BLE_MESH_SCAN_DUPLICATE_EN
range 10 1000
default 200
help
Maximum number of adv packets which can be recorded in duplicate scan cache for BLE Mesh.
When the maximum amount of device in the filter is reached, the cache will be refreshed.
config BTDM_CONTROLLER_FULL_SCAN_SUPPORTED
bool "BLE full scan feature supported"
depends on BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM
default y
help
The full scan function is mainly used to provide BLE scan performance.
This is required for scenes with high scan performance requirements, such as BLE Mesh scenes.
config BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED
bool "BLE adv report flow control supported"
depends on (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
default y
help
The function is mainly used to enable flow control for advertising reports. When it is enabled,
advertising reports will be discarded by the controller if the number of unprocessed advertising
reports exceeds the size of BLE adv report flow control.
config BLE_ADV_REPORT_FLOW_CONTROL_NUM
int "BLE adv report flow control number"
depends on BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED
range 50 1000
default 100
help
The number of unprocessed advertising report that Bluedroid can save.If you set
`BLE_ADV_REPORT_FLOW_CONTROL_NUM` to a small value, this may cause adv packets lost.
If you set `BLE_ADV_REPORT_FLOW_CONTROL_NUM` to a large value, Bluedroid may cache a
lot of adv packets and this may cause system memory run out. For example, if you set
it to 50, the maximum memory consumed by host is 35 * 50 bytes. Please set
`BLE_ADV_REPORT_FLOW_CONTROL_NUM` according to your system free memory and handle adv
packets as fast as possible, otherwise it will cause adv packets lost.
config BLE_ADV_REPORT_DISCARD_THRSHOLD
int "BLE adv lost event threshold value"
depends on BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED
range 1 1000
default 20
help
When adv report flow control is enabled, The ADV lost event will be generated when the number
of ADV packets lost in the controller reaches this threshold. It is better to set a larger value.
If you set `BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it
may cause adv packets lost more.
menuconfig BTDM_COEX_BT_OPTIONS
bool "Coexistence Bluetooth Side Options"
depends on SW_COEXIST_ENABLE
default n
help
Options of Bluetooth Side of WiFi and bluetooth coexistence.
config BTDM_COEX_BLE_ADV_HIGH_PRIORITY
bool "Improve BLE ADV priority for WiFi & BLE coexistence"
depends on BTDM_COEX_BT_OPTIONS
default n
help
Improve BLE ADV coexistence priority to make it better performance.
For example, BLE mesh need to enable this option to improve BLE adv performance.
endmenu
menuconfig BLUEDROID_ENABLED
bool "Bluedroid Enable"
depends on BTDM_CONTROLLER_HCI_MODE_VHCI
default y
help
This enables the default Bluedroid Bluetooth stack
choice BLUEDROID_PINNED_TO_CORE_CHOICE
prompt "The cpu core which Bluedroid run"
depends on BLUEDROID_ENABLED && !FREERTOS_UNICORE
help
Which the cpu core to run Bluedroid. Can choose core0 and core1.
Can not specify no-affinity.
config BLUEDROID_PINNED_TO_CORE_0
bool "Core 0 (PRO CPU)"
config BLUEDROID_PINNED_TO_CORE_1
bool "Core 1 (APP CPU)"
depends on !FREERTOS_UNICORE
endchoice
config BLUEDROID_PINNED_TO_CORE
int
depends on BLUEDROID_ENABLED
default 0 if BLUEDROID_PINNED_TO_CORE_0
default 1 if BLUEDROID_PINNED_TO_CORE_1
default 0
config BTC_TASK_STACK_SIZE
int "Bluetooth event (callback to application) task stack size"
depends on BLUEDROID_ENABLED
default 3072
help
This select btc task stack size
config BTU_TASK_STACK_SIZE
int "Bluetooth Bluedroid Host Stack task stack size"
depends on BLUEDROID_ENABLED
default 4096
help
This select btu task stack size
config BLUEDROID_MEM_DEBUG
bool "Bluedroid memory debug"
depends on BLUEDROID_ENABLED
default n
help
Bluedroid memory debug
config CLASSIC_BT_ENABLED
bool "Classic Bluetooth"
depends on BLUEDROID_ENABLED
default n
help
For now this option needs "SMP_ENABLE" to be set to yes
config A2DP_ENABLE
bool "A2DP"
depends on CLASSIC_BT_ENABLED
default n
help
Advanced Audio Distrubution Profile
config A2DP_SINK_TASK_STACK_SIZE
int "A2DP sink (audio stream decoding) task stack size"
depends on A2DP_ENABLE
default 2048
config A2DP_SOURCE_TASK_STACK_SIZE
int "A2DP source (audio stream encoding) task stack size"
depends on A2DP_ENABLE
default 2048
config BT_SPP_ENABLED
bool "SPP"
depends on CLASSIC_BT_ENABLED
default n
help
This enables the Serial Port Profile
config HFP_ENABLE
bool "Hands Free/Handset Profile"
depends on CLASSIC_BT_ENABLED
default n
choice HFP_ROLE
prompt "Hands-free Profile Role configuration"
depends on HFP_ENABLE
config HFP_CLIENT_ENABLE
bool "Hands Free Unit"
endchoice
choice HFP_AUDIO_DATA_PATH
prompt "audio(SCO) data path"
depends on HFP_ENABLE
help
SCO data path, i.e. HCI or PCM. This option is set using API
"esp_bredr_sco_datapath_set" in Bluetooth host. Default SCO data
path can also be set in Bluetooth Controller.
config HFP_AUDIO_DATA_PATH_PCM
bool "PCM"
config HFP_AUDIO_DATA_PATH_HCI
bool "HCI"
endchoice
config BT_SSP_ENABLED
bool "Secure Simple Pairing"
depends on CLASSIC_BT_ENABLED
default y
help
This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing
config GATTS_ENABLE
bool "Include GATT server module(GATTS)"
depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
default y
help
This option can be disabled when the app work only on gatt client mode
choice GATTS_SEND_SERVICE_CHANGE_MODE
prompt "GATTS Service Change Mode"
default GATTS_SEND_SERVICE_CHANGE_AUTO
depends on GATTS_ENABLE
help
Service change indication mode for GATT Server.
config GATTS_SEND_SERVICE_CHANGE_MANUAL
bool "GATTS manually send service change indication"
help
Manually send service change indication through API esp_ble_gatts_send_service_change_indication()
config GATTS_SEND_SERVICE_CHANGE_AUTO
bool "GATTS automatically send service change indication"
help
Let Bluedroid handle the service change indication internally
endchoice
config GATTS_SEND_SERVICE_CHANGE_MODE
int
depends on GATTS_ENABLE
default 0 if GATTS_SEND_SERVICE_CHANGE_AUTO
default 1 if GATTS_SEND_SERVICE_CHANGE_MANUAL
default 0
config GATTC_ENABLE
bool "Include GATT client module(GATTC)"
depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
default y
help
This option can be close when the app work only on gatt server mode
config GATTC_CACHE_NVS_FLASH
bool "Save gattc cache data to nvs flash"
depends on GATTC_ENABLE && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
default n
help
This select can save gattc cache data to nvs flash
config BLE_SMP_ENABLE
bool "Include BLE security module(SMP)"
depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
default y
help
This option can be close when the app not used the ble security connect.
config SMP_SLAVE_CON_PARAMS_UPD_ENABLE
bool "Slave enable connection parameters update during pairing"
depends on BLE_SMP_ENABLE
default n
help
In order to reduce the pairing time, slave actively initiates connection parameters update during pairing.
config BT_STACK_NO_LOG
bool "Disable BT debug logs (minimize bin size)"
depends on BLUEDROID_ENABLED
default n
help
This select can save the rodata code size
menu "BT DEBUG LOG LEVEL"
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
choice HCI_INITIAL_TRACE_LEVEL
prompt "HCI layer"
default HCI_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for HCI layer
config HCI_TRACE_LEVEL_NONE
bool "NONE"
config HCI_TRACE_LEVEL_ERROR
bool "ERROR"
config HCI_TRACE_LEVEL_WARNING
bool "WARNING"
config HCI_TRACE_LEVEL_API
bool "API"
config HCI_TRACE_LEVEL_EVENT
bool "EVENT"
config HCI_TRACE_LEVEL_DEBUG
bool "DEBUG"
config HCI_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config HCI_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if HCI_TRACE_LEVEL_NONE
default 1 if HCI_TRACE_LEVEL_ERROR
default 2 if HCI_TRACE_LEVEL_WARNING
default 3 if HCI_TRACE_LEVEL_API
default 4 if HCI_TRACE_LEVEL_EVENT
default 5 if HCI_TRACE_LEVEL_DEBUG
default 6 if HCI_TRACE_LEVEL_VERBOSE
default 2
choice BTM_INITIAL_TRACE_LEVEL
prompt "BTM layer"
default BTM_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for BTM layer
config BTM_TRACE_LEVEL_NONE
bool "NONE"
config BTM_TRACE_LEVEL_ERROR
bool "ERROR"
config BTM_TRACE_LEVEL_WARNING
bool "WARNING"
config BTM_TRACE_LEVEL_API
bool "API"
config BTM_TRACE_LEVEL_EVENT
bool "EVENT"
config BTM_TRACE_LEVEL_DEBUG
bool "DEBUG"
config BTM_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config BTM_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if BTM_TRACE_LEVEL_NONE
default 1 if BTM_TRACE_LEVEL_ERROR
default 2 if BTM_TRACE_LEVEL_WARNING
default 3 if BTM_TRACE_LEVEL_API
default 4 if BTM_TRACE_LEVEL_EVENT
default 5 if BTM_TRACE_LEVEL_DEBUG
default 6 if BTM_TRACE_LEVEL_VERBOSE
default 2
choice L2CAP_INITIAL_TRACE_LEVEL
prompt "L2CAP layer"
default L2CAP_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for L2CAP layer
config L2CAP_TRACE_LEVEL_NONE
bool "NONE"
config L2CAP_TRACE_LEVEL_ERROR
bool "ERROR"
config L2CAP_TRACE_LEVEL_WARNING
bool "WARNING"
config L2CAP_TRACE_LEVEL_API
bool "API"
config L2CAP_TRACE_LEVEL_EVENT
bool "EVENT"
config L2CAP_TRACE_LEVEL_DEBUG
bool "DEBUG"
config L2CAP_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config L2CAP_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if L2CAP_TRACE_LEVEL_NONE
default 1 if L2CAP_TRACE_LEVEL_ERROR
default 2 if L2CAP_TRACE_LEVEL_WARNING
default 3 if L2CAP_TRACE_LEVEL_API
default 4 if L2CAP_TRACE_LEVEL_EVENT
default 5 if L2CAP_TRACE_LEVEL_DEBUG
default 6 if L2CAP_TRACE_LEVEL_VERBOSE
default 2
choice RFCOMM_INITIAL_TRACE_LEVEL
prompt "RFCOMM layer"
default RFCOMM_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for RFCOMM layer
config RFCOMM_TRACE_LEVEL_NONE
bool "NONE"
config RFCOMM_TRACE_LEVEL_ERROR
bool "ERROR"
config RFCOMM_TRACE_LEVEL_WARNING
bool "WARNING"
config RFCOMM_TRACE_LEVEL_API
bool "API"
config RFCOMM_TRACE_LEVEL_EVENT
bool "EVENT"
config RFCOMM_TRACE_LEVEL_DEBUG
bool "DEBUG"
config RFCOMM_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config RFCOMM_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if RFCOMM_TRACE_LEVEL_NONE
default 1 if RFCOMM_TRACE_LEVEL_ERROR
default 2 if RFCOMM_TRACE_LEVEL_WARNING
default 3 if RFCOMM_TRACE_LEVEL_API
default 4 if RFCOMM_TRACE_LEVEL_EVENT
default 5 if RFCOMM_TRACE_LEVEL_DEBUG
default 6 if RFCOMM_TRACE_LEVEL_VERBOSE
default 2
choice SDP_INITIAL_TRACE_LEVEL
prompt "SDP layer"
default SDP_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for SDP layer
config SDP_TRACE_LEVEL_NONE
bool "NONE"
config SDP_TRACE_LEVEL_ERROR
bool "ERROR"
config SDP_TRACE_LEVEL_WARNING
bool "WARNING"
config SDP_TRACE_LEVEL_API
bool "API"
config SDP_TRACE_LEVEL_EVENT
bool "EVENT"
config SDP_TRACE_LEVEL_DEBUG
bool "DEBUG"
config SDP_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config SDP_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if SDP_TRACE_LEVEL_NONE
default 1 if SDP_TRACE_LEVEL_ERROR
default 2 if SDP_TRACE_LEVEL_WARNING
default 3 if SDP_TRACE_LEVEL_API
default 4 if SDP_TRACE_LEVEL_EVENT
default 5 if SDP_TRACE_LEVEL_DEBUG
default 6 if SDP_TRACE_LEVEL_VERBOSE
default 2
choice GAP_INITIAL_TRACE_LEVEL
prompt "GAP layer"
default GAP_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for GAP layer
config GAP_TRACE_LEVEL_NONE
bool "NONE"
config GAP_TRACE_LEVEL_ERROR
bool "ERROR"
config GAP_TRACE_LEVEL_WARNING
bool "WARNING"
config GAP_TRACE_LEVEL_API
bool "API"
config GAP_TRACE_LEVEL_EVENT
bool "EVENT"
config GAP_TRACE_LEVEL_DEBUG
bool "DEBUG"
config GAP_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config GAP_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if GAP_TRACE_LEVEL_NONE
default 1 if GAP_TRACE_LEVEL_ERROR
default 2 if GAP_TRACE_LEVEL_WARNING
default 3 if GAP_TRACE_LEVEL_API
default 4 if GAP_TRACE_LEVEL_EVENT
default 5 if GAP_TRACE_LEVEL_DEBUG
default 6 if GAP_TRACE_LEVEL_VERBOSE
default 2
choice BNEP_INITIAL_TRACE_LEVEL
prompt "BNEP layer"
default BNEP_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for BNEP layer
config BNEP_TRACE_LEVEL_NONE
bool "NONE"
config BNEP_TRACE_LEVEL_ERROR
bool "ERROR"
config BNEP_TRACE_LEVEL_WARNING
bool "WARNING"
config BNEP_TRACE_LEVEL_API
bool "API"
config BNEP_TRACE_LEVEL_EVENT
bool "EVENT"
config BNEP_TRACE_LEVEL_DEBUG
bool "DEBUG"
config BNEP_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config BNEP_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if BNEP_TRACE_LEVEL_NONE
default 1 if BNEP_TRACE_LEVEL_ERROR
default 2 if BNEP_TRACE_LEVEL_WARNING
default 3 if BNEP_TRACE_LEVEL_API
default 4 if BNEP_TRACE_LEVEL_EVENT
default 5 if BNEP_TRACE_LEVEL_DEBUG
default 6 if BNEP_TRACE_LEVEL_VERBOSE
default 2
choice PAN_INITIAL_TRACE_LEVEL
prompt "PAN layer"
default PAN_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for PAN layer
config PAN_TRACE_LEVEL_NONE
bool "NONE"
config PAN_TRACE_LEVEL_ERROR
bool "ERROR"
config PAN_TRACE_LEVEL_WARNING
bool "WARNING"
config PAN_TRACE_LEVEL_API
bool "API"
config PAN_TRACE_LEVEL_EVENT
bool "EVENT"
config PAN_TRACE_LEVEL_DEBUG
bool "DEBUG"
config PAN_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config PAN_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if PAN_TRACE_LEVEL_NONE
default 1 if PAN_TRACE_LEVEL_ERROR
default 2 if PAN_TRACE_LEVEL_WARNING
default 3 if PAN_TRACE_LEVEL_API
default 4 if PAN_TRACE_LEVEL_EVENT
default 5 if PAN_TRACE_LEVEL_DEBUG
default 6 if PAN_TRACE_LEVEL_VERBOSE
default 2
choice A2D_INITIAL_TRACE_LEVEL
prompt "A2D layer"
default A2D_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for A2D layer
config A2D_TRACE_LEVEL_NONE
bool "NONE"
config A2D_TRACE_LEVEL_ERROR
bool "ERROR"
config A2D_TRACE_LEVEL_WARNING
bool "WARNING"
config A2D_TRACE_LEVEL_API
bool "API"
config A2D_TRACE_LEVEL_EVENT
bool "EVENT"
config A2D_TRACE_LEVEL_DEBUG
bool "DEBUG"
config A2D_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config A2D_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if A2D_TRACE_LEVEL_NONE
default 1 if A2D_TRACE_LEVEL_ERROR
default 2 if A2D_TRACE_LEVEL_WARNING
default 3 if A2D_TRACE_LEVEL_API
default 4 if A2D_TRACE_LEVEL_EVENT
default 5 if A2D_TRACE_LEVEL_DEBUG
default 6 if A2D_TRACE_LEVEL_VERBOSE
default 2
choice AVDT_INITIAL_TRACE_LEVEL
prompt "AVDT layer"
default AVDT_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for AVDT layer
config AVDT_TRACE_LEVEL_NONE
bool "NONE"
config AVDT_TRACE_LEVEL_ERROR
bool "ERROR"
config AVDT_TRACE_LEVEL_WARNING
bool "WARNING"
config AVDT_TRACE_LEVEL_API
bool "API"
config AVDT_TRACE_LEVEL_EVENT
bool "EVENT"
config AVDT_TRACE_LEVEL_DEBUG
bool "DEBUG"
config AVDT_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config AVDT_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if AVDT_TRACE_LEVEL_NONE
default 1 if AVDT_TRACE_LEVEL_ERROR
default 2 if AVDT_TRACE_LEVEL_WARNING
default 3 if AVDT_TRACE_LEVEL_API
default 4 if AVDT_TRACE_LEVEL_EVENT
default 5 if AVDT_TRACE_LEVEL_DEBUG
default 6 if AVDT_TRACE_LEVEL_VERBOSE
default 2
choice AVCT_INITIAL_TRACE_LEVEL
prompt "AVCT layer"
default AVCT_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for AVCT layer
config AVCT_TRACE_LEVEL_NONE
bool "NONE"
config AVCT_TRACE_LEVEL_ERROR
bool "ERROR"
config AVCT_TRACE_LEVEL_WARNING
bool "WARNING"
config AVCT_TRACE_LEVEL_API
bool "API"
config AVCT_TRACE_LEVEL_EVENT
bool "EVENT"
config AVCT_TRACE_LEVEL_DEBUG
bool "DEBUG"
config AVCT_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config AVCT_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if AVCT_TRACE_LEVEL_NONE
default 1 if AVCT_TRACE_LEVEL_ERROR
default 2 if AVCT_TRACE_LEVEL_WARNING
default 3 if AVCT_TRACE_LEVEL_API
default 4 if AVCT_TRACE_LEVEL_EVENT
default 5 if AVCT_TRACE_LEVEL_DEBUG
default 6 if AVCT_TRACE_LEVEL_VERBOSE
default 2
choice AVRC_INITIAL_TRACE_LEVEL
prompt "AVRC layer"
default AVRC_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for AVRC layer
config AVRC_TRACE_LEVEL_NONE
bool "NONE"
config AVRC_TRACE_LEVEL_ERROR
bool "ERROR"
config AVRC_TRACE_LEVEL_WARNING
bool "WARNING"
config AVRC_TRACE_LEVEL_API
bool "API"
config AVRC_TRACE_LEVEL_EVENT
bool "EVENT"
config AVRC_TRACE_LEVEL_DEBUG
bool "DEBUG"
config AVRC_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config AVRC_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if AVRC_TRACE_LEVEL_NONE
default 1 if AVRC_TRACE_LEVEL_ERROR
default 2 if AVRC_TRACE_LEVEL_WARNING
default 3 if AVRC_TRACE_LEVEL_API
default 4 if AVRC_TRACE_LEVEL_EVENT
default 5 if AVRC_TRACE_LEVEL_DEBUG
default 6 if AVRC_TRACE_LEVEL_VERBOSE
default 2
choice MCA_INITIAL_TRACE_LEVEL
prompt "MCA layer"
default MCA_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for MCA layer
config MCA_TRACE_LEVEL_NONE
bool "NONE"
config MCA_TRACE_LEVEL_ERROR
bool "ERROR"
config MCA_TRACE_LEVEL_WARNING
bool "WARNING"
config MCA_TRACE_LEVEL_API
bool "API"
config MCA_TRACE_LEVEL_EVENT
bool "EVENT"
config MCA_TRACE_LEVEL_DEBUG
bool "DEBUG"
config MCA_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config MCA_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if MCA_TRACE_LEVEL_NONE
default 1 if MCA_TRACE_LEVEL_ERROR
default 2 if MCA_TRACE_LEVEL_WARNING
default 3 if MCA_TRACE_LEVEL_API
default 4 if MCA_TRACE_LEVEL_EVENT
default 5 if MCA_TRACE_LEVEL_DEBUG
default 6 if MCA_TRACE_LEVEL_VERBOSE
default 2
choice HID_INITIAL_TRACE_LEVEL
prompt "HID layer"
default HID_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for HID layer
config HID_TRACE_LEVEL_NONE
bool "NONE"
config HID_TRACE_LEVEL_ERROR
bool "ERROR"
config HID_TRACE_LEVEL_WARNING
bool "WARNING"
config HID_TRACE_LEVEL_API
bool "API"
config HID_TRACE_LEVEL_EVENT
bool "EVENT"
config HID_TRACE_LEVEL_DEBUG
bool "DEBUG"
config HID_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config HID_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if HID_TRACE_LEVEL_NONE
default 1 if HID_TRACE_LEVEL_ERROR
default 2 if HID_TRACE_LEVEL_WARNING
default 3 if HID_TRACE_LEVEL_API
default 4 if HID_TRACE_LEVEL_EVENT
default 5 if HID_TRACE_LEVEL_DEBUG
default 6 if HID_TRACE_LEVEL_VERBOSE
default 2
choice APPL_INITIAL_TRACE_LEVEL
prompt "APPL layer"
default APPL_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for APPL layer
config APPL_TRACE_LEVEL_NONE
bool "NONE"
config APPL_TRACE_LEVEL_ERROR
bool "ERROR"
config APPL_TRACE_LEVEL_WARNING
bool "WARNING"
config APPL_TRACE_LEVEL_API
bool "API"
config APPL_TRACE_LEVEL_EVENT
bool "EVENT"
config APPL_TRACE_LEVEL_DEBUG
bool "DEBUG"
config APPL_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config APPL_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if APPL_TRACE_LEVEL_NONE
default 1 if APPL_TRACE_LEVEL_ERROR
default 2 if APPL_TRACE_LEVEL_WARNING
default 3 if APPL_TRACE_LEVEL_API
default 4 if APPL_TRACE_LEVEL_EVENT
default 5 if APPL_TRACE_LEVEL_DEBUG
default 6 if APPL_TRACE_LEVEL_VERBOSE
default 2
choice GATT_INITIAL_TRACE_LEVEL
prompt "GATT layer"
default GATT_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for GATT layer
config GATT_TRACE_LEVEL_NONE
bool "NONE"
config GATT_TRACE_LEVEL_ERROR
bool "ERROR"
config GATT_TRACE_LEVEL_WARNING
bool "WARNING"
config GATT_TRACE_LEVEL_API
bool "API"
config GATT_TRACE_LEVEL_EVENT
bool "EVENT"
config GATT_TRACE_LEVEL_DEBUG
bool "DEBUG"
config GATT_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config GATT_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if GATT_TRACE_LEVEL_NONE
default 1 if GATT_TRACE_LEVEL_ERROR
default 2 if GATT_TRACE_LEVEL_WARNING
default 3 if GATT_TRACE_LEVEL_API
default 4 if GATT_TRACE_LEVEL_EVENT
default 5 if GATT_TRACE_LEVEL_DEBUG
default 6 if GATT_TRACE_LEVEL_VERBOSE
default 2
choice SMP_INITIAL_TRACE_LEVEL
prompt "SMP layer"
default SMP_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for SMP layer
config SMP_TRACE_LEVEL_NONE
bool "NONE"
config SMP_TRACE_LEVEL_ERROR
bool "ERROR"
config SMP_TRACE_LEVEL_WARNING
bool "WARNING"
config SMP_TRACE_LEVEL_API
bool "API"
config SMP_TRACE_LEVEL_EVENT
bool "EVENT"
config SMP_TRACE_LEVEL_DEBUG
bool "DEBUG"
config SMP_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config SMP_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if SMP_TRACE_LEVEL_NONE
default 1 if SMP_TRACE_LEVEL_ERROR
default 2 if SMP_TRACE_LEVEL_WARNING
default 3 if SMP_TRACE_LEVEL_API
default 4 if SMP_TRACE_LEVEL_EVENT
default 5 if SMP_TRACE_LEVEL_DEBUG
default 6 if SMP_TRACE_LEVEL_VERBOSE
default 2
choice BTIF_INITIAL_TRACE_LEVEL
prompt "BTIF layer"
default BTIF_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for BTIF layer
config BTIF_TRACE_LEVEL_NONE
bool "NONE"
config BTIF_TRACE_LEVEL_ERROR
bool "ERROR"
config BTIF_TRACE_LEVEL_WARNING
bool "WARNING"
config BTIF_TRACE_LEVEL_API
bool "API"
config BTIF_TRACE_LEVEL_EVENT
bool "EVENT"
config BTIF_TRACE_LEVEL_DEBUG
bool "DEBUG"
config BTIF_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config BTIF_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if BTIF_TRACE_LEVEL_NONE
default 1 if BTIF_TRACE_LEVEL_ERROR
default 2 if BTIF_TRACE_LEVEL_WARNING
default 3 if BTIF_TRACE_LEVEL_API
default 4 if BTIF_TRACE_LEVEL_EVENT
default 5 if BTIF_TRACE_LEVEL_DEBUG
default 6 if BTIF_TRACE_LEVEL_VERBOSE
default 2
choice BTC_INITIAL_TRACE_LEVEL
prompt "BTC layer"
default BTC_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for BTC layer
config BTC_TRACE_LEVEL_NONE
bool "NONE"
config BTC_TRACE_LEVEL_ERROR
bool "ERROR"
config BTC_TRACE_LEVEL_WARNING
bool "WARNING"
config BTC_TRACE_LEVEL_API
bool "API"
config BTC_TRACE_LEVEL_EVENT
bool "EVENT"
config BTC_TRACE_LEVEL_DEBUG
bool "DEBUG"
config BTC_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config BTC_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if BTC_TRACE_LEVEL_NONE
default 1 if BTC_TRACE_LEVEL_ERROR
default 2 if BTC_TRACE_LEVEL_WARNING
default 3 if BTC_TRACE_LEVEL_API
default 4 if BTC_TRACE_LEVEL_EVENT
default 5 if BTC_TRACE_LEVEL_DEBUG
default 6 if BTC_TRACE_LEVEL_VERBOSE
default 2
choice OSI_INITIAL_TRACE_LEVEL
prompt "OSI layer"
default OSI_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for OSI layer
config OSI_TRACE_LEVEL_NONE
bool "NONE"
config OSI_TRACE_LEVEL_ERROR
bool "ERROR"
config OSI_TRACE_LEVEL_WARNING
bool "WARNING"
config OSI_TRACE_LEVEL_API
bool "API"
config OSI_TRACE_LEVEL_EVENT
bool "EVENT"
config OSI_TRACE_LEVEL_DEBUG
bool "DEBUG"
config OSI_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config OSI_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if OSI_TRACE_LEVEL_NONE
default 1 if OSI_TRACE_LEVEL_ERROR
default 2 if OSI_TRACE_LEVEL_WARNING
default 3 if OSI_TRACE_LEVEL_API
default 4 if OSI_TRACE_LEVEL_EVENT
default 5 if OSI_TRACE_LEVEL_DEBUG
default 6 if OSI_TRACE_LEVEL_VERBOSE
default 2
choice BLUFI_INITIAL_TRACE_LEVEL
prompt "BLUFI layer"
default BLUFI_TRACE_LEVEL_WARNING
depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help
Define BT trace level for BLUFI layer
config BLUFI_TRACE_LEVEL_NONE
bool "NONE"
config BLUFI_TRACE_LEVEL_ERROR
bool "ERROR"
config BLUFI_TRACE_LEVEL_WARNING
bool "WARNING"
config BLUFI_TRACE_LEVEL_API
bool "API"
config BLUFI_TRACE_LEVEL_EVENT
bool "EVENT"
config BLUFI_TRACE_LEVEL_DEBUG
bool "DEBUG"
config BLUFI_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config BLUFI_INITIAL_TRACE_LEVEL
int
depends on BLUEDROID_ENABLED
default 0 if BLUFI_TRACE_LEVEL_NONE
default 1 if BLUFI_TRACE_LEVEL_ERROR
default 2 if BLUFI_TRACE_LEVEL_WARNING
default 3 if BLUFI_TRACE_LEVEL_API
default 4 if BLUFI_TRACE_LEVEL_EVENT
default 5 if BLUFI_TRACE_LEVEL_DEBUG
default 6 if BLUFI_TRACE_LEVEL_VERBOSE
default 2
endmenu #BT DEBUG LOG LEVEL
config BT_ACL_CONNECTIONS
int "BT/BLE MAX ACL CONNECTIONS(1~7)"
depends on BLUEDROID_ENABLED
range 1 7
default 4
help
Maximum BT/BLE connection count
config BT_ALLOCATION_FROM_SPIRAM_FIRST
bool "BT/BLE will first malloc the memory from the PSRAM"
depends on BLUEDROID_ENABLED
default n
help
This select can save the internal RAM if there have the PSRAM
config BT_BLE_DYNAMIC_ENV_MEMORY
bool "Use dynamic memory allocation in BT/BLE stack"
depends on BLUEDROID_ENABLED
default n
help
This select can make the allocation of memory will become more flexible
config BLE_HOST_QUEUE_CONGESTION_CHECK
bool "BLE queue congestion check"
depends on BLUEDROID_ENABLED
default n
help
When scanning and scan duplicate is not enabled, if there are a lot of adv packets around or application
layer handling adv packets is slow, it will cause the controller memory to run out. if enabled, adv
packets will be lost when host queue is congested.
config SMP_ENABLE
bool
depends on BLUEDROID_ENABLED
default CLASSIC_BT_ENABLED || BLE_SMP_ENABLE
config BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY
bool "Report adv data and scan response individually when BLE active scan"
depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
default n
help
Originally, when doing BLE active scan, Bluedroid will not report adv to application layer
until receive scan response. This option is used to disable the behavior. When enable this option,
Bluedroid will report adv data or scan response to application layer immediately.
# Memory reserved at start of DRAM for Bluetooth stack
config BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT
int "Timeout of BLE connection establishment"
depends on BLUEDROID_ENABLED
range 1 60
default 30
help
Bluetooth Connection establishment maximum time, if connection time exceeds this value, the connection
establishment fails, ESP_GATTC_OPEN_EVT or ESP_GATTS_OPEN_EVT is triggered.
config BT_RESERVE_DRAM
hex
default 0xdb5c if BT_ENABLED
default 0
menuconfig NIMBLE_ENABLED
bool "Enable NimBLE host stack"
depends on BTDM_CONTROLLER_HCI_MODE_VHCI && !BLUEDROID_ENABLED
default n
help
This enables NimBLE host stack
choice NIMBLE_MEM_ALLOC_MODE
prompt "Memory allocation strategy"
default NIMBLE_MEM_ALLOC_MODE_INTERNAL
depends on NIMBLE_ENABLED
help
Allocation strategy for NimBLE host stack, essentially provides ability to
allocate all required dynamic allocations from,
- Internal DRAM memory only
- External SPIRAM memory only
- Either internal or external memory based on default malloc()
behavior in ESP-IDF
Recommended mode here is always internal, since that is most preferred
from security perspective. But if application requirement does not
allow sufficient free internal memory then alternate mode can be
selected.
config NIMBLE_MEM_ALLOC_MODE_INTERNAL
bool "Internal memory"
config NIMBLE_MEM_ALLOC_MODE_EXTERNAL
bool "External SPIRAM"
depends on ESP32_SPIRAM_SUPPORT
config NIMBLE_MEM_ALLOC_MODE_DEFAULT
bool "Default alloc mode"
endchoice
config NIMBLE_MAX_CONNECTIONS
int "Maximum number of concurrent connections"
range 1 9
default BTDM_CONTROLLER_BLE_MAX_CONN
depends on NIMBLE_ENABLED
help
Defines maximum number of concurrent BLE connections
config NIMBLE_MAX_BONDS
int "Maximum number of bonds to save across reboots"
default 3
depends on NIMBLE_ENABLED
help
Defines maximum number of bonds to save for peer security and our security
config NIMBLE_MAX_CCCDS
int "Maximum number of CCC descriptors to save across reboots"
default 8
depends on NIMBLE_ENABLED
help
Defines maximum number of CCC descriptors to save
config NIMBLE_L2CAP_COC_MAX_NUM
int "Maximum number of connection oriented channels"
range 0 9
depends on NIMBLE_ENABLED
default 0
help
Defines maximum number of BLE Connection Oriented Channels. When set to (0), BLE COC is not compiled in
choice NIMBLE_PINNED_TO_CORE_CHOICE
prompt "The CPU core on which NimBLE host will run"
depends on NIMBLE_ENABLED && !FREERTOS_UNICORE
help
The CPU core on which NimBLE host will run. You can choose Core 0 or Core 1.
Cannot specify no-affinity
config NIMBLE_PINNED_TO_CORE_0
bool "Core 0 (PRO CPU)"
config NIMBLE_PINNED_TO_CORE_1
bool "Core 1 (APP CPU)"
depends on !FREERTOS_UNICORE
endchoice
config NIMBLE_PINNED_TO_CORE
int
depends on NIMBLE_ENABLED
default 0 if NIMBLE_PINNED_TO_CORE_0
default 1 if NIMBLE_PINNED_TO_CORE_1
default 0
config NIMBLE_TASK_STACK_SIZE
int "NimBLE Host task stack size"
depends on NIMBLE_ENABLED
default 5120 if BLE_MESH
default 4096
help
This configures stack size of NimBLE host task
config NIMBLE_ROLE_CENTRAL
bool "Enable BLE Central role"
depends on NIMBLE_ENABLED
default y
config NIMBLE_ROLE_PERIPHERAL
bool "Enable BLE Peripheral role"
depends on NIMBLE_ENABLED
default y
config NIMBLE_ROLE_BROADCASTER
bool "Enable BLE Broadcaster role"
depends on NIMBLE_ENABLED
default y
config NIMBLE_ROLE_OBSERVER
bool "Enable BLE Observer role"
depends on NIMBLE_ENABLED
default y
config NIMBLE_NVS_PERSIST
bool "Persist the BLE Bonding keys in NVS"
depends on NIMBLE_ENABLED
default y
help
Enable this flag to make bonding persistent across device reboots
config NIMBLE_SM_LEGACY
bool "Security manager legacy pairing"
depends on NIMBLE_ENABLED
default y
help
Enable security manager legacy pairing
config NIMBLE_SM_SC
bool "Security manager secure connections (4.2)"
depends on NIMBLE_ENABLED
default y
help
Enable security manager secure connections
config NIMBLE_DEBUG
bool "Enable extra runtime asserts and host debugging"
default n
depends on NIMBLE_ENABLED
help
This enables extra runtime asserts and host debugging
config NIMBLE_SM_SC_DEBUG_KEYS
bool "Use predefined public-private key pair"
default n
depends on NIMBLE_ENABLED && NIMBLE_SM_SC
help
If this option is enabled, SM uses predefined DH key pair as described
in Core Specification, Vol. 3, Part H, 2.3.5.6.1. This allows to
decrypt air traffic easily and thus should only be used for debugging.
config NIMBLE_SVC_GAP_DEVICE_NAME
string "BLE GAP default device name"
depends on NIMBLE_ENABLED
default "nimble"
help
The Device Name characteristic shall contain the name of the device as an UTF-8 string.
This name can be changed by using API ble_svc_gap_device_name_set()
config NIMBLE_GAP_DEVICE_NAME_MAX_LEN
int "Maximum length of BLE device name in octets"
depends on NIMBLE_ENABLED
default 31
help
Device Name characteristic value shall be 0 to 248 octets in length
config NIMBLE_ATT_PREFERRED_MTU
int "Preferred MTU size in octets"
depends on NIMBLE_ENABLED
default 256
help
This is the default value of ATT MTU indicated by the device during an ATT MTU exchange.
This value can be changed using API ble_att_set_preferred_mtu()
config NIMBLE_SVC_GAP_APPEARANCE
hex "External appearance of the device"
depends on NIMBLE_ENABLED
default 0
help
Standard BLE GAP Appearance value in HEX format e.g. 0x02C0
config NIMBLE_ACL_BUF_COUNT
int "ACL Buffer count"
depends on NIMBLE_ENABLED
default 12
help
The number of ACL data buffers.
config NIMBLE_ACL_BUF_SIZE
int "ACL Buffer size"
depends on NIMBLE_ENABLED
default 255
help
This is the maximum size of the data portion of HCI ACL data packets.
It does not include the HCI data header (of 4 bytes)
config NIMBLE_HCI_EVT_BUF_SIZE
int "HCI Event Buffer size"
depends on NIMBLE_ENABLED
default 70
help
This is the size of each HCI event buffer in bytes
config NIMBLE_HCI_EVT_HI_BUF_COUNT
int "High Priority HCI Event Buffer count"
depends on NIMBLE_ENABLED
default 30
help
This is the high priority HCI events' buffer size. High-priority
event buffers are for everything except advertising reports. If there
are no free high-priority event buffers then host will try to allocate a
low-priority buffer instead
config NIMBLE_HCI_EVT_LO_BUF_COUNT
int "Low Priority HCI Event Buffer count"
depends on NIMBLE_ENABLED
default 8
help
This is the low priority HCI events' buffer size. Low-priority event
buffers are only used for advertising reports. If there are no free
low-priority event buffers, then an incoming advertising report will
get dropped
config NIMBLE_MSYS1_BLOCK_COUNT
int "MSYS_1 Block Count"
depends on NIMBLE_ENABLED
default 12
help
MSYS is a system level mbuf registry. For prepare write & prepare
responses MBUFs are allocated out of msys_1 pool. For NIMBLE_MESH
enabled cases, this block count is increased by 8 than user defined
count.
config NIMBLE_HS_FLOW_CTRL
bool "Enable Host Flow control"
depends on NIMBLE_ENABLED
default y
help
Enable Host Flow control
config NIMBLE_HS_FLOW_CTRL_ITVL
int "Host Flow control interval"
depends on NIMBLE_HS_FLOW_CTRL
default 1000
help
Host flow control interval in msecs
config NIMBLE_HS_FLOW_CTRL_THRESH
int "Host Flow control threshold"
depends on NIMBLE_HS_FLOW_CTRL
default 2
help
Host flow control threshold, if the number of free buffers are at or
below this threshold, send an immediate number-of-completed-packets
event
config NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT
bool "Host Flow control on disconnect"
depends on NIMBLE_HS_FLOW_CTRL
default y
help
Enable this option to send number-of-completed-packets event to
controller after disconnection
config NIMBLE_RPA_TIMEOUT
int "RPA timeout in seconds"
range 1 41400
depends on NIMBLE_ENABLED
default 900
help
Time interval between RPA address change. This is applicable in case of
Host based RPA
menuconfig NIMBLE_MESH
bool "Enable BLE mesh functionality"
select NIMBLE_SM_SC
depends on NIMBLE_ENABLED
default n
help
Enable BLE Mesh functionality
config NIMBLE_MESH_PROXY
bool "Enable mesh proxy functionality"
default n
depends on NIMBLE_MESH
help
Enable proxy. This is automatically set whenever NIMBLE_MESH_PB_GATT or
NIMBLE_MESH_GATT_PROXY is set
config NIMBLE_MESH_PROV
bool "Enable BLE mesh provisioning"
default y
depends on NIMBLE_MESH
help
Enable mesh provisioning
config NIMBLE_MESH_PB_ADV
bool "Enable mesh provisioning over advertising bearer"
default y
depends on NIMBLE_MESH_PROV
help
Enable this option to allow the device to be provisioned over
the advertising bearer
config NIMBLE_MESH_PB_GATT
bool "Enable mesh provisioning over GATT bearer"
default y
select NIMBLE_MESH_PROXY
depends on NIMBLE_MESH_PROV
help
Enable this option to allow the device to be provisioned over the GATT
bearer
config NIMBLE_MESH_GATT_PROXY
bool "Enable GATT Proxy functionality"
default y
select NIMBLE_MESH_PROXY
depends on NIMBLE_MESH
help
This option enables support for the Mesh GATT Proxy Service,
i.e. the ability to act as a proxy between a Mesh GATT Client
and a Mesh network
config NIMBLE_MESH_RELAY
bool "Enable mesh relay functionality"
default n
depends on NIMBLE_MESH
help
Support for acting as a Mesh Relay Node
config NIMBLE_MESH_LOW_POWER
bool "Enable mesh low power mode"
default n
depends on NIMBLE_MESH
help
Enable this option to be able to act as a Low Power Node
config NIMBLE_MESH_FRIEND
bool "Enable mesh friend functionality"
default n
depends on NIMBLE_MESH
help
Enable this option to be able to act as a Friend Node
config NIMBLE_MESH_DEVICE_NAME
string "Set mesh device name"
default "nimble-mesh-node"
depends on NIMBLE_MESH
help
This value defines Bluetooth Mesh device/node name
config NIMBLE_CRYPTO_STACK_MBEDTLS
bool "Override TinyCrypt with mbedTLS for crypto computations"
default y
depends on NIMBLE_ENABLED
select MBEDTLS_ECP_RESTARTABLE
select MBEDTLS_CMAC_C
help
Enable this option to choose mbedTLS instead of TinyCrypt for crypto
computations.
endmenu
menuconfig BLE_MESH
bool "ESP BLE Mesh Support"
help
This option enables ESP BLE Mesh support. The specific features that are
available may depend on other features that have been enabled in the
stack, such as Bluetooth Support, Bluedroid Support & GATT support.
if BLE_MESH
config BLE_MESH_HCI_5_0
bool "Support sending 20ms non-connectable adv packets"
default y
help
It is a temporary solution and needs further modifications.
config BLE_MESH_USE_DUPLICATE_SCAN
bool "Support Duplicate Scan in BLE Mesh"
depends on BLUEDROID_ENABLED
select BLE_SCAN_DUPLICATE
select BLE_MESH_SCAN_DUPLICATE_EN
default y
help
Enable this option to allow using specific duplicate scan filter
in BLE Mesh, and Scan Duplicate Type must be set by choosing the
option in the Bluetooth Controller section in menuconfig, which is
"Scan Duplicate By Device Address and Advertising Data".
choice BLE_MESH_MEM_ALLOC_MODE
prompt "Memory allocation strategy"
default BLE_MESH_MEM_ALLOC_MODE_INTERNAL
help
Allocation strategy for BLE Mesh stack, essentially provides ability to
allocate all required dynamic allocations from,
- Internal DRAM memory only
- External SPIRAM memory only
- Either internal or external memory based on default malloc()
behavior in ESP-IDF
Recommended mode here is always internal, since that is most preferred
from security perspective. But if application requirement does not allow
sufficient free internal memory then alternate mode can be selected.
config BLE_MESH_MEM_ALLOC_MODE_INTERNAL
bool "Internal DRAM"
config BLE_MESH_ALLOC_FROM_PSRAM_FIRST
bool "External SPIRAM"
depends on SPIRAM_SUPPORT
config BLE_MESH_MEM_ALLOC_MODE_DEFAULT
bool "Default alloc mode"
depends on SPIRAM_SUPPORT
help
Enable this option to use the default memory allocation strategy when
external SPIRAM is enabled. See the SPIRAM options for more details.
endchoice # BLE_MESH_MEM_ALLOC_MODE
config BLE_MESH_FREERTOS_STATIC_ALLOC
bool "Enable FreeRTOS static allocation"
depends on SUPPORT_STATIC_ALLOCATION && SPIRAM_SUPPORT
default n
help
Enable this option to use FreeRTOS static allocation APIs for BLE Mesh,
which provides the ability to use different dynamic memory (i.e. SPIRAM)
for FreeRTOS objects.
If this option is disabled, the FreeRTOS static allocation APIs will not
be used, and internal DRAM will be allocated for FreeRTOS objects.
choice BLE_MESH_FREERTOS_STATIC_ALLOC_MODE
prompt "Memory allocation for FreeRTOS objects"
depends on BLE_MESH_FREERTOS_STATIC_ALLOC
help
Choose the memory to be used for FreeRTOS objects.
config BLE_MESH_FREERTOS_STATIC_ALLOC_EXTERNAL
bool "External SPIRAM"
depends on SPIRAM_SUPPORT
help
If enabled, BLE Mesh allocates dynamic memory from external SPIRAM for
FreeRTOS objects, i.e. mutex, queue, and task stack. External SPIRAM
can only be used for task stack when SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY
is enabled. See the SPIRAM options for more details.
endchoice # BLE_MESH_FREERTOS_STATIC_ALLOC_MODE
config BLE_MESH_FAST_PROV
bool "Enable BLE Mesh Fast Provisioning"
select BLE_MESH_NODE
select BLE_MESH_PROVISIONER
select BLE_MESH_PB_ADV
default n
help
Enable this option to allow BLE Mesh fast provisioning solution to be used.
When there are multiple unprovisioned devices around, fast provisioning can
greatly reduce the time consumption of the whole provisioning process.
When this option is enabled, and after an unprovisioned device is provisioned
into a node successfully, it can be changed to a temporary Provisioner.
config BLE_MESH_NODE
bool "Support for BLE Mesh Node"
help
Enable the device to be provisioned into a node. This option should be
enabled when an unprovisioned device is going to be provisioned into a
node and communicate with other nodes in the BLE Mesh network.
config BLE_MESH_PROVISIONER
bool "Support for BLE Mesh Provisioner"
help
Enable the device to be a Provisioner. The option should be enabled when
a device is going to act as a Provisioner and provision unprovisioned
devices into the BLE Mesh network.
if BLE_MESH_PROVISIONER
config BLE_MESH_WAIT_FOR_PROV_MAX_DEV_NUM
int "Maximum number of unprovisioned devices that can be added to device queue"
default 10
range 1 100
help
This option specifies how many unprovisioned devices can be added to device
queue for provisioning. Users can use this option to define the size of the
queue in the bottom layer which is used to store unprovisioned device
information (e.g. Device UUID, address).
config BLE_MESH_MAX_PROV_NODES
int "Maximum number of devices that can be provisioned by Provisioner"
default 10
range 1 1000
help
This option specifies how many devices can be provisioned by a Provisioner.
This value indicates the maximum number of unprovisioned devices which can be
provisioned by a Provisioner. For instance, if the value is 6 then it means the
Provisioner can provision up to 6 unprovisioned devices.
Theoretically a Provisioner without the limitation of its memory can provision
up to 32766 unprovisioned devices, here we limit the maximum number to 100
just to limit the memory used by a Provisioner. The bigger the value is, the
more memory it will cost by a Provisioner to store the information of nodes.
if BLE_MESH_PB_ADV
config BLE_MESH_PBA_SAME_TIME
int "Maximum number of PB-ADV running at the same time by Provisioner"
default 2
range 1 10
help
This option specifies how many devices can be provisioned at the same time
using PB-ADV. For examples, if the value is 2, it means a Provisioner can
provision two unprovisioned devices with PB-ADV at the same time.
endif # BLE_MESH_PB_ADV
if BLE_MESH_PB_GATT
config BLE_MESH_PBG_SAME_TIME
int "Maximum number of PB-GATT running at the same time by Provisioner"
default 1
range 1 5
help
This option specifies how many devices can be provisioned at the same
time using PB-GATT. For example, if the value is 2, it means a Provisioner
can provision two unprovisioned devices with PB-GATT at the same time.
endif # BLE_MESH_PB_GATT
config BLE_MESH_PROVISIONER_SUBNET_COUNT
int "Maximum number of mesh subnets that can be created by Provisioner"
default 3
range 1 4096
help
This option specifies how many subnets per network a Provisioner can create.
Indeed, this value decides the number of network keys which can be added by a Provisioner.
config BLE_MESH_PROVISIONER_APP_KEY_COUNT
int "Maximum number of application keys that can be owned by Provisioner"
default 3
range 1 4096
help
This option specifies how many application keys the Provisioner can have.
Indeed, this value decides the number of the application keys which can be added by a Provisioner.
endif # BLE_MESH_PROVISIONER
# Virtual option enabled whenever Generic Provisioning layer is needed
config BLE_MESH_PROV
bool "BLE Mesh Provisioning support"
default y
help
Enable this option to support BLE Mesh Provisioning functionality. For
BLE Mesh, this option should be always enabled.
config BLE_MESH_PB_ADV
bool "Provisioning support using the advertising bearer (PB-ADV)"
select BLE_MESH_PROV
default y
help
Enable this option to allow the device to be provisioned over the
advertising bearer. This option should be enabled if PB-ADV is
going to be used during provisioning procedure.
config BLE_MESH_PB_GATT
bool "Provisioning support using GATT (PB-GATT)"
select BLE_MESH_PROXY
select BLE_MESH_PROV
help
Enable this option to allow the device to be provisioned over GATT.
This option should be enabled if PB-GATT is going to be used during
provisioning procedure.
# Virtual option enabled whenever any Proxy protocol is needed
config BLE_MESH_PROXY
bool "BLE Mesh Proxy protocol support"
default y
help
Enable this option to support BLE Mesh Proxy protocol used by PB-GATT
and other proxy pdu transmission.
config BLE_MESH_GATT_PROXY_SERVER
bool "BLE Mesh GATT Proxy Server"
select BLE_MESH_PROXY
depends on BLE_MESH_NODE
default y
help
This option enables support for Mesh GATT Proxy Service, i.e. the
ability to act as a proxy between a Mesh GATT Client and a Mesh network.
This option should be enabled if a node is going to be a Proxy Server.
config BLE_MESH_NODE_ID_TIMEOUT
int "Node Identity advertising timeout"
depends on BLE_MESH_GATT_PROXY_SERVER
range 1 60
default 60
help
This option determines for how long the local node advertises using
Node Identity. The given value is in seconds. The specification limits
this to 60 seconds and lists it as the recommended value as well.
So leaving the default value is the safest option.
When an unprovisioned device is provisioned successfully and becomes a
node, it will start to advertise using Node Identity during the time
set by this option. And after that, Network ID will be advertised.
config BLE_MESH_PROXY_FILTER_SIZE
int "Maximum number of filter entries per Proxy Client"
depends on BLE_MESH_GATT_PROXY_SERVER
default 4
range 1 32767
help
This option specifies how many Proxy Filter entries the local node supports.
The entries of Proxy filter (whitelist or blacklist) are used to store a
list of addresses which can be used to decide which messages will be forwarded
to the Proxy Client by the Proxy Server.
config BLE_MESH_GATT_PROXY_CLIENT
bool "BLE Mesh GATT Proxy Client"
select BLE_MESH_PROXY
default n
help
This option enables support for Mesh GATT Proxy Client. The Proxy Client
can use the GATT bearer to send mesh messages to a node that supports the
advertising bearer.
config BLE_MESH_NET_BUF_POOL_USAGE
bool
default y
help
Enable BLE Mesh net buffer pool tracking. This option is used to introduce another
variable in the bottom layer to record the usage of advertising buffers of BLE Mesh
devices. Recommend to enable this option as default.
config BLE_MESH_SETTINGS
bool "Store BLE Mesh configuration persistently"
default n
help
When selected, the BLE Mesh stack will take care of storing/restoring the BLE
Mesh configuration persistently in flash.
If the device is a BLE Mesh node, when this option is enabled, the configuration
of the device will be stored persistently, including unicast address, NetKey,
AppKey, etc.
And if the device is a BLE Mesh Provisioner, the information of the device will
be stored persistently, including the information of provisioned nodes, NetKey,
AppKey, etc.
if BLE_MESH_SETTINGS
config BLE_MESH_SPECIFIC_PARTITION
bool "Use a specific NVS partition for BLE Mesh"
default n
help
When selected, the mesh stack will use a specified NVS partition instead of
default NVS partition. Note that the specified partition must be registered
with NVS using nvs_flash_init_partition() API, and the partition must exists
in the csv file.
When Provisioner needs to store a large amount of nodes' information in the
flash (e.g. more than 20), this option is recommended to be enabled.
if BLE_MESH_SPECIFIC_PARTITION
config BLE_MESH_PARTITION_NAME
string "Name of the NVS partition for BLE Mesh"
default "ble_mesh"
help
This value defines the name of the specified NVS partition used by the
mesh stack.
endif # BLE_MESH_SPECIFIC_PARTITION
config BLE_MESH_STORE_TIMEOUT
int "Delay (in seconds) before storing anything persistently"
range 0 1000000
default 0
help
This value defines in seconds how soon any pending changes are actually
written into persistent storage (flash) after a change occurs.
The option allows nodes to delay a certain period of time to save proper
information to flash. The default value is 0, which means information
will be stored immediately once there are updates.
config BLE_MESH_SEQ_STORE_RATE
int "How often the sequence number gets updated in storage"
range 0 1000000
default 0
help
This value defines how often the local sequence number gets updated in
persistent storage (i.e. flash). e.g. a value of 100 means that the
sequence number will be stored to flash on every 100th increment.
If the node sends messages very frequently a higher value makes more
sense, whereas if the node sends infrequently a value as low as 0
(update storage for every increment) can make sense. When the stack
gets initialized it will add sequence number to the last stored one,
so that it starts off with a value that's guaranteed to be larger than
the last one used before power off.
config BLE_MESH_RPL_STORE_TIMEOUT
int "Minimum frequency that the RPL gets updated in storage"
range 0 1000000
default 0
help
This value defines in seconds how soon the RPL (Replay Protection List)
gets written to persistent storage after a change occurs. If the node
receives messages frequently, then a large value is recommended. If the
node receives messages rarely, then the value can be as low as 0 (which
means the RPL is written into the storage immediately).
Note that if the node operates in a security-sensitive case, and there is
a risk of sudden power-off, then a value of 0 is strongly recommended.
Otherwise, a power loss before RPL being written into the storage may
introduce message replay attacks and system security will be in a
vulnerable state.
config BLE_MESH_SETTINGS_BACKWARD_COMPATIBILITY
bool "A specific option for settings backward compatibility"
depends on BLE_MESH_NODE
default n
help
This option is created to solve the issue of failure in recovering
node information after mesh stack updates. In the old version mesh
stack, there is no key of "mesh/role" in nvs. In the new version
mesh stack, key of "mesh/role" is added in nvs, recovering node
information needs to check "mesh/role" key in nvs and implements
selective recovery of mesh node information. Therefore, there may
be failure in recovering node information during node restarting
after OTA.
The new version mesh stack adds the option of "mesh/role" because
we have added the support of storing Provisioner information, while
the old version only supports storing node information.
If users are updating their nodes from old version to new version,
we recommend enabling this option, so that system could set the flag
in advance before recovering node information and make sure the node
information recovering could work as expected.
endif # if BLE_MESH_SETTINGS
config BLE_MESH_SUBNET_COUNT
int "Maximum number of mesh subnets per network"
default 3
range 1 4096
help
This option specifies how many subnets a Mesh network can have at the same time.
Indeed, this value decides the number of the network keys which can be owned by a node.
config BLE_MESH_APP_KEY_COUNT
int "Maximum number of application keys per network"
default 3
range 1 4096
help
This option specifies how many application keys the device can store per network.
Indeed, this value decides the number of the application keys which can be owned by a node.
config BLE_MESH_MODEL_KEY_COUNT
int "Maximum number of application keys per model"
default 3
range 1 4096
help
This option specifies the maximum number of application keys to which each model
can be bound.
config BLE_MESH_MODEL_GROUP_COUNT
int "Maximum number of group address subscriptions per model"
default 3
range 1 4096
help
This option specifies the maximum number of addresses to which each model can
be subscribed.
config BLE_MESH_LABEL_COUNT
int "Maximum number of Label UUIDs used for Virtual Addresses"
default 3
range 0 4096
help
This option specifies how many Label UUIDs can be stored.
Indeed, this value decides the number of the Virtual Addresses can be supported by a node.
config BLE_MESH_CRPL
int "Maximum capacity of the replay protection list"
default 10
range 2 65535
help
This option specifies the maximum capacity of the replay protection list.
It is similar to Network message cache size, but has a different purpose.
The replay protection list is used to prevent a node from replay attack,
which will store the source address and sequence number of the received
mesh messages.
For Provisioner, the replay protection list size should not be smaller than
the maximum number of nodes whose information can be stored. And the element
number of each node should also be taken into consideration. For example, if
Provisioner can provision up to 20 nodes and each node contains two elements,
then the replay protection list size of Provisioner should be at least 40.
config BLE_MESH_MSG_CACHE_SIZE
int "Network message cache size"
default 10
range 2 65535
help
Number of messages that are cached for the network. This helps prevent
unnecessary decryption operations and unnecessary relays. This option
is similar to Replay protection list, but has a different purpose.
A node is not required to cache the entire Network PDU and may cache
only part of it for tracking, such as values for SRC/SEQ or others.
config BLE_MESH_ADV_BUF_COUNT
int "Number of advertising buffers"
default 60
range 6 256
help
Number of advertising buffers available. The transport layer reserves
ADV_BUF_COUNT - 3 buffers for outgoing segments. The maximum outgoing
SDU size is 12 times this value (out of which 4 or 8 bytes are used
for the Transport Layer MIC). For example, 5 segments means the maximum
SDU size is 60 bytes, which leaves 56 bytes for application layer data
using a 4-byte MIC, or 52 bytes using an 8-byte MIC.
config BLE_MESH_SUPPORT_BLE_ADV
bool "Support sending normal BLE advertising packets"
default n
help
When selected, users can send normal BLE advertising packets
with specific API.
if BLE_MESH_SUPPORT_BLE_ADV
config BLE_MESH_BLE_ADV_BUF_COUNT
int "Number of advertising buffers for BLE advertising packets"
default 3
range 1 255
help
Number of advertising buffers for BLE packets available.
endif # BLE_MESH_SUPPORT_BLE_ADV
config BLE_MESH_IVU_DIVIDER
int "Divider for IV Update state refresh timer"
default 4
range 2 96
help
When the IV Update state enters Normal operation or IV Update
in Progress, we need to keep track of how many hours has passed
in the state, since the specification requires us to remain in
the state at least for 96 hours (Update in Progress has an
additional upper limit of 144 hours).
In order to fulfill the above requirement, even if the node might
be powered off once in a while, we need to store persistently
how many hours the node has been in the state. This doesn't
necessarily need to happen every hour (thanks to the flexible
duration range). The exact cadence will depend a lot on the
ways that the node will be used and what kind of power source it
has.
Since there is no single optimal answer, this configuration
option allows specifying a divider, i.e. how many intervals
the 96 hour minimum gets split into. After each interval the
duration that the node has been in the current state gets
stored to flash. E.g. the default value of 4 means that the
state is saved every 24 hours (96 / 4).
config BLE_MESH_TX_SEG_MSG_COUNT
int "Maximum number of simultaneous outgoing segmented messages"
default 1
range 1 BLE_MESH_ADV_BUF_COUNT
help
Maximum number of simultaneous outgoing multi-segment and/or reliable messages.
The default value is 1, which means the device can only send one segmented
message at a time. And if another segmented message is going to be sent, it
should wait for the completion of the previous one.
If users are going to send multiple segmented messages at the same time, this
value should be configured properly.
config BLE_MESH_RX_SEG_MSG_COUNT
int "Maximum number of simultaneous incoming segmented messages"
default 1
range 1 255
help
Maximum number of simultaneous incoming multi-segment and/or reliable messages.
The default value is 1, which means the device can only receive one segmented
message at a time. And if another segmented message is going to be received,
it should wait for the completion of the previous one.
If users are going to receive multiple segmented messages at the same time, this
value should be configured properly.
config BLE_MESH_RX_SDU_MAX
int "Maximum incoming Upper Transport Access PDU length"
default 384
range 36 384
help
Maximum incoming Upper Transport Access PDU length. Leave this to the default
value, unless you really need to optimize memory usage.
config BLE_MESH_TX_SEG_MAX
int "Maximum number of segments in outgoing messages"
default 32
range 2 32
help
Maximum number of segments supported for outgoing messages.
This value should typically be fine-tuned based on what
models the local node supports, i.e. what's the largest
message payload that the node needs to be able to send.
This value affects memory and call stack consumption, which
is why the default is lower than the maximum that the
specification would allow (32 segments).
The maximum outgoing SDU size is 12 times this number (out of
which 4 or 8 bytes is used for the Transport Layer MIC). For
example, 5 segments means the maximum SDU size is 60 bytes,
which leaves 56 bytes for application layer data using a
4-byte MIC and 52 bytes using an 8-byte MIC.
Be sure to specify a sufficient number of advertising buffers
when setting this option to a higher value. There must be at
least three more advertising buffers (BLE_MESH_ADV_BUF_COUNT)
as there are outgoing segments.
config BLE_MESH_RELAY
bool "Relay support"
depends on BLE_MESH_NODE
default y
help
Support for acting as a Mesh Relay Node. Enabling this option will allow
a node to support the Relay feature, and the Relay feature can still
be enabled or disabled by proper configuration messages. Disabling this
option will let a node not support the Relay feature.
if BLE_MESH_RELAY
config BLE_MESH_RELAY_ADV_BUF
bool "Use separate advertising buffers for relay packets"
default n
help
When selected, self-send packets will be put in a high-priority
queue and relay packets will be put in a low-priority queue.
if BLE_MESH_RELAY_ADV_BUF
config BLE_MESH_RELAY_ADV_BUF_COUNT
int "Number of advertising buffers for relay packets"
default 60
range 6 256
help
Number of advertising buffers for relay packets available.
endif # BLE_MESH_RELAY_ADV_BUF
endif # BLE_MESH_RELAY
config BLE_MESH_LOW_POWER
bool "Support for Low Power features"
depends on BLE_MESH_NODE
help
Enable this option to operate as a Low Power Node. If low power consumption
is required by a node, this option should be enabled. And once the node
enters the mesh network, it will try to find a Friend node and establish a
friendship.
if BLE_MESH_LOW_POWER
config BLE_MESH_LPN_ESTABLISHMENT
bool "Perform Friendship establishment using low power"
default n
help
Perform the Friendship establishment using low power with the help of a
reduced scan duty cycle. The downside of this is that the node may miss
out on messages intended for it until it has successfully set up Friendship
with a Friend node.
When this option is enabled, the node will stop scanning for a period of
time after a Friend Request or Friend Poll is sent, so as to reduce more
power consumption.
config BLE_MESH_LPN_AUTO
bool "Automatically start looking for Friend nodes once provisioned"
default n
help
Once provisioned, automatically enable LPN functionality and start looking
for Friend nodes. If this option is disabled LPN mode needs to be manually
enabled by calling bt_mesh_lpn_set(true).
When an unprovisioned device is provisioned successfully and becomes a node,
enabling this option will trigger the node starts to send Friend Request at
a certain period until it finds a proper Friend node.
config BLE_MESH_LPN_AUTO_TIMEOUT
int "Time from last received message before going to LPN mode"
default 15
range 0 3600
depends on BLE_MESH_LPN_AUTO
help
Time in seconds from the last received message, that the node waits out
before starting to look for Friend nodes.
config BLE_MESH_LPN_RETRY_TIMEOUT
int "Retry timeout for Friend requests"
default 6
range 1 3600
help
Time in seconds between Friend Requests, if a previous Friend Request did
not yield any acceptable Friend Offers.
config BLE_MESH_LPN_RSSI_FACTOR
int "RSSIFactor, used in Friend Offer Delay calculation"
range 0 3
default 0
help
The contribution of the RSSI, measured by the Friend node, used in Friend
Offer Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
RSSIFactor, one of the parameters carried by Friend Request sent by Low Power
node, which is used to calculate the Friend Offer Delay.
config BLE_MESH_LPN_RECV_WIN_FACTOR
int "ReceiveWindowFactor, used in Friend Offer Delay calculation"
range 0 3
default 0
help
The contribution of the supported Receive Window used in Friend Offer
Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
ReceiveWindowFactor, one of the parameters carried by Friend Request sent by
Low Power node, which is used to calculate the Friend Offer Delay.
config BLE_MESH_LPN_MIN_QUEUE_SIZE
int "Minimum size of the acceptable friend queue (MinQueueSizeLog)"
range 1 7
default 1
help
The MinQueueSizeLog field is defined as log_2(N), where N is the minimum
number of maximum size Lower Transport PDUs that the Friend node can store
in its Friend Queue. As an example, MinQueueSizeLog value 1 gives N = 2,
and value 7 gives N = 128.
config BLE_MESH_LPN_RECV_DELAY
int "Receive delay requested by the local node"
range 10 255
default 100
help
The ReceiveDelay is the time between the Low Power node sending a
request and listening for a response. This delay allows the Friend
node time to prepare the response. The value is in units of milliseconds.
config BLE_MESH_LPN_POLL_TIMEOUT
int "The value of the PollTimeout timer"
range 10 244735
default 300
help
PollTimeout timer is used to measure time between two consecutive
requests sent by a Low Power node. If no requests are received
the Friend node before the PollTimeout timer expires, then the
friendship is considered terminated. The value is in units of 100
milliseconds, so e.g. a value of 300 means 30 seconds.
The smaller the value, the faster the Low Power node tries to get
messages from corresponding Friend node and vice versa.
config BLE_MESH_LPN_INIT_POLL_TIMEOUT
int "The starting value of the PollTimeout timer"
range 10 BLE_MESH_LPN_POLL_TIMEOUT
default BLE_MESH_LPN_POLL_TIMEOUT
help
The initial value of the PollTimeout timer when Friendship is to be
established for the first time. After this, the timeout gradually
grows toward the actual PollTimeout, doubling in value for each iteration.
The value is in units of 100 milliseconds, so e.g. a value of 300 means
30 seconds.
config BLE_MESH_LPN_SCAN_LATENCY
int "Latency for enabling scanning"
range 0 50
default 10
help
Latency (in milliseconds) is the time it takes to enable scanning. In
practice, it means how much time in advance of the Receive Window, the
request to enable scanning is made.
config BLE_MESH_LPN_GROUPS
int "Number of groups the LPN can subscribe to"
range 0 16384
default 8
help
Maximum number of groups to which the LPN can subscribe.
endif # BLE_MESH_LOW_POWER
config BLE_MESH_FRIEND
bool "Support for Friend feature"
help
Enable this option to be able to act as a Friend Node.
if BLE_MESH_FRIEND
config BLE_MESH_FRIEND_RECV_WIN
int "Friend Receive Window"
range 1 255
default 255
help
Receive Window in milliseconds supported by the Friend node.
config BLE_MESH_FRIEND_QUEUE_SIZE
int "Minimum number of buffers supported per Friend Queue"
range 2 65536
default 16
help
Minimum number of buffers available to be stored for each local Friend Queue.
This option decides the size of each buffer which can be used by a Friend node
to store messages for each Low Power node.
config BLE_MESH_FRIEND_SUB_LIST_SIZE
int "Friend Subscription List Size"
range 0 1023
default 3
help
Size of the Subscription List that can be supported by a Friend node for a
Low Power node. And Low Power node can send Friend Subscription List Add or
Friend Subscription List Remove messages to the Friend node to add or remove
subscription addresses.
config BLE_MESH_FRIEND_LPN_COUNT
int "Number of supported LPN nodes"
range 1 1000
default 2
help
Number of Low Power Nodes with which a Friend can have Friendship simultaneously.
A Friend node can have friendship with multiple Low Power nodes at the same time,
while a Low Power node can only establish friendship with only one Friend node at
the same time.
config BLE_MESH_FRIEND_SEG_RX
int "Number of incomplete segment lists per LPN"
range 1 1000
default 1
help
Number of incomplete segment lists tracked for each Friends' LPN.
In other words, this determines from how many elements can segmented
messages destined for the Friend queue be received simultaneously.
endif # BLE_MESH_FRIEND
config BLE_MESH_NO_LOG
bool "Disable BLE Mesh debug logs (minimize bin size)"
depends on BLE_MESH
default n
help
Select this to save the BLE Mesh related rodata code size. Enabling this option
will disable the output of BLE Mesh debug log.
menu "BLE Mesh STACK DEBUG LOG LEVEL"
depends on BLE_MESH && !BLE_MESH_NO_LOG
choice BLE_MESH_STACK_TRACE_LEVEL
prompt "BLE_MESH_STACK"
default BLE_MESH_TRACE_LEVEL_WARNING
depends on BLE_MESH && !BLE_MESH_NO_LOG
help
Define BLE Mesh trace level for BLE Mesh stack.
config BLE_MESH_TRACE_LEVEL_NONE
bool "NONE"
config BLE_MESH_TRACE_LEVEL_ERROR
bool "ERROR"
config BLE_MESH_TRACE_LEVEL_WARNING
bool "WARNING"
config BLE_MESH_TRACE_LEVEL_INFO
bool "INFO"
config BLE_MESH_TRACE_LEVEL_DEBUG
bool "DEBUG"
config BLE_MESH_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config BLE_MESH_STACK_TRACE_LEVEL
int
depends on BLE_MESH
default 0 if BLE_MESH_TRACE_LEVEL_NONE
default 1 if BLE_MESH_TRACE_LEVEL_ERROR
default 2 if BLE_MESH_TRACE_LEVEL_WARNING
default 3 if BLE_MESH_TRACE_LEVEL_INFO
default 4 if BLE_MESH_TRACE_LEVEL_DEBUG
default 5 if BLE_MESH_TRACE_LEVEL_VERBOSE
default 2
endmenu #BLE Mesh DEBUG LOG LEVEL
menu "BLE Mesh NET BUF DEBUG LOG LEVEL"
depends on BLE_MESH && !BLE_MESH_NO_LOG
choice BLE_MESH_NET_BUF_TRACE_LEVEL
prompt "BLE_MESH_NET_BUF"
default BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
depends on BLE_MESH && !BLE_MESH_NO_LOG
help
Define BLE Mesh trace level for BLE Mesh net buffer.
config BLE_MESH_NET_BUF_TRACE_LEVEL_NONE
bool "NONE"
config BLE_MESH_NET_BUF_TRACE_LEVEL_ERROR
bool "ERROR"
config BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
bool "WARNING"
config BLE_MESH_NET_BUF_TRACE_LEVEL_INFO
bool "INFO"
config BLE_MESH_NET_BUF_TRACE_LEVEL_DEBUG
bool "DEBUG"
config BLE_MESH_NET_BUF_TRACE_LEVEL_VERBOSE
bool "VERBOSE"
endchoice
config BLE_MESH_NET_BUF_TRACE_LEVEL
int
depends on BLE_MESH
default 0 if BLE_MESH_NET_BUF_TRACE_LEVEL_NONE
default 1 if BLE_MESH_NET_BUF_TRACE_LEVEL_ERROR
default 2 if BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
default 3 if BLE_MESH_NET_BUF_TRACE_LEVEL_INFO
default 4 if BLE_MESH_NET_BUF_TRACE_LEVEL_DEBUG
default 5 if BLE_MESH_NET_BUF_TRACE_LEVEL_VERBOSE
default 2
endmenu #BLE Mesh NET BUF DEBUG LOG LEVEL
config BLE_MESH_CLIENT_MSG_TIMEOUT
int "Timeout(ms) for client message response"
range 100 1200000
default 4000
help
Timeout value used by the node to get response of the acknowledged
message which is sent by the client model.
This value indicates the maximum time that a client model waits for
the response of the sent acknowledged messages. If a client model
uses 0 as the timeout value when sending acknowledged messages, then
the default value will be used which is four seconds.
menu "Support for BLE Mesh Client Models"
config BLE_MESH_CFG_CLI
bool "Configuration Client Model"
help
Enable support for Configuration client model.
config BLE_MESH_HEALTH_CLI
bool "Health Client Model"
help
Enable support for Health client model.
config BLE_MESH_GENERIC_ONOFF_CLI
bool "Generic OnOff Client Model"
help
Enable support for Generic OnOff client model.
config BLE_MESH_GENERIC_LEVEL_CLI
bool "Generic Level Client Model"
help
Enable support for Generic Level client model.
config BLE_MESH_GENERIC_DEF_TRANS_TIME_CLI
bool "Generic Default Transition Time Client Model"
help
Enable support for Generic Default Transition Time client model.
config BLE_MESH_GENERIC_POWER_ONOFF_CLI
bool "Generic Power OnOff Client Model"
help
Enable support for Generic Power OnOff client model.
config BLE_MESH_GENERIC_POWER_LEVEL_CLI
bool "Generic Power Level Client Model"
help
Enable support for Generic Power Level client model.
config BLE_MESH_GENERIC_BATTERY_CLI
bool "Generic Battery Client Model"
help
Enable support for Generic Battery client model.
config BLE_MESH_GENERIC_LOCATION_CLI
bool "Generic Location Client Model"
help
Enable support for Generic Location client model.
config BLE_MESH_GENERIC_PROPERTY_CLI
bool "Generic Property Client Model"
help
Enable support for Generic Property client model.
config BLE_MESH_SENSOR_CLI
bool "Sensor Client Model"
help
Enable support for Sensor client model.
config BLE_MESH_TIME_CLI
bool "Time Client Model"
help
Enable support for Time client model.
config BLE_MESH_SCENE_CLI
bool "Scene Client Model"
help
Enable support for Scene client model.
config BLE_MESH_SCHEDULER_CLI
bool "Scheduler Client Model"
help
Enable support for Scheduler client model.
config BLE_MESH_LIGHT_LIGHTNESS_CLI
bool "Light Lightness Client Model"
help
Enable support for Light Lightness client model.
config BLE_MESH_LIGHT_CTL_CLI
bool "Light CTL Client Model"
help
Enable support for Light CTL client model.
config BLE_MESH_LIGHT_HSL_CLI
bool "Light HSL Client Model"
help
Enable support for Light HSL client model.
config BLE_MESH_LIGHT_XYL_CLI
bool "Light XYL Client Model"
help
Enable support for Light XYL client model.
config BLE_MESH_LIGHT_LC_CLI
bool "Light LC Client Model"
help
Enable support for Light LC client model.
endmenu
config BLE_MESH_IV_UPDATE_TEST
bool "Test the IV Update Procedure"
default n
help
This option removes the 96 hour limit of the IV Update Procedure and
lets the state to be changed at any time.
If IV Update test mode is going to be used, this option should be enabled.
menu "BLE Mesh specific test option"
config BLE_MESH_SELF_TEST
bool "Perform BLE Mesh self-tests"
default n
help
This option adds extra self-tests which are run every time BLE Mesh
networking is initialized.
if BLE_MESH_SELF_TEST
config BLE_MESH_TEST_AUTO_ENTER_NETWORK
bool "Unprovisioned device enters mesh network automatically"
default y
help
With this option enabled, an unprovisioned device can automatically
enters mesh network using a specific test function without the pro-
visioning procedure. And on the Provisioner side, a test function
needs to be invoked to add the node information into the mesh stack.
config BLE_MESH_TEST_USE_WHITE_LIST
bool "Use white list to filter mesh advertising packets"
default n
help
With this option enabled, users can use white list to filter mesh
advertising packets while scanning.
endif # BLE_MESH_SELF_TEST
config BLE_MESH_SHELL
bool "Enable BLE Mesh shell"
default n
help
Activate shell module that provides BLE Mesh commands to the console.
config BLE_MESH_DEBUG
bool "Enable BLE Mesh debug logs"
default n
help
Enable debug logs for the BLE Mesh functionality.
if BLE_MESH_DEBUG
config BLE_MESH_DEBUG_NET
bool "Network layer debug"
help
Enable Network layer debug logs for the BLE Mesh functionality.
config BLE_MESH_DEBUG_TRANS
bool "Transport layer debug"
help
Enable Transport layer debug logs for the BLE Mesh functionality.
config BLE_MESH_DEBUG_BEACON
bool "Beacon debug"
help
Enable Beacon-related debug logs for the BLE Mesh functionality.
config BLE_MESH_DEBUG_CRYPTO
bool "Crypto debug"
help
Enable cryptographic debug logs for the BLE Mesh functionality.
config BLE_MESH_DEBUG_PROV
bool "Provisioning debug"
help
Enable Provisioning debug logs for the BLE Mesh functionality.
config BLE_MESH_DEBUG_ACCESS
bool "Access layer debug"
help
Enable Access layer debug logs for the BLE Mesh functionality.
config BLE_MESH_DEBUG_MODEL
bool "Foundation model debug"
help
Enable Foundation Models debug logs for the BLE Mesh functionality.
config BLE_MESH_DEBUG_ADV
bool "Advertising debug"
help
Enable advertising debug logs for the BLE Mesh functionality.
config BLE_MESH_DEBUG_LOW_POWER
bool "Low Power debug"
help
Enable Low Power debug logs for the BLE Mesh functionality.
config BLE_MESH_DEBUG_FRIEND
bool "Friend debug"
help
Enable Friend debug logs for the BLE Mesh functionality.
config BLE_MESH_DEBUG_PROXY
bool "Proxy debug"
depends on BLE_MESH_PROXY
help
Enable Proxy protocol debug logs for the BLE Mesh functionality.
endif # BLE_MESH_DEBUG
endmenu
endif # BLE_MESH