1 2choice BT_NIMBLE_MEM_ALLOC_MODE 3 prompt "Memory allocation strategy" 4 default BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL 5 help 6 Allocation strategy for NimBLE host stack, essentially provides ability to 7 allocate all required dynamic allocations from, 8 9 - Internal DRAM memory only 10 - External SPIRAM memory only 11 - Either internal or external memory based on default malloc() 12 behavior in ESP-IDF 13 - Internal IRAM memory wherever applicable else internal DRAM 14 15 config BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL 16 bool "Internal memory" 17 18 config BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL 19 bool "External SPIRAM" 20 depends on SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC 21 22 config BT_NIMBLE_MEM_ALLOC_MODE_DEFAULT 23 bool "Default alloc mode" 24 25 config BT_NIMBLE_MEM_ALLOC_MODE_IRAM_8BIT 26 bool "Internal IRAM" 27 depends on ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY 28 help 29 Allows to use IRAM memory region as 8bit accessible region. 30 31 Every unaligned (8bit or 16bit) access will result in an exception 32 and incur penalty of certain clock cycles per unaligned read/write. 33 34endchoice #BT_NIMBLE_MEM_ALLOC_MODE 35 36choice BT_NIMBLE_LOG_LEVEL 37 prompt "NimBLE Host log verbosity" 38 depends on BT_NIMBLE_ENABLED 39 default BT_NIMBLE_LOG_LEVEL_INFO 40 help 41 Select NimBLE log level. Please make a note that the selected NimBLE log 42 verbosity can not exceed the level set in "Component config --> Log output 43 --> Default log verbosity". 44 45 config BT_NIMBLE_LOG_LEVEL_NONE 46 bool "No logs" 47 config BT_NIMBLE_LOG_LEVEL_ERROR 48 bool "Error logs" 49 config BT_NIMBLE_LOG_LEVEL_WARNING 50 bool "Warning logs" 51 config BT_NIMBLE_LOG_LEVEL_INFO 52 bool "Info logs" 53 config BT_NIMBLE_LOG_LEVEL_DEBUG 54 bool "Debug logs" 55endchoice #BT_NIMBLE_LOG_LEVEL 56 57config BT_NIMBLE_LOG_LEVEL 58 int 59 default 0 if BT_NIMBLE_LOG_LEVEL_DEBUG 60 default 1 if BT_NIMBLE_LOG_LEVEL_INFO 61 default 2 if BT_NIMBLE_LOG_LEVEL_WARNING 62 default 3 if BT_NIMBLE_LOG_LEVEL_ERROR 63 default 4 if BT_NIMBLE_LOG_LEVEL_NONE 64 65config BT_NIMBLE_MAX_CONNECTIONS 66 int "Maximum number of concurrent connections" 67 range 1 2 if IDF_TARGET_ESP32C2 68 range 1 70 if IDF_TARGET_ESP32C6 69 range 1 35 if IDF_TARGET_ESP32H2 70 range 1 9 71 default 2 if IDF_TARGET_ESP32C2 72 default 3 73 depends on BT_NIMBLE_ENABLED 74 help 75 Defines maximum number of concurrent BLE connections. For ESP32, user 76 is expected to configure BTDM_CTRL_BLE_MAX_CONN from controller menu 77 along with this option. Similarly for ESP32-C3 or ESP32-S3, user is expected to 78 configure BT_CTRL_BLE_MAX_ACT from controller menu. 79 For ESP32C2, ESP32C6 and ESP32H2, each connection will take about 1k DRAM. 80 81config BT_NIMBLE_MAX_BONDS 82 int "Maximum number of bonds to save across reboots" 83 default 3 84 depends on BT_NIMBLE_ENABLED 85 help 86 Defines maximum number of bonds to save for peer security and our security 87 88config BT_NIMBLE_MAX_CCCDS 89 int "Maximum number of CCC descriptors to save across reboots" 90 default 8 91 depends on BT_NIMBLE_ENABLED 92 help 93 Defines maximum number of CCC descriptors to save 94 95config BT_NIMBLE_L2CAP_COC_MAX_NUM 96 int "Maximum number of connection oriented channels" 97 range 0 9 98 depends on BT_NIMBLE_ENABLED 99 default 0 100 help 101 Defines maximum number of BLE Connection Oriented Channels. When set to (0), BLE COC is not compiled in 102 103config BT_NIMBLE_L2CAP_ENHANCED_COC 104 bool "L2CAP Enhanced Connection Oriented Channel" 105 depends on BT_NIMBLE_ENABLED && (BT_NIMBLE_L2CAP_COC_MAX_NUM >= 1) 106 default 0 107 help 108 Enable Enhanced Credit Based Flow Control Mode 109 110 111choice BT_NIMBLE_PINNED_TO_CORE_CHOICE 112 prompt "The CPU core on which NimBLE host will run" 113 depends on BT_NIMBLE_ENABLED && !FREERTOS_UNICORE 114 help 115 The CPU core on which NimBLE host will run. You can choose Core 0 or Core 1. 116 Cannot specify no-affinity 117 118 config BT_NIMBLE_PINNED_TO_CORE_0 119 bool "Core 0 (PRO CPU)" 120 config BT_NIMBLE_PINNED_TO_CORE_1 121 bool "Core 1 (APP CPU)" 122 depends on !FREERTOS_UNICORE 123endchoice 124 125config BT_NIMBLE_PINNED_TO_CORE 126 int 127 depends on BT_NIMBLE_ENABLED 128 default 0 if BT_NIMBLE_PINNED_TO_CORE_0 129 default 1 if BT_NIMBLE_PINNED_TO_CORE_1 130 default 0 131 132config BT_NIMBLE_HOST_TASK_STACK_SIZE 133 int "NimBLE Host task stack size" 134 depends on BT_NIMBLE_ENABLED 135 default 5120 if BLE_MESH 136 default 4096 137 help 138 This configures stack size of NimBLE host task 139 140config BT_NIMBLE_ROLE_CENTRAL 141 bool "Enable BLE Central role" 142 depends on BT_NIMBLE_ENABLED 143 default y 144 help 145 Enables central role 146 147config BT_NIMBLE_ROLE_PERIPHERAL 148 bool "Enable BLE Peripheral role" 149 depends on BT_NIMBLE_ENABLED 150 default y 151 help 152 Enable peripheral role 153 154config BT_NIMBLE_ROLE_BROADCASTER 155 bool "Enable BLE Broadcaster role" 156 depends on BT_NIMBLE_ENABLED 157 default y 158 help 159 Enables broadcaster role 160 161config BT_NIMBLE_ROLE_OBSERVER 162 bool "Enable BLE Observer role" 163 depends on BT_NIMBLE_ENABLED 164 default y 165 help 166 Enables observer role 167 168config BT_NIMBLE_NVS_PERSIST 169 bool "Persist the BLE Bonding keys in NVS" 170 depends on BT_NIMBLE_ENABLED 171 default n 172 help 173 Enable this flag to make bonding persistent across device reboots 174 175config BT_NIMBLE_SMP_ID_RESET 176 bool "Reset device identity when all bonding records are deleted" 177 default n 178 help 179 There are tracking risks associated with using a fixed or static IRK. 180 If enabled this option, Bluedroid will assign a new randomly-generated IRK 181 when all pairing and bonding records are deleted. This would decrease the ability 182 of a previously paired peer to be used to determine whether a device 183 with which it previously shared an IRK is within range. 184 185menuconfig BT_NIMBLE_SECURITY_ENABLE 186 bool "Enable BLE SM feature" 187 depends on BT_NIMBLE_ENABLED 188 default y 189 help 190 Enable BLE sm feature 191 192config BT_NIMBLE_SM_LEGACY 193 bool "Security manager legacy pairing" 194 depends on BT_NIMBLE_SECURITY_ENABLE 195 default y 196 help 197 Enable security manager legacy pairing 198 199config BT_NIMBLE_SM_SC 200 bool "Security manager secure connections (4.2)" 201 depends on BT_NIMBLE_SECURITY_ENABLE 202 default y 203 help 204 Enable security manager secure connections 205 206config BT_NIMBLE_SM_SC_DEBUG_KEYS 207 bool "Use predefined public-private key pair" 208 default n 209 depends on BT_NIMBLE_SECURITY_ENABLE && BT_NIMBLE_SM_SC 210 help 211 If this option is enabled, SM uses predefined DH key pair as described 212 in Core Specification, Vol. 3, Part H, 2.3.5.6.1. This allows to 213 decrypt air traffic easily and thus should only be used for debugging. 214 215config BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION 216 bool "Enable LE encryption" 217 depends on BT_NIMBLE_SECURITY_ENABLE && BT_NIMBLE_ENABLED 218 default y 219 help 220 Enable encryption connection 221 222config BT_NIMBLE_SM_SC_LVL 223 int "Security level" 224 depends on BT_NIMBLE_SECURITY_ENABLE 225 default 0 226 help 227 LE Security Mode 1 Levels: 228 1. No Security 229 2. Unauthenticated pairing with encryption 230 3. Authenticated pairing with encryption 231 4. Authenticated LE Secure Connections pairing with encryption using a 128-bit strength encryption key. 232 233config BT_NIMBLE_SM_SC_ONLY 234 int "Enable Secure Connections Only Mode" 235 depends on BT_NIMBLE_SECURITY_ENABLE 236 default 0 237 help 238 Enable Secure Connections Only Mode 239 240config BT_NIMBLE_DEBUG 241 bool "Enable extra runtime asserts and host debugging" 242 default n 243 depends on BT_NIMBLE_ENABLED 244 help 245 This enables extra runtime asserts and host debugging 246 247config BT_NIMBLE_DYNAMIC_SERVICE 248 bool "Enable dynamic services" 249 depends on BT_NIMBLE_ENABLED 250 help 251 This enables user to add/remove Gatt services at runtime 252 253config BT_NIMBLE_SVC_GAP_DEVICE_NAME 254 string "BLE GAP default device name" 255 depends on BT_NIMBLE_ENABLED 256 default "nimble" 257 help 258 The Device Name characteristic shall contain the name of the device as an UTF-8 string. 259 This name can be changed by using API ble_svc_gap_device_name_set() 260 261config BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN 262 int "Maximum length of BLE device name in octets" 263 depends on BT_NIMBLE_ENABLED 264 default 31 265 help 266 Device Name characteristic value shall be 0 to 248 octets in length 267 268config BT_NIMBLE_ATT_PREFERRED_MTU 269 int "Preferred MTU size in octets" 270 depends on BT_NIMBLE_ENABLED 271 default 256 272 help 273 This is the default value of ATT MTU indicated by the device during an ATT MTU exchange. 274 This value can be changed using API ble_att_set_preferred_mtu() 275 276config BT_NIMBLE_SVC_GAP_APPEARANCE 277 hex "External appearance of the device" 278 depends on BT_NIMBLE_ENABLED 279 default 0 280 help 281 Standard BLE GAP Appearance value in HEX format e.g. 0x02C0 282 283 284menu "Memory Settings" 285 config BT_NIMBLE_MSYS_1_BLOCK_COUNT 286 int "MSYS_1 Block Count" 287 default 24 if SOC_ESP_NIMBLE_CONTROLLER 288 default 12 if !SOC_ESP_NIMBLE_CONTROLLER 289 help 290 MSYS is a system level mbuf registry. For prepare write & prepare 291 responses MBUFs are allocated out of msys_1 pool. For NIMBLE_MESH 292 enabled cases, this block count is increased by 8 than user defined 293 count. 294 295 config BT_NIMBLE_MSYS_1_BLOCK_SIZE 296 int "MSYS_1 Block Size" 297 default 128 if SOC_ESP_NIMBLE_CONTROLLER 298 default 256 if !SOC_ESP_NIMBLE_CONTROLLER 299 help 300 Dynamic memory size of block 1 301 302 config BT_NIMBLE_MSYS_2_BLOCK_COUNT 303 int "MSYS_2 Block Count" 304 default 24 305 help 306 Dynamic memory count 307 308 config BT_NIMBLE_MSYS_2_BLOCK_SIZE 309 int "MSYS_2 Block Size" 310 default 320 311 help 312 Dynamic memory size of block 2 313 314 config BT_NIMBLE_MSYS_BUF_FROM_HEAP 315 bool "Get Msys Mbuf from heap" 316 default y 317 depends on BT_LE_MSYS_INIT_IN_CONTROLLER 318 help 319 This option sets the source of the shared msys mbuf memory between 320 the Host and the Controller. Allocate the memory from the heap if 321 this option is sets, from the mempool otherwise. 322 323 config BT_NIMBLE_TRANSPORT_ACL_FROM_LL_COUNT 324 int "ACL Buffer count" 325 depends on BT_NIMBLE_ENABLED 326 default 24 327 help 328 The number of ACL data buffers allocated for host. 329 330 config BT_NIMBLE_TRANSPORT_ACL_SIZE 331 int "Transport ACL Buffer size" 332 depends on BT_NIMBLE_ENABLED 333 default 255 334 help 335 This is the maximum size of the data portion of HCI ACL data packets. 336 It does not include the HCI data header (of 4 bytes) 337 338 config BT_NIMBLE_TRANSPORT_EVT_SIZE 339 int "Transport Event Buffer size" 340 depends on BT_NIMBLE_ENABLED 341 default 257 if BT_NIMBLE_EXT_ADV 342 default 70 343 help 344 This is the size of each HCI event buffer in bytes. In case of 345 extended advertising, packets can be fragmented. 257 bytes is the 346 maximum size of a packet. 347 348 config BT_NIMBLE_TRANSPORT_EVT_COUNT 349 int "Transport Event Buffer count" 350 depends on BT_NIMBLE_ENABLED 351 default 30 352 help 353 This is the high priority HCI events' buffer size. High-priority 354 event buffers are for everything except advertising reports. If there 355 are no free high-priority event buffers then host will try to allocate a 356 low-priority buffer instead 357 358 config BT_NIMBLE_TRANSPORT_EVT_DISCARD_COUNT 359 int "Discardable Transport Event Buffer count" 360 depends on BT_NIMBLE_ENABLED 361 default 8 362 help 363 This is the low priority HCI events' buffer size. Low-priority event 364 buffers are only used for advertising reports. If there are no free 365 low-priority event buffers, then an incoming advertising report will 366 get dropped 367 368endmenu 369 370config BT_NIMBLE_GATT_MAX_PROCS 371 int "Maximum number of GATT client procedures" 372 depends on BT_NIMBLE_ENABLED 373 default 4 374 help 375 Maximum number of GATT client procedures that can be executed. 376 377config BT_NIMBLE_HS_FLOW_CTRL 378 bool "Enable Host Flow control" 379 depends on BT_NIMBLE_ENABLED 380 default y if IDF_TARGET_ESP32 381 default n 382 help 383 Enable Host Flow control 384 385config BT_NIMBLE_HS_FLOW_CTRL_ITVL 386 int "Host Flow control interval" 387 depends on BT_NIMBLE_HS_FLOW_CTRL 388 default 1000 389 help 390 Host flow control interval in msecs 391 392config BT_NIMBLE_HS_FLOW_CTRL_THRESH 393 int "Host Flow control threshold" 394 depends on BT_NIMBLE_HS_FLOW_CTRL 395 default 2 396 help 397 Host flow control threshold, if the number of free buffers are at or 398 below this threshold, send an immediate number-of-completed-packets 399 event 400 401config BT_NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT 402 bool "Host Flow control on disconnect" 403 depends on BT_NIMBLE_HS_FLOW_CTRL 404 default y 405 help 406 Enable this option to send number-of-completed-packets event to 407 controller after disconnection 408 409config BT_NIMBLE_RPA_TIMEOUT 410 int "RPA timeout in seconds" 411 range 1 41400 412 depends on BT_NIMBLE_ENABLED 413 default 900 414 help 415 Time interval between RPA address change. 416 417menuconfig BT_NIMBLE_MESH 418 bool "Enable BLE mesh functionality" 419 select BT_NIMBLE_SM_SC 420 depends on BT_NIMBLE_ENABLED 421 default n 422 help 423 Enable BLE Mesh example present in upstream mynewt-nimble and not maintained by Espressif. 424 425 IDF maintains ESP-BLE-MESH as the official Mesh solution. Please refer to ESP-BLE-MESH guide at: 426 `https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/esp-ble-mesh/ble-mesh-index.html` 427 428config BT_NIMBLE_MESH_PROXY 429 bool "Enable mesh proxy functionality" 430 default n 431 depends on BT_NIMBLE_MESH 432 help 433 Enable proxy. This is automatically set whenever NIMBLE_MESH_PB_GATT or 434 NIMBLE_MESH_GATT_PROXY is set 435 436 437config BT_NIMBLE_MESH_PROV 438 bool "Enable BLE mesh provisioning" 439 default y 440 depends on BT_NIMBLE_MESH 441 help 442 Enable mesh provisioning 443 444config BT_NIMBLE_MESH_PB_ADV 445 bool "Enable mesh provisioning over advertising bearer" 446 default y 447 depends on BT_NIMBLE_MESH_PROV 448 help 449 Enable this option to allow the device to be provisioned over 450 the advertising bearer 451 452 453config BT_NIMBLE_MESH_PB_GATT 454 bool "Enable mesh provisioning over GATT bearer" 455 default y 456 select BT_NIMBLE_MESH_PROXY 457 depends on BT_NIMBLE_MESH_PROV 458 help 459 Enable this option to allow the device to be provisioned over the GATT 460 bearer 461 462config BT_NIMBLE_MESH_GATT_PROXY 463 bool "Enable GATT Proxy functionality" 464 default y 465 select BT_NIMBLE_MESH_PROXY 466 depends on BT_NIMBLE_MESH 467 help 468 This option enables support for the Mesh GATT Proxy Service, 469 i.e. the ability to act as a proxy between a Mesh GATT Client 470 and a Mesh network 471 472config BT_NIMBLE_MESH_RELAY 473 bool "Enable mesh relay functionality" 474 default n 475 depends on BT_NIMBLE_MESH 476 help 477 Support for acting as a Mesh Relay Node 478 479config BT_NIMBLE_MESH_LOW_POWER 480 bool "Enable mesh low power mode" 481 default n 482 depends on BT_NIMBLE_MESH 483 help 484 Enable this option to be able to act as a Low Power Node 485 486config BT_NIMBLE_MESH_FRIEND 487 bool "Enable mesh friend functionality" 488 default n 489 depends on BT_NIMBLE_MESH 490 help 491 Enable this option to be able to act as a Friend Node 492 493config BT_NIMBLE_MESH_DEVICE_NAME 494 string "Set mesh device name" 495 default "nimble-mesh-node" 496 depends on BT_NIMBLE_MESH 497 help 498 This value defines Bluetooth Mesh device/node name 499 500config BT_NIMBLE_MESH_NODE_COUNT 501 int "Set mesh node count" 502 default 1 503 depends on BT_NIMBLE_MESH 504 help 505 Defines mesh node count. 506 507config BT_NIMBLE_MESH_PROVISIONER 508 bool "Enable BLE mesh provisioner" 509 default 0 510 depends on BT_NIMBLE_MESH 511 help 512 Enable mesh provisioner. 513 514config BT_NIMBLE_CRYPTO_STACK_MBEDTLS 515 bool "Override TinyCrypt with mbedTLS for crypto computations" 516 default y 517 depends on BT_NIMBLE_ENABLED 518 select MBEDTLS_CMAC_C 519 help 520 Enable this option to choose mbedTLS instead of TinyCrypt for crypto 521 computations. 522 523config BT_NIMBLE_HS_STOP_TIMEOUT_MS 524 int "BLE host stop timeout in msec" 525 default 2000 526 depends on BT_NIMBLE_ENABLED 527 help 528 BLE Host stop procedure timeout in milliseconds. 529 530config BT_NIMBLE_HOST_BASED_PRIVACY 531 bool "Enable host based privacy for random address." 532 default n 533 depends on BT_NIMBLE_ENABLED && IDF_TARGET_ESP32 534 help 535 Use this option to do host based Random Private Address resolution. 536 If this option is disabled then controller based privacy is used. 537 538config BT_NIMBLE_ENABLE_CONN_REATTEMPT 539 bool "Enable connection reattempts on connection establishment error" 540 default y if (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 || SOC_ESP_NIMBLE_CONTROLLER) 541 default n if IDF_TARGET_ESP32 542 help 543 Enable to make the NimBLE host to reattempt GAP connection on connection 544 establishment failure. 545 546config BT_NIMBLE_MAX_CONN_REATTEMPT 547 int "Maximum number connection reattempts" 548 range 1 255 549 default 3 550 depends on BT_NIMBLE_ENABLED && BT_NIMBLE_ENABLE_CONN_REATTEMPT 551 help 552 Defines maximum number of connection reattempts. 553 554menuconfig BT_NIMBLE_50_FEATURE_SUPPORT 555 bool "Enable BLE 5 feature" 556 depends on BT_NIMBLE_ENABLED && (SOC_BLE_50_SUPPORTED || !BT_CONTROLLER_ENABLED) 557 default y 558 help 559 Enable BLE 5 feature 560 561if BT_NIMBLE_50_FEATURE_SUPPORT 562 config BT_NIMBLE_LL_CFG_FEAT_LE_2M_PHY 563 bool "Enable 2M Phy" 564 depends on BT_NIMBLE_50_FEATURE_SUPPORT 565 default y 566 help 567 Enable 2M-PHY 568 569 config BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY 570 bool "Enable coded Phy" 571 depends on BT_NIMBLE_50_FEATURE_SUPPORT 572 default y 573 help 574 Enable coded-PHY 575 576 config BT_NIMBLE_EXT_ADV 577 bool "Enable extended advertising" 578 depends on BT_NIMBLE_50_FEATURE_SUPPORT 579 default n 580 help 581 Enable this option to do extended advertising. Extended advertising 582 will be supported from BLE 5.0 onwards. 583 584 if BT_NIMBLE_EXT_ADV 585 config BT_NIMBLE_MAX_EXT_ADV_INSTANCES 586 int "Maximum number of extended advertising instances." 587 range 0 4 588 default 1 if BT_NIMBLE_EXT_ADV 589 default 0 590 depends on BT_NIMBLE_EXT_ADV 591 help 592 Change this option to set maximum number of extended advertising 593 instances. Minimum there is always one instance of 594 advertising. Enter how many more advertising instances you 595 want. 596 For ESP32C2, ESP32C6 and ESP32H2, each extended advertising instance 597 will take about 0.5k DRAM. 598 599 config BT_NIMBLE_EXT_ADV_MAX_SIZE 600 int "Maximum length of the advertising data." 601 range 0 1650 602 default 1650 if BT_NIMBLE_EXT_ADV 603 default 0 604 depends on BT_NIMBLE_EXT_ADV 605 help 606 Defines the length of the extended adv data. The value should not 607 exceed 1650. 608 609 config BT_NIMBLE_ENABLE_PERIODIC_ADV 610 bool "Enable periodic advertisement." 611 default y 612 depends on BT_NIMBLE_EXT_ADV 613 help 614 Enable this option to start periodic advertisement. 615 616 config BT_NIMBLE_PERIODIC_ADV_ENH 617 bool "Periodic adv enhancements(adi support)" 618 depends on BT_NIMBLE_ENABLE_PERIODIC_ADV && SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED 619 help 620 Enable the periodic advertising enhancements 621 622 config BT_NIMBLE_PERIODIC_ADV_SYNC_TRANSFER 623 bool "Enable Transfer Sync Events" 624 depends on BT_NIMBLE_ENABLE_PERIODIC_ADV 625 default y 626 help 627 This enables controller transfer periodic sync events to host 628 629 config BT_NIMBLE_PERIODIC_ADV_WITH_RESPONSES 630 bool "Enable Periodic Advertisement with Response (EXPERIMENTAL)" 631 depends on BT_NIMBLE_ENABLE_PERIODIC_ADV 632 default n 633 help 634 This enables controller PAwR (Periodic Advertisement with Response). 635 endif 636 637 config BT_NIMBLE_EXT_SCAN 638 bool "Enable extended scanning" 639 depends on BT_NIMBLE_50_FEATURE_SUPPORT && BT_NIMBLE_ROLE_OBSERVER 640 default y 641 help 642 Enable this option to do extended scanning. 643 644 config BT_NIMBLE_ENABLE_PERIODIC_SYNC 645 bool "Enable periodic sync" 646 default y 647 depends on BT_NIMBLE_EXT_SCAN 648 help 649 Enable this option to receive periodic advertisement. 650 651 if BT_NIMBLE_ENABLE_PERIODIC_SYNC 652 config BT_NIMBLE_MAX_PERIODIC_SYNCS 653 int "Maximum number of periodic advertising syncs" 654 range 0 3 if IDF_TARGET_ESP32C2 655 range 0 8 656 default 1 if BT_NIMBLE_ENABLE_PERIODIC_ADV 657 default 0 658 help 659 Set this option to set the upper limit for number of periodic sync 660 connections. This should be less than maximum connections allowed by 661 controller. 662 663 config BT_NIMBLE_MAX_PERIODIC_ADVERTISER_LIST 664 int "Maximum number of periodic advertiser list" 665 depends on SOC_ESP_NIMBLE_CONTROLLER 666 range 1 5 667 default 5 if BT_NIMBLE_50_FEATURE_SUPPORT 668 help 669 Set this option to set the upper limit for number of periodic advertiser list. 670 endif 671 672 config BT_NIMBLE_BLE_POWER_CONTROL 673 bool "Enable support for BLE Power Control" 674 depends on BT_NIMBLE_50_FEATURE_SUPPORT && SOC_BLE_POWER_CONTROL_SUPPORTED 675 default n 676 help 677 Set this option to enable the Power Control feature 678 679 menuconfig BT_NIMBLE_GATT_CACHING 680 bool "Enable GATT caching" 681 depends on BT_NIMBLE_ENABLED && BT_NIMBLE_50_FEATURE_SUPPORT 682 select BT_NIMBLE_DYNAMIC_SERVICE 683 help 684 Enable GATT caching 685 config BT_NIMBLE_GATT_CACHING_MAX_CONNS 686 int "Maximum connections to be cached" 687 depends on BT_NIMBLE_GATT_CACHING 688 default 1 689 help 690 Set this option to set the upper limit on number of connections to be cached. 691 config BT_NIMBLE_GATT_CACHING_MAX_SVCS 692 int "Maximum number of services per connection" 693 depends on BT_NIMBLE_GATT_CACHING 694 default 64 695 help 696 Set this option to set the upper limit on number of services per connection to be cached. 697 config BT_NIMBLE_GATT_CACHING_MAX_CHRS 698 int "Maximum number of characteristics per connection" 699 depends on BT_NIMBLE_GATT_CACHING 700 default 64 701 help 702 Set this option to set the upper limit on number of characteristics per connection to be cached. 703 config BT_NIMBLE_GATT_CACHING_MAX_DSCS 704 int "Maximum number of descriptors per connection" 705 depends on BT_NIMBLE_GATT_CACHING 706 default 64 707 help 708 Set this option to set the upper limit on number of descriptors per connection to be cached. 709 config BT_NIMBLE_GATT_CACHING_DISABLE_AUTO 710 bool "Do not start discovery procedure automatically upon receiving Out of Sync" 711 depends on BT_NIMBLE_GATT_CACHING 712 default n 713 help 714 When client receives ATT out-of-sync error message, it will not automatically start the discovery procedure 715 to correct the invalid cache. 716endif 717 718 719config BT_NIMBLE_WHITELIST_SIZE 720 int "BLE white list size" 721 depends on BT_NIMBLE_ENABLED 722 range 1 15 723 default 12 724 help 725 BLE list size 726 727config BT_NIMBLE_TEST_THROUGHPUT_TEST 728 bool "Throughput Test Mode enable" 729 default n 730 help 731 Enable the throughput test mode 732 733config BT_NIMBLE_BLUFI_ENABLE 734 bool "Enable blufi functionality" 735 depends on BT_NIMBLE_ENABLED 736 default n 737 help 738 Set this option to enable blufi functionality. 739 740config BT_NIMBLE_USE_ESP_TIMER 741 bool "Enable Esp Timer for Nimble" 742 default y 743 help 744 Set this option to use Esp Timer which has higher priority timer instead of FreeRTOS timer 745 746config BT_NIMBLE_LEGACY_VHCI_ENABLE 747 bool 748 default y if (IDF_TARGET_ESP32 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3) 749 default n 750 help 751 This option is used to distinguish whether a previous version of VHCI is being used 752 753config BT_NIMBLE_BLE_GATT_BLOB_TRANSFER 754 bool "Blob transfer" 755 help 756 This option is used when data to be sent is more than 512 bytes. For peripheral role, 757 BT_NIMBLE_MSYS_1_BLOCK_COUNT needs to be increased according to the need. 758 759menu "GAP Service" 760 menu "GAP Appearance write permissions" 761 config BT_NIMBLE_SVC_GAP_APPEAR_WRITE 762 bool "Write" 763 default n 764 help 765 Enable write permission (BLE_GATT_CHR_F_WRITE) 766 767 config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_ENC 768 depends on BT_NIMBLE_SVC_GAP_APPEAR_WRITE 769 bool "Write with encryption" 770 default n 771 help 772 Enable write with encryption permission (BLE_GATT_CHR_F_WRITE_ENC) 773 774 config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHEN 775 depends on BT_NIMBLE_SVC_GAP_APPEAR_WRITE 776 bool "Write with authentication" 777 default n 778 help 779 Enable write with authentication permission (BLE_GATT_CHR_F_WRITE_AUTHEN) 780 781 config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHOR 782 depends on BT_NIMBLE_SVC_GAP_APPEAR_WRITE 783 bool "Write with authorisation" 784 default n 785 help 786 Enable write with authorisation permission (BLE_GATT_CHR_F_WRITE_AUTHOR) 787 endmenu 788 789 config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM 790 int 791 default 0 if !BT_NIMBLE_SVC_GAP_APPEAR_WRITE 792 default 8 if BT_NIMBLE_SVC_GAP_APPEAR_WRITE 793 794 config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ENC 795 int 796 default 0 if !BT_NIMBLE_SVC_GAP_APPEAR_WRITE_ENC 797 default 4096 if BT_NIMBLE_SVC_GAP_APPEAR_WRITE_ENC 798 799 config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ATHN 800 int 801 default 0 if !BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHEN 802 default 8192 if BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHEN 803 804 config BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ATHR 805 int 806 default 0 if !BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHOR 807 default 16384 if BT_NIMBLE_SVC_GAP_APPEAR_WRITE_AUTHOR 808 809 choice BT_NIMBLE_SVC_GAP_CENT_ADDR_RESOLUTION 810 prompt "GAP Characteristic - Central Address Resolution" 811 default BT_NIMBLE_SVC_GAP_CAR_CHAR_NOT_SUPP 812 help 813 Weather or not Central Address Resolution characteristic is supported on 814 the device, and if supported, weather or not Central Address Resolution 815 is supported. 816 817 - Central Address Resolution characteristic not supported 818 - Central Address Resolution not supported 819 - Central Address Resolution supported 820 821 config BT_NIMBLE_SVC_GAP_CAR_CHAR_NOT_SUPP 822 bool "Characteristic not supported" 823 824 config BT_NIMBLE_SVC_GAP_CAR_NOT_SUPP 825 bool "Central Address Resolution not supported" 826 827 config BT_NIMBLE_SVC_GAP_CAR_SUPP 828 bool "Central Address Resolution supported" 829 endchoice 830 831 config BT_NIMBLE_SVC_GAP_CENT_ADDR_RESOLUTION 832 int 833 default -1 if BT_NIMBLE_SVC_GAP_CAR_CHAR_NOT_SUPP 834 default 0 if BT_NIMBLE_SVC_GAP_CAR_NOT_SUPP 835 default 1 if BT_NIMBLE_SVC_GAP_CAR_SUPP 836 837 menu "GAP device name write permissions" 838 config BT_NIMBLE_SVC_GAP_NAME_WRITE 839 bool "Write" 840 default n 841 help 842 Enable write permission (BLE_GATT_CHR_F_WRITE) 843 844 config BT_NIMBLE_SVC_GAP_NAME_WRITE_ENC 845 depends on BT_NIMBLE_SVC_GAP_NAME_WRITE 846 bool "Write with encryption" 847 default n 848 help 849 Enable write with encryption permission (BLE_GATT_CHR_F_WRITE_ENC) 850 851 config BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHEN 852 depends on BT_NIMBLE_SVC_GAP_NAME_WRITE 853 bool "Write with authentication" 854 default n 855 help 856 Enable write with authentication permission (BLE_GATT_CHR_F_WRITE_AUTHEN) 857 858 config BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHOR 859 depends on BT_NIMBLE_SVC_GAP_NAME_WRITE 860 bool "Write with authorisation" 861 default n 862 help 863 Enable write with authorisation permission (BLE_GATT_CHR_F_WRITE_AUTHOR) 864 endmenu 865 866 config BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM 867 int 868 default 0 if !BT_NIMBLE_SVC_GAP_NAME_WRITE 869 default 8 if BT_NIMBLE_SVC_GAP_NAME_WRITE 870 871 config BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_ENC 872 int 873 default 0 if !BT_NIMBLE_SVC_GAP_NAME_WRITE_ENC 874 default 4096 if BT_NIMBLE_SVC_GAP_NAME_WRITE_ENC 875 876 config BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_AUTHEN 877 int 878 default 0 if !BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHEN 879 default 8192 if BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHEN 880 881 config BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_AUTHOR 882 int 883 default 0 if !BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHOR 884 default 16384 if BT_NIMBLE_SVC_GAP_NAME_WRITE_AUTHOR 885 886 config BT_NIMBLE_SVC_GAP_PPCP_MAX_CONN_INTERVAL 887 int "PPCP Connection Interval Max (Unit: 1.25 ms)" 888 depends on BT_NIMBLE_ROLE_PERIPHERAL 889 default 0 890 help 891 Peripheral Preferred Connection Parameter: Connection Interval maximum value 892 Interval Max = value * 1.25 ms 893 894 config BT_NIMBLE_SVC_GAP_PPCP_MIN_CONN_INTERVAL 895 int "PPCP Connection Interval Min (Unit: 1.25 ms)" 896 depends on BT_NIMBLE_ROLE_PERIPHERAL 897 default 0 898 help 899 Peripheral Preferred Connection Parameter: Connection Interval minimum value 900 Interval Min = value * 1.25 ms 901 902 config BT_NIMBLE_SVC_GAP_PPCP_SLAVE_LATENCY 903 int "PPCP Slave Latency" 904 default 0 905 help 906 Peripheral Preferred Connection Parameter: Slave Latency 907 908 config BT_NIMBLE_SVC_GAP_PPCP_SUPERVISION_TMO 909 int "PPCP Supervision Timeout (Uint: 10 ms)" 910 default 0 911 help 912 Peripheral Preferred Connection Parameter: Supervision Timeout 913 Timeout = Value * 10 ms 914 915 config BT_NIMBLE_SVC_GAP_GATT_SECURITY_LEVEL 916 bool "LE GATT Security Level Characteristic" 917 default n 918 help 919 Enable the LE GATT Security Level Characteristic 920 921endmenu 922 923menu "BLE Services" 924 menuconfig BT_NIMBLE_HID_SERVICE 925 bool "HID service" 926 depends on BT_NIMBLE_ENABLED 927 default n 928 help 929 Enable HID service support 930 931 config BT_NIMBLE_SVC_HID_MAX_INSTANCES 932 depends on BT_NIMBLE_HID_SERVICE 933 int "Maximum HID service instances" 934 default 2 935 help 936 Defines maximum number of HID service instances 937 938 config BT_NIMBLE_SVC_HID_MAX_RPTS 939 depends on BT_NIMBLE_HID_SERVICE 940 int "Maximum HID Report characteristics per service instance" 941 default 3 942 help 943 Defines maximum number of report characteristics per service instance 944 945 config BT_NIMBLE_SVC_BAS_BATTERY_LEVEL_NOTIFY 946 depends on BT_NIMBLE_ENABLED 947 bool "BAS Battery Level NOTIFY permission" 948 default n 949 help 950 Enable/Disable notifications on BAS Battery Level Characteristic 951 952 menu "Device Information Service" 953 config BT_NIMBLE_SVC_DIS_MANUFACTURER_NAME 954 depends on BT_NIMBLE_ENABLED 955 bool "Manufacturer Name" 956 default n 957 help 958 Enable the DIS characteristic Manufacturer Name String characteristic 959 960 config BT_NIMBLE_SVC_DIS_SERIAL_NUMBER 961 depends on BT_NIMBLE_ENABLED 962 bool "Serial Number" 963 default n 964 help 965 Enable the DIS Serial Number characteristic 966 967 config BT_NIMBLE_SVC_DIS_HARDWARE_REVISION 968 depends on BT_NIMBLE_ENABLED 969 bool "Hardware Revision" 970 default n 971 help 972 Enable the DIS Hardware Revision characteristic 973 974 config BT_NIMBLE_SVC_DIS_FIRMWARE_REVISION 975 depends on BT_NIMBLE_ENABLED 976 bool "Firmware Revision" 977 default n 978 help 979 Enable the DIS Firmware Revision characteristic 980 981 config BT_NIMBLE_SVC_DIS_SOFTWARE_REVISION 982 depends on BT_NIMBLE_ENABLED 983 bool "Software Revision" 984 default n 985 help 986 Enable the DIS Software Revision characteristic 987 988 config BT_NIMBLE_SVC_DIS_SYSTEM_ID 989 depends on BT_NIMBLE_ENABLED 990 bool "System ID" 991 default n 992 help 993 Enable the DIS System ID characteristic 994 995 config BT_NIMBLE_SVC_DIS_PNP_ID 996 depends on BT_NIMBLE_ENABLED 997 bool "PnP ID" 998 default n 999 help 1000 Enable the DIS PnP ID characteristic 1001 1002 config BT_NIMBLE_SVC_DIS_INCLUDED 1003 depends on BT_NIMBLE_ENABLED 1004 bool "DIS as an Included Service" 1005 default n 1006 help 1007 Use DIS as an included service 1008 endmenu 1009endmenu 1010 1011config BT_NIMBLE_VS_SUPPORT 1012 bool "Enable support for VSC and VSE" 1013 help 1014 This option is used to enable support for sending Vendor Specific HCI commands and handling 1015 Vendor Specific HCI Events. 1016 1017config BT_NIMBLE_OPTIMIZE_MULTI_CONN 1018 bool "Enable the optimization of multi-connection" 1019 depends on SOC_BLE_MULTI_CONN_OPTIMIZATION 1020 select BT_NIMBLE_VS_SUPPORT 1021 default n 1022 help 1023 This option enables the use of vendor-specific APIs for multi-connections, which can 1024 greatly enhance the stability of coexistence between numerous central and peripheral 1025 devices. It will prohibit the usage of standard APIs. 1026 1027config BT_NIMBLE_ENC_ADV_DATA 1028 bool "Encrypted Advertising Data" 1029 help 1030 This option is used to enable encrypted advertising data. 1031 1032config BT_NIMBLE_MAX_EADS 1033 int "Maximum number of EAD devices to save across reboots" 1034 default 10 1035 depends on BT_NIMBLE_ENABLED && BT_NIMBLE_ENC_ADV_DATA 1036 help 1037 Defines maximum number of encrypted advertising data key material to save 1038 1039config BT_NIMBLE_HIGH_DUTY_ADV_ITVL 1040 bool "Enable BLE high duty advertising interval feature" 1041 depends on BT_NIMBLE_ENABLED 1042 help 1043 This enable BLE high duty advertising interval feature 1044 1045config BT_NIMBLE_HOST_ALLOW_CONNECT_WITH_SCAN 1046 bool "Allow Connections with scanning in progress" 1047 depends on BT_NIMBLE_ENABLED && (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3) 1048 help 1049 This enables support for user to initiate a new connection with scan in progress 1050 1051config BT_NIMBLE_HOST_QUEUE_CONG_CHECK 1052 bool "BLE queue congestion check" 1053 depends on BT_NIMBLE_ENABLED 1054 default n 1055 help 1056 When scanning and scan duplicate is not enabled, if there are a lot of adv packets around 1057 or application layer handling adv packets is slow, it will cause the controller memory 1058 to run out. if enabled, adv packets will be lost when host queue is congested. 1059 1060menu "Host-controller Transport" 1061 config BT_NIMBLE_TRANSPORT_UART 1062 bool "Enable Uart Transport" 1063 default y 1064 depends on BT_CONTROLLER_DISABLED 1065 help 1066 Use UART transport 1067 1068 config BT_NIMBLE_TRANSPORT_UART_PORT 1069 int "Uart port" 1070 depends on BT_CONTROLLER_DISABLED && BT_NIMBLE_TRANSPORT_UART 1071 default 1 1072 help 1073 Uart port 1074 1075 choice BT_NIMBLE_HCI_USE_UART_BAUDRATE 1076 prompt "Uart Hci Baud Rate" 1077 default UART_BAUDRATE_921600 1078 depends on BT_CONTROLLER_DISABLED && BT_NIMBLE_TRANSPORT_UART 1079 help 1080 Uart Baud Rate 1081 1082 config UART_BAUDRATE_115200 1083 bool "115200" 1084 config UART_BAUDRATE_230400 1085 bool "230400" 1086 config UART_BAUDRATE_460800 1087 bool "460800" 1088 config UART_BAUDRATE_921600 1089 bool "921600" 1090 endchoice 1091 1092 config BT_NIMBLE_HCI_UART_BAUDRATE 1093 depends on BT_CONTROLLER_DISABLED && BT_NIMBLE_TRANSPORT_UART 1094 int 1095 default 115200 if UART_BAUDRATE_115200 1096 default 230400 if UART_BAUDRATE_230400 1097 default 460800 if UART_BAUDRATE_460800 1098 default 921600 if UART_BAUDRATE_921600 1099 1100 choice BT_NIMBLE_USE_HCI_UART_PARITY 1101 prompt "Uart PARITY" 1102 default UART_PARITY_NONE 1103 depends on BT_CONTROLLER_DISABLED && BT_NIMBLE_TRANSPORT_UART 1104 help 1105 Uart Parity 1106 1107 config UART_PARITY_NONE 1108 bool "None" 1109 config UART_PARITY_ODD 1110 bool "Odd" 1111 config UART_PARITY_EVEN 1112 bool "Even" 1113 endchoice 1114 1115 config BT_NIMBLE_TRANSPORT_UART_PARITY_NONE 1116 int 1117 default 0 if !UART_PARITY_NONE 1118 default 1 if UART_PARITY_NONE 1119 depends on BT_CONTROLLER_DISABLED && BT_NIMBLE_TRANSPORT_UART 1120 1121 config BT_NIMBLE_TRANSPORT_UART_PARITY_ODD 1122 int 1123 default 0 if !UART_PARITY_ODD 1124 default 1 if UART_PARITY_ODD 1125 depends on BT_CONTROLLER_DISABLED && BT_NIMBLE_TRANSPORT_UART 1126 1127 config BT_NIMBLE_TRANSPORT_UART_PARITY_EVEN 1128 int 1129 default 0 if !UART_PARITY_EVEN 1130 default 1 if UART_PARITY_EVEN 1131 depends on BT_CONTROLLER_DISABLED && BT_NIMBLE_TRANSPORT_UART 1132 1133 config BT_NIMBLE_UART_RX_PIN 1134 int "UART Rx pin" 1135 depends on BT_CONTROLLER_DISABLED && BT_NIMBLE_TRANSPORT_UART 1136 default 5 1137 help 1138 Rx pin for Nimble Transport 1139 1140 config BT_NIMBLE_UART_TX_PIN 1141 int "UART Tx pin" 1142 depends on BT_CONTROLLER_DISABLED && BT_NIMBLE_TRANSPORT_UART 1143 default 4 1144 help 1145 Tx pin for Nimble Transport 1146 1147 choice BT_NIMBLE_USE_HCI_UART_FLOW_CTRL 1148 prompt "Uart Flow Control" 1149 default UART_HW_FLOWCTRL_DISABLE 1150 help 1151 Uart Flow Control 1152 1153 config UART_HW_FLOWCTRL_DISABLE 1154 bool "Disable" 1155 config UART_HW_FLOWCTRL_CTS_RTS 1156 bool "Enable hardware flow control" 1157 endchoice 1158 1159 config BT_NIMBLE_HCI_UART_FLOW_CTRL 1160 int 1161 default 0 if UART_HW_FLOWCTRL_DISABLE 1162 default 1 if UART_HW_FLOWCTRL_CTS_RTS 1163 1164 config BT_NIMBLE_HCI_UART_RTS_PIN 1165 int "UART Rts Pin" 1166 default 19 1167 help 1168 UART HCI RTS pin 1169 1170 config BT_NIMBLE_HCI_UART_CTS_PIN 1171 int "UART Cts Pin" 1172 default 23 1173 help 1174 UART HCI CTS pin 1175endmenu 1176 1177config BT_NIMBLE_EATT_CHAN_NUM 1178 int "Maximum number of EATT channels" 1179 default 0 1180 depends on BT_NIMBLE_ENABLED 1181 help 1182 Defines the number of channels EATT bearers can use 1183 1184config BT_NIMBLE_SUBRATE 1185 bool "Enable Subrate Change" 1186 default n 1187 depends on BT_NIMBLE_ENABLED 1188 help 1189 Enable connection subrate change feature 1190