Kconfig.in 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864
  1. choice BT_NIMBLE_MEM_ALLOC_MODE
  2. prompt "Memory allocation strategy"
  3. default BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL
  4. help
  5. Allocation strategy for NimBLE host stack, essentially provides ability to
  6. allocate all required dynamic allocations from,
  7. - Internal DRAM memory only
  8. - External SPIRAM memory only
  9. - Either internal or external memory based on default malloc()
  10. behavior in ESP-IDF
  11. - Internal IRAM memory wherever applicable else internal DRAM
  12. config BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL
  13. bool "Internal memory"
  14. config BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL
  15. bool "External SPIRAM"
  16. depends on SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC
  17. config BT_NIMBLE_MEM_ALLOC_MODE_DEFAULT
  18. bool "Default alloc mode"
  19. config BT_NIMBLE_MEM_ALLOC_MODE_IRAM_8BIT
  20. bool "Internal IRAM"
  21. depends on ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY
  22. help
  23. Allows to use IRAM memory region as 8bit accessible region.
  24. Every unaligned (8bit or 16bit) access will result in an exception
  25. and incur penalty of certain clock cycles per unaligned read/write.
  26. endchoice #BT_NIMBLE_MEM_ALLOC_MODE
  27. choice BT_NIMBLE_LOG_LEVEL
  28. prompt "NimBLE Host log verbosity"
  29. depends on BT_NIMBLE_ENABLED
  30. default BT_NIMBLE_LOG_LEVEL_INFO
  31. help
  32. Select NimBLE log level. Please make a note that the selected NimBLE log
  33. verbosity can not exceed the level set in "Component config --> Log output
  34. --> Default log verbosity".
  35. config BT_NIMBLE_LOG_LEVEL_NONE
  36. bool "No logs"
  37. config BT_NIMBLE_LOG_LEVEL_ERROR
  38. bool "Error logs"
  39. config BT_NIMBLE_LOG_LEVEL_WARNING
  40. bool "Warning logs"
  41. config BT_NIMBLE_LOG_LEVEL_INFO
  42. bool "Info logs"
  43. config BT_NIMBLE_LOG_LEVEL_DEBUG
  44. bool "Debug logs"
  45. endchoice #BT_NIMBLE_LOG_LEVEL
  46. config BT_NIMBLE_LOG_LEVEL
  47. int
  48. default 0 if BT_NIMBLE_LOG_LEVEL_DEBUG
  49. default 1 if BT_NIMBLE_LOG_LEVEL_INFO
  50. default 2 if BT_NIMBLE_LOG_LEVEL_WARNING
  51. default 3 if BT_NIMBLE_LOG_LEVEL_ERROR
  52. default 4 if BT_NIMBLE_LOG_LEVEL_NONE
  53. config BT_NIMBLE_MAX_CONNECTIONS
  54. int "Maximum number of concurrent connections"
  55. range 1 2 if IDF_TARGET_ESP32C2
  56. range 1 70 if IDF_TARGET_ESP32C6
  57. range 1 35 if IDF_TARGET_ESP32H2
  58. range 1 9
  59. default 2 if IDF_TARGET_ESP32C2
  60. default 3
  61. depends on BT_NIMBLE_ENABLED
  62. help
  63. Defines maximum number of concurrent BLE connections. For ESP32, user
  64. is expected to configure BTDM_CTRL_BLE_MAX_CONN from controller menu
  65. along with this option. Similarly for ESP32-C3 or ESP32-S3, user is expected to
  66. configure BT_CTRL_BLE_MAX_ACT from controller menu.
  67. For ESP32C2, ESP32C6 and ESP32H2, each connection will take about 1k DRAM.
  68. config BT_NIMBLE_MAX_BONDS
  69. int "Maximum number of bonds to save across reboots"
  70. default 3
  71. depends on BT_NIMBLE_ENABLED
  72. help
  73. Defines maximum number of bonds to save for peer security and our security
  74. config BT_NIMBLE_MAX_CCCDS
  75. int "Maximum number of CCC descriptors to save across reboots"
  76. default 8
  77. depends on BT_NIMBLE_ENABLED
  78. help
  79. Defines maximum number of CCC descriptors to save
  80. config BT_NIMBLE_L2CAP_COC_MAX_NUM
  81. int "Maximum number of connection oriented channels"
  82. range 0 9
  83. depends on BT_NIMBLE_ENABLED
  84. default 0
  85. help
  86. Defines maximum number of BLE Connection Oriented Channels. When set to (0), BLE COC is not compiled in
  87. choice BT_NIMBLE_PINNED_TO_CORE_CHOICE
  88. prompt "The CPU core on which NimBLE host will run"
  89. depends on BT_NIMBLE_ENABLED && !FREERTOS_UNICORE
  90. help
  91. The CPU core on which NimBLE host will run. You can choose Core 0 or Core 1.
  92. Cannot specify no-affinity
  93. config BT_NIMBLE_PINNED_TO_CORE_0
  94. bool "Core 0 (PRO CPU)"
  95. config BT_NIMBLE_PINNED_TO_CORE_1
  96. bool "Core 1 (APP CPU)"
  97. depends on !FREERTOS_UNICORE
  98. endchoice
  99. config BT_NIMBLE_PINNED_TO_CORE
  100. int
  101. depends on BT_NIMBLE_ENABLED
  102. default 0 if BT_NIMBLE_PINNED_TO_CORE_0
  103. default 1 if BT_NIMBLE_PINNED_TO_CORE_1
  104. default 0
  105. config BT_NIMBLE_HOST_TASK_STACK_SIZE
  106. int "NimBLE Host task stack size"
  107. depends on BT_NIMBLE_ENABLED
  108. default 5120 if BLE_MESH
  109. default 4096
  110. help
  111. This configures stack size of NimBLE host task
  112. config BT_NIMBLE_ROLE_CENTRAL
  113. bool "Enable BLE Central role"
  114. depends on BT_NIMBLE_ENABLED
  115. default y
  116. help
  117. Enables central role
  118. config BT_NIMBLE_ROLE_PERIPHERAL
  119. bool "Enable BLE Peripheral role"
  120. depends on BT_NIMBLE_ENABLED
  121. default y
  122. help
  123. Enable peripheral role
  124. config BT_NIMBLE_ROLE_BROADCASTER
  125. bool "Enable BLE Broadcaster role"
  126. depends on BT_NIMBLE_ENABLED
  127. default y
  128. help
  129. Enables broadcaster role
  130. config BT_NIMBLE_ROLE_OBSERVER
  131. bool "Enable BLE Observer role"
  132. depends on BT_NIMBLE_ENABLED
  133. default y
  134. help
  135. Enables observer role
  136. config BT_NIMBLE_NVS_PERSIST
  137. bool "Persist the BLE Bonding keys in NVS"
  138. depends on BT_NIMBLE_ENABLED
  139. default n
  140. help
  141. Enable this flag to make bonding persistent across device reboots
  142. menuconfig BT_NIMBLE_SECURITY_ENABLE
  143. bool "Enable BLE SM feature"
  144. depends on BT_NIMBLE_ENABLED
  145. default y
  146. help
  147. Enable BLE sm feature
  148. config BT_NIMBLE_SM_LEGACY
  149. bool "Security manager legacy pairing"
  150. depends on BT_NIMBLE_SECURITY_ENABLE
  151. default y
  152. help
  153. Enable security manager legacy pairing
  154. config BT_NIMBLE_SM_SC
  155. bool "Security manager secure connections (4.2)"
  156. depends on BT_NIMBLE_SECURITY_ENABLE
  157. default y
  158. help
  159. Enable security manager secure connections
  160. config BT_NIMBLE_SM_SC_DEBUG_KEYS
  161. bool "Use predefined public-private key pair"
  162. default n
  163. depends on BT_NIMBLE_SECURITY_ENABLE && BT_NIMBLE_SM_SC
  164. help
  165. If this option is enabled, SM uses predefined DH key pair as described
  166. in Core Specification, Vol. 3, Part H, 2.3.5.6.1. This allows to
  167. decrypt air traffic easily and thus should only be used for debugging.
  168. config BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION
  169. bool "Enable LE encryption"
  170. depends on BT_NIMBLE_SECURITY_ENABLE && BT_NIMBLE_ENABLED
  171. default y
  172. help
  173. Enable encryption connection
  174. config BT_NIMBLE_DEBUG
  175. bool "Enable extra runtime asserts and host debugging"
  176. default n
  177. depends on BT_NIMBLE_ENABLED
  178. help
  179. This enables extra runtime asserts and host debugging
  180. config BT_NIMBLE_DYNAMIC_SERVICE
  181. bool "Enable dynamic services"
  182. depends on BT_NIMBLE_ENABLED
  183. help
  184. This enables user to add/remove Gatt services at runtime
  185. config BT_NIMBLE_SVC_GAP_DEVICE_NAME
  186. string "BLE GAP default device name"
  187. depends on BT_NIMBLE_ENABLED
  188. default "nimble"
  189. help
  190. The Device Name characteristic shall contain the name of the device as an UTF-8 string.
  191. This name can be changed by using API ble_svc_gap_device_name_set()
  192. config BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN
  193. int "Maximum length of BLE device name in octets"
  194. depends on BT_NIMBLE_ENABLED
  195. default 31
  196. help
  197. Device Name characteristic value shall be 0 to 248 octets in length
  198. config BT_NIMBLE_ATT_PREFERRED_MTU
  199. int "Preferred MTU size in octets"
  200. depends on BT_NIMBLE_ENABLED
  201. default 256
  202. help
  203. This is the default value of ATT MTU indicated by the device during an ATT MTU exchange.
  204. This value can be changed using API ble_att_set_preferred_mtu()
  205. config BT_NIMBLE_SVC_GAP_APPEARANCE
  206. hex "External appearance of the device"
  207. depends on BT_NIMBLE_ENABLED
  208. default 0
  209. help
  210. Standard BLE GAP Appearance value in HEX format e.g. 0x02C0
  211. menu "Memory Settings"
  212. config BT_NIMBLE_MSYS_1_BLOCK_COUNT
  213. int "MSYS_1 Block Count"
  214. default 24 if SOC_ESP_NIMBLE_CONTROLLER
  215. default 12 if !SOC_ESP_NIMBLE_CONTROLLER
  216. help
  217. MSYS is a system level mbuf registry. For prepare write & prepare
  218. responses MBUFs are allocated out of msys_1 pool. For NIMBLE_MESH
  219. enabled cases, this block count is increased by 8 than user defined
  220. count.
  221. config BT_NIMBLE_MSYS_1_BLOCK_SIZE
  222. int "MSYS_1 Block Size"
  223. default 128 if SOC_ESP_NIMBLE_CONTROLLER
  224. default 256 if !SOC_ESP_NIMBLE_CONTROLLER
  225. help
  226. Dynamic memory size of block 1
  227. config BT_NIMBLE_MSYS_2_BLOCK_COUNT
  228. int "MSYS_2 Block Count"
  229. default 24
  230. help
  231. Dynamic memory count
  232. config BT_NIMBLE_MSYS_2_BLOCK_SIZE
  233. int "MSYS_2 Block Size"
  234. default 320
  235. help
  236. Dynamic memory size of block 2
  237. config BT_NIMBLE_MSYS_BUF_FROM_HEAP
  238. bool "Get Msys Mbuf from heap"
  239. default y
  240. depends on BT_LE_MSYS_INIT_IN_CONTROLLER
  241. help
  242. This option sets the source of the shared msys mbuf memory between
  243. the Host and the Controller. Allocate the memory from the heap if
  244. this option is sets, from the mempool otherwise.
  245. config BT_NIMBLE_TRANSPORT_ACL_FROM_LL_COUNT
  246. int "ACL Buffer count"
  247. depends on BT_NIMBLE_ENABLED
  248. default 24
  249. help
  250. The number of ACL data buffers allocated for host.
  251. config BT_NIMBLE_TRANSPORT_ACL_SIZE
  252. int "Transport ACL Buffer size"
  253. depends on BT_NIMBLE_ENABLED
  254. default 255
  255. help
  256. This is the maximum size of the data portion of HCI ACL data packets.
  257. It does not include the HCI data header (of 4 bytes)
  258. config BT_NIMBLE_TRANSPORT_EVT_SIZE
  259. int "Transport Event Buffer size"
  260. depends on BT_NIMBLE_ENABLED
  261. default 257 if BT_NIMBLE_EXT_ADV
  262. default 70
  263. help
  264. This is the size of each HCI event buffer in bytes. In case of
  265. extended advertising, packets can be fragmented. 257 bytes is the
  266. maximum size of a packet.
  267. config BT_NIMBLE_TRANSPORT_EVT_COUNT
  268. int "Transport Event Buffer count"
  269. depends on BT_NIMBLE_ENABLED
  270. default 30
  271. help
  272. This is the high priority HCI events' buffer size. High-priority
  273. event buffers are for everything except advertising reports. If there
  274. are no free high-priority event buffers then host will try to allocate a
  275. low-priority buffer instead
  276. config BT_NIMBLE_TRANSPORT_EVT_DISCARD_COUNT
  277. int "Discardable Transport Event Buffer count"
  278. depends on BT_NIMBLE_ENABLED
  279. default 8
  280. help
  281. This is the low priority HCI events' buffer size. Low-priority event
  282. buffers are only used for advertising reports. If there are no free
  283. low-priority event buffers, then an incoming advertising report will
  284. get dropped
  285. endmenu
  286. config BT_NIMBLE_GATT_MAX_PROCS
  287. int "Maximum number of GATT client procedures"
  288. depends on BT_NIMBLE_ENABLED
  289. default 4
  290. help
  291. Maximum number of GATT client procedures that can be executed.
  292. config BT_NIMBLE_HS_FLOW_CTRL
  293. bool "Enable Host Flow control"
  294. depends on BT_NIMBLE_ENABLED
  295. default y if IDF_TARGET_ESP32
  296. default n
  297. help
  298. Enable Host Flow control
  299. config BT_NIMBLE_HS_FLOW_CTRL_ITVL
  300. int "Host Flow control interval"
  301. depends on BT_NIMBLE_HS_FLOW_CTRL
  302. default 1000
  303. help
  304. Host flow control interval in msecs
  305. config BT_NIMBLE_HS_FLOW_CTRL_THRESH
  306. int "Host Flow control threshold"
  307. depends on BT_NIMBLE_HS_FLOW_CTRL
  308. default 2
  309. help
  310. Host flow control threshold, if the number of free buffers are at or
  311. below this threshold, send an immediate number-of-completed-packets
  312. event
  313. config BT_NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT
  314. bool "Host Flow control on disconnect"
  315. depends on BT_NIMBLE_HS_FLOW_CTRL
  316. default y
  317. help
  318. Enable this option to send number-of-completed-packets event to
  319. controller after disconnection
  320. config BT_NIMBLE_RPA_TIMEOUT
  321. int "RPA timeout in seconds"
  322. range 1 41400
  323. depends on BT_NIMBLE_ENABLED
  324. default 900
  325. help
  326. Time interval between RPA address change. This is applicable in case of
  327. Host based RPA
  328. menuconfig BT_NIMBLE_MESH
  329. bool "Enable BLE mesh functionality"
  330. select BT_NIMBLE_SM_SC
  331. depends on BT_NIMBLE_ENABLED
  332. default n
  333. help
  334. Enable BLE Mesh example present in upstream mynewt-nimble and not maintained by Espressif.
  335. IDF maintains ESP-BLE-MESH as the official Mesh solution. Please refer to ESP-BLE-MESH guide at:
  336. `https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/esp-ble-mesh/ble-mesh-index.html`
  337. config BT_NIMBLE_MESH_PROXY
  338. bool "Enable mesh proxy functionality"
  339. default n
  340. depends on BT_NIMBLE_MESH
  341. help
  342. Enable proxy. This is automatically set whenever NIMBLE_MESH_PB_GATT or
  343. NIMBLE_MESH_GATT_PROXY is set
  344. config BT_NIMBLE_MESH_PROV
  345. bool "Enable BLE mesh provisioning"
  346. default y
  347. depends on BT_NIMBLE_MESH
  348. help
  349. Enable mesh provisioning
  350. config BT_NIMBLE_MESH_PB_ADV
  351. bool "Enable mesh provisioning over advertising bearer"
  352. default y
  353. depends on BT_NIMBLE_MESH_PROV
  354. help
  355. Enable this option to allow the device to be provisioned over
  356. the advertising bearer
  357. config BT_NIMBLE_MESH_PB_GATT
  358. bool "Enable mesh provisioning over GATT bearer"
  359. default y
  360. select BT_NIMBLE_MESH_PROXY
  361. depends on BT_NIMBLE_MESH_PROV
  362. help
  363. Enable this option to allow the device to be provisioned over the GATT
  364. bearer
  365. config BT_NIMBLE_MESH_GATT_PROXY
  366. bool "Enable GATT Proxy functionality"
  367. default y
  368. select BT_NIMBLE_MESH_PROXY
  369. depends on BT_NIMBLE_MESH
  370. help
  371. This option enables support for the Mesh GATT Proxy Service,
  372. i.e. the ability to act as a proxy between a Mesh GATT Client
  373. and a Mesh network
  374. config BT_NIMBLE_MESH_RELAY
  375. bool "Enable mesh relay functionality"
  376. default n
  377. depends on BT_NIMBLE_MESH
  378. help
  379. Support for acting as a Mesh Relay Node
  380. config BT_NIMBLE_MESH_LOW_POWER
  381. bool "Enable mesh low power mode"
  382. default n
  383. depends on BT_NIMBLE_MESH
  384. help
  385. Enable this option to be able to act as a Low Power Node
  386. config BT_NIMBLE_MESH_FRIEND
  387. bool "Enable mesh friend functionality"
  388. default n
  389. depends on BT_NIMBLE_MESH
  390. help
  391. Enable this option to be able to act as a Friend Node
  392. config BT_NIMBLE_MESH_DEVICE_NAME
  393. string "Set mesh device name"
  394. default "nimble-mesh-node"
  395. depends on BT_NIMBLE_MESH
  396. help
  397. This value defines Bluetooth Mesh device/node name
  398. config BT_NIMBLE_MESH_NODE_COUNT
  399. int "Set mesh node count"
  400. default 1
  401. depends on BT_NIMBLE_MESH
  402. help
  403. Defines mesh node count.
  404. config BT_NIMBLE_MESH_PROVISIONER
  405. bool "Enable BLE mesh provisioner"
  406. default 0
  407. depends on BT_NIMBLE_MESH
  408. help
  409. Enable mesh provisioner.
  410. config BT_NIMBLE_CRYPTO_STACK_MBEDTLS
  411. bool "Override TinyCrypt with mbedTLS for crypto computations"
  412. default y
  413. depends on BT_NIMBLE_ENABLED
  414. select MBEDTLS_ECP_RESTARTABLE
  415. select MBEDTLS_CMAC_C
  416. help
  417. Enable this option to choose mbedTLS instead of TinyCrypt for crypto
  418. computations.
  419. config BT_NIMBLE_HS_STOP_TIMEOUT_MS
  420. int "BLE host stop timeout in msec"
  421. default 2000
  422. depends on BT_NIMBLE_ENABLED
  423. help
  424. BLE Host stop procedure timeout in milliseconds.
  425. config BT_NIMBLE_HOST_BASED_PRIVACY
  426. bool "Enable host based privacy for random address."
  427. default n
  428. depends on BT_NIMBLE_ENABLED && IDF_TARGET_ESP32
  429. help
  430. Use this option to do host based Random Private Address resolution.
  431. If this option is disabled then controller based privacy is used.
  432. config BT_NIMBLE_ENABLE_CONN_REATTEMPT
  433. bool "Enable connection reattempts on connection establishment error"
  434. default y if (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 || SOC_ESP_NIMBLE_CONTROLLER)
  435. default n if IDF_TARGET_ESP32
  436. help
  437. Enable to make the NimBLE host to reattempt GAP connection on connection
  438. establishment failure.
  439. config BT_NIMBLE_MAX_CONN_REATTEMPT
  440. int "Maximum number connection reattempts"
  441. range 1 7
  442. default 3
  443. depends on BT_NIMBLE_ENABLED && BT_NIMBLE_ENABLE_CONN_REATTEMPT
  444. help
  445. Defines maximum number of connection reattempts.
  446. menuconfig BT_NIMBLE_50_FEATURE_SUPPORT
  447. bool "Enable BLE 5 feature"
  448. depends on BT_NIMBLE_ENABLED && (SOC_BLE_50_SUPPORTED || !BT_CONTROLLER_ENABLED)
  449. default y
  450. help
  451. Enable BLE 5 feature
  452. config BT_NIMBLE_LL_CFG_FEAT_LE_2M_PHY
  453. bool "Enable 2M Phy"
  454. depends on BT_NIMBLE_50_FEATURE_SUPPORT
  455. default y
  456. help
  457. Enable 2M-PHY
  458. config BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY
  459. bool "Enable coded Phy"
  460. depends on BT_NIMBLE_50_FEATURE_SUPPORT
  461. default y
  462. help
  463. Enable coded-PHY
  464. config BT_NIMBLE_EXT_ADV
  465. bool "Enable extended advertising"
  466. depends on BT_NIMBLE_50_FEATURE_SUPPORT
  467. default n
  468. help
  469. Enable this option to do extended advertising. Extended advertising
  470. will be supported from BLE 5.0 onwards.
  471. if BT_NIMBLE_EXT_ADV
  472. config BT_NIMBLE_MAX_EXT_ADV_INSTANCES
  473. int "Maximum number of extended advertising instances."
  474. range 0 4
  475. default 1 if BT_NIMBLE_EXT_ADV
  476. default 0
  477. depends on BT_NIMBLE_EXT_ADV
  478. help
  479. Change this option to set maximum number of extended advertising
  480. instances. Minimum there is always one instance of
  481. advertising. Enter how many more advertising instances you
  482. want.
  483. For ESP32C2, ESP32C6 and ESP32H2, each extended advertising instance
  484. will take about 0.5k DRAM.
  485. config BT_NIMBLE_EXT_ADV_MAX_SIZE
  486. int "Maximum length of the advertising data."
  487. range 0 1650
  488. default 1650 if BT_NIMBLE_EXT_ADV
  489. default 0
  490. depends on BT_NIMBLE_EXT_ADV
  491. help
  492. Defines the length of the extended adv data. The value should not
  493. exceed 1650.
  494. config BT_NIMBLE_ENABLE_PERIODIC_ADV
  495. bool "Enable periodic advertisement."
  496. default y
  497. depends on BT_NIMBLE_EXT_ADV
  498. help
  499. Enable this option to start periodic advertisement.
  500. config BT_NIMBLE_PERIODIC_ADV_SYNC_TRANSFER
  501. bool "Enable Transer Sync Events"
  502. depends on BT_NIMBLE_ENABLE_PERIODIC_ADV
  503. default y
  504. help
  505. This enables controller transfer periodic sync events to host
  506. endif
  507. config BT_NIMBLE_MAX_PERIODIC_SYNCS
  508. int "Maximum number of periodic advertising syncs"
  509. depends on BT_NIMBLE_50_FEATURE_SUPPORT
  510. range 0 3 if IDF_TARGET_ESP32C2
  511. range 0 8
  512. default 1 if BT_NIMBLE_ENABLE_PERIODIC_ADV
  513. default 0
  514. help
  515. Set this option to set the upper limit for number of periodic sync
  516. connections. This should be less than maximum connections allowed by
  517. controller.
  518. config BT_NIMBLE_MAX_PERIODIC_ADVERTISER_LIST
  519. int "Maximum number of periodic advertiser list"
  520. depends on BT_NIMBLE_50_FEATURE_SUPPORT && SOC_ESP_NIMBLE_CONTROLLER
  521. range 1 5
  522. default 5 if BT_NIMBLE_50_FEATURE_SUPPORT
  523. help
  524. Set this option to set the upper limit for number of periodic advertiser list.
  525. config BT_NIMBLE_BLE_POWER_CONTROL
  526. bool "Enable support for BLE Power Control"
  527. depends on BT_NIMBLE_50_FEATURE_SUPPORT && SOC_BLE_POWER_CONTROL_SUPPORTED
  528. default n
  529. help
  530. Set this option to enable the Power Control feature
  531. config BT_NIMBLE_PERIODIC_ADV_ENH
  532. bool "Periodic adv enhancements(adi support)"
  533. depends on BT_NIMBLE_ENABLE_PERIODIC_ADV && BT_NIMBLE_50_FEATURE_SUPPORT && SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED
  534. help
  535. Enable the periodic advertising enhancements
  536. config BT_NIMBLE_WHITELIST_SIZE
  537. int "BLE white list size"
  538. depends on BT_NIMBLE_ENABLED
  539. range 1 15
  540. default 12
  541. help
  542. BLE list size
  543. config BT_NIMBLE_TEST_THROUGHPUT_TEST
  544. bool "Throughput Test Mode enable"
  545. default n
  546. help
  547. Enable the throughput test mode
  548. config BT_NIMBLE_BLUFI_ENABLE
  549. bool "Enable blufi functionality"
  550. depends on BT_NIMBLE_ENABLED
  551. default n
  552. help
  553. Set this option to enable blufi functionality.
  554. config BT_NIMBLE_USE_ESP_TIMER
  555. bool "Enable Esp Timer for Nimble"
  556. default y
  557. help
  558. Set this option to use Esp Timer which has higher priority timer instead of FreeRTOS timer
  559. config BT_NIMBLE_LEGACY_VHCI_ENABLE
  560. bool
  561. default y if (IDF_TARGET_ESP32 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3)
  562. default n
  563. help
  564. This option is used to distinguish whether a previous version of VHCI is being used
  565. config BT_NIMBLE_BLE_GATT_BLOB_TRANSFER
  566. bool "Blob transfer"
  567. help
  568. This option is used when data to be sent is more than 512 bytes. For peripheral role,
  569. BT_NIMBLE_MSYS_1_BLOCK_COUNT needs to be increased according to the need.
  570. menu "GAP Service"
  571. menu "GAP Appearance write permissions"
  572. config BT_NIMBLE_SVC_GAP_APPEAR_WRITE
  573. bool "Write"
  574. default n
  575. help
  576. Enable write permission (BLE_GATT_CHR_F_WRITE)
  577. config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_ENC
  578. depends on BT_NIMBLE_SVC_GAP_APPEAR_WRITE
  579. bool "Write with encryption"
  580. default n
  581. help
  582. Enable write with encryption permission (BLE_GATT_CHR_F_WRITE_ENC)
  583. config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHEN
  584. depends on BT_NIMBLE_SVC_GAP_APPEAR_WRITE
  585. bool "Write with authentication"
  586. default n
  587. help
  588. Enable write with authentication permission (BLE_GATT_CHR_F_WRITE_AUTHEN)
  589. config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHOR
  590. depends on BT_NIMBLE_SVC_GAP_APPEAR_WRITE
  591. bool "Write with authorisation"
  592. default n
  593. help
  594. Enable write with authorisation permission (BLE_GATT_CHR_F_WRITE_AUTHOR)
  595. endmenu
  596. config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM
  597. int
  598. default 0 if !BT_NIMBLE_SVC_GAP_APPEAR_WRITE
  599. default 8 if BT_NIMBLE_SVC_GAP_APPEAR_WRITE
  600. config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ENC
  601. int
  602. default 0 if !BT_NIMBLE_SVC_GAP_APPEAR_WRITE_ENC
  603. default 4096 if BT_NIMBLE_SVC_GAP_APPEAR_WRITE_ENC
  604. config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ATHN
  605. int
  606. default 0 if !BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHEN
  607. default 8192 if BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHEN
  608. config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ATHR
  609. int
  610. default 0 if !BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHOR
  611. default 16384 if BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHOR
  612. choice BT_NIMBLE_SVC_GAP_CENT_ADDR_RESOLUTION
  613. prompt "GAP Characteristic - Central Address Resolution"
  614. default BT_NIMBLE_SVC_GAP_CAR_CHAR_NOT_SUPP
  615. help
  616. Weather or not Central Address Resolution characteristic is supported on
  617. the device, and if supported, weather or not Central Address Resolution
  618. is supported.
  619. - Central Address Resolution characteristic not supported
  620. - Central Address Resolution not supported
  621. - Central Address Resolution supported
  622. config BT_NIMBLE_SVC_GAP_CAR_CHAR_NOT_SUPP
  623. bool "Characteristic not supported"
  624. config BT_NIMBLE_SVC_GAP_CAR_NOT_SUPP
  625. bool "Central Address Resolution not supported"
  626. config BT_NIMBLE_SVC_GAP_CAR_SUPP
  627. bool "Central Address Resolution supported"
  628. endchoice
  629. config BT_NIMBLE_SVC_GAP_CENT_ADDR_RESOLUTION
  630. int
  631. default -1 if BT_NIMBLE_SVC_GAP_CAR_CHAR_NOT_SUPP
  632. default 0 if BT_NIMBLE_SVC_GAP_CAR_NOT_SUPP
  633. default 1 if BT_NIMBLE_SVC_GAP_CAR_SUPP
  634. menu "GAP device name write permissions"
  635. config BT_NIMBLE_SVC_GAP_NAME_WRITE
  636. bool "Write"
  637. default n
  638. help
  639. Enable write permission (BLE_GATT_CHR_F_WRITE)
  640. config BT_NIMBLE_SVC_GAP_NAME_WRITE_ENC
  641. depends on BT_NIMBLE_SVC_GAP_NAME_WRITE
  642. bool "Write with encryption"
  643. default n
  644. help
  645. Enable write with encryption permission (BLE_GATT_CHR_F_WRITE_ENC)
  646. config BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHEN
  647. depends on BT_NIMBLE_SVC_GAP_NAME_WRITE
  648. bool "Write with authentication"
  649. default n
  650. help
  651. Enable write with authentication permission (BLE_GATT_CHR_F_WRITE_AUTHEN)
  652. config BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHOR
  653. depends on BT_NIMBLE_SVC_GAP_NAME_WRITE
  654. bool "Write with authorisation"
  655. default n
  656. help
  657. Enable write with authorisation permission (BLE_GATT_CHR_F_WRITE_AUTHOR)
  658. endmenu
  659. config BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM
  660. int
  661. default 0 if !BT_NIMBLE_SVC_GAP_NAME_WRITE
  662. default 8 if BT_NIMBLE_SVC_GAP_NAME_WRITE
  663. config BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_ENC
  664. int
  665. default 0 if !BT_NIMBLE_SVC_GAP_NAME_WRITE_ENC
  666. default 4096 if BT_NIMBLE_SVC_GAP_NAME_WRITE_ENC
  667. config BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_AUTHEN
  668. int
  669. default 0 if !BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHEN
  670. default 8192 if BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHEN
  671. config BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_AUTHOR
  672. int
  673. default 0 if !BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHOR
  674. default 16384 if BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHOR
  675. config BT_NIMBLE_SVC_GAP_PPCP_MAX_CONN_INTERVAL
  676. int "PPCP Connection Interval Max (Unit: 1.25 ms)"
  677. depends on BT_NIMBLE_ROLE_PERIPHERAL
  678. default 0
  679. help
  680. Peripheral Preferred Connection Parameter: Connection Interval maximum value
  681. Interval Max = value * 1.25 ms
  682. config BT_NIMBLE_SVC_GAP_PPCP_MIN_CONN_INTERVAL
  683. int "PPCP Connection Interval Min (Unit: 1.25 ms)"
  684. depends on BT_NIMBLE_ROLE_PERIPHERAL
  685. default 0
  686. help
  687. Peripheral Preferred Connection Parameter: Connection Interval minimum value
  688. Interval Min = value * 1.25 ms
  689. config BT_NIMBLE_SVC_GAP_PPCP_SLAVE_LATENCY
  690. int "PPCP Slave Latency"
  691. default 0
  692. help
  693. Peripheral Preferred Connection Parameter: Slave Latency
  694. config BT_NIMBLE_SVC_GAP_PPCP_SUPERVISION_TMO
  695. int "PPCP Supervision Timeout (Uint: 10 ms)"
  696. default 0
  697. help
  698. Peripheral Preferred Connection Parameter: Supervision Timeout
  699. Timeout = Value * 10 ms
  700. endmenu
  701. config BT_NIMBLE_VS_SUPPORT
  702. bool "Enable support for VSC and VSE"
  703. help
  704. This option is used to enable support for sending Vendor Specific HCI commands and handling
  705. Vendor Specific HCI Events.
  706. config BT_NIMBLE_OPTIMIZE_MULTI_CONN
  707. bool "Enable the optimization of multi-connection"
  708. depends on SOC_BLE_MULTI_CONN_OPTIMIZATION
  709. select BT_NIMBLE_VS_SUPPORT
  710. default n
  711. help
  712. This option enables the use of vendor-specific APIs for multi-connections, which can
  713. greatly enhance the stability of coexistence between numerous central and peripheral
  714. devices. It will prohibit the usage of standard APIs.
  715. config BT_NIMBLE_ENC_ADV_DATA
  716. bool "Encrypted Advertising Data"
  717. depends on SOC_ESP_NIMBLE_CONTROLLER
  718. select BT_NIMBLE_EXT_ADV
  719. help
  720. This option is used to enable encrypted advertising data.
  721. config BT_NIMBLE_MAX_EADS
  722. int "Maximum number of EAD devices to save across reboots"
  723. default 10
  724. depends on BT_NIMBLE_ENABLED && BT_NIMBLE_ENC_ADV_DATA
  725. help
  726. Defines maximum number of encrypted advertising data key material to save
  727. config BT_NIMBLE_HIGH_DUTY_ADV_ITVL
  728. bool "Enable BLE high duty advertising interval feature"
  729. depends on BT_NIMBLE_ENABLED
  730. help
  731. This enable BLE high duty advertising interval feature
  732. config BT_NIMBLE_HOST_QUEUE_CONG_CHECK
  733. bool "BLE queue congestion check"
  734. depends on BT_NIMBLE_ENABLED
  735. default n
  736. help
  737. When scanning and scan duplicate is not enabled, if there are a lot of adv packets around
  738. or application layer handling adv packets is slow, it will cause the controller memory
  739. to run out. if enabled, adv packets will be lost when host queue is congested.