Kconfig 110 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889
  1. menu Bluetooth
  2. config BT_ENABLED
  3. bool "Bluetooth"
  4. help
  5. Select this option to enable Bluetooth and show the submenu with Bluetooth configuration choices.
  6. menu "Bluetooth controller"
  7. visible if BT_ENABLED
  8. choice BTDM_CONTROLLER_MODE
  9. prompt "Bluetooth controller mode (BR/EDR/BLE/DUALMODE)"
  10. depends on BT_ENABLED
  11. help
  12. Specify the bluetooth controller mode (BR/EDR, BLE or dual mode).
  13. config BTDM_CONTROLLER_MODE_BLE_ONLY
  14. bool "BLE Only"
  15. config BTDM_CONTROLLER_MODE_BR_EDR_ONLY
  16. bool "BR/EDR Only"
  17. config BTDM_CONTROLLER_MODE_BTDM
  18. bool "Bluetooth Dual Mode"
  19. endchoice
  20. config BTDM_CONTROLLER_BLE_MAX_CONN
  21. int "BLE Max Connections"
  22. depends on BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM
  23. default 3
  24. range 1 9
  25. help
  26. BLE maximum connections of bluetooth controller.
  27. Each connection uses 1KB static DRAM whenever the BT controller is enabled.
  28. config BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN
  29. int "BR/EDR ACL Max Connections"
  30. depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
  31. default 2
  32. range 1 7
  33. help
  34. BR/EDR ACL maximum connections of bluetooth controller.
  35. Each connection uses 1.2KB static DRAM whenever the BT controller is enabled.
  36. config BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN
  37. int "BR/EDR Sync(SCO/eSCO) Max Connections"
  38. depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
  39. default 0
  40. range 0 3
  41. help
  42. BR/EDR Synchronize maximum connections of bluetooth controller.
  43. Each connection uses 2KB static DRAM whenever the BT controller is enabled.
  44. choice BTDM_CTRL_BR_EDR_SCO_DATA_PATH
  45. prompt "BR/EDR Sync(SCO/eSCO) default data path"
  46. depends on BTDM_CTRL_MODE_BR_EDR_ONLY || BTDM_CTRL_MODE_BTDM
  47. default BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
  48. help
  49. SCO data path, i.e. HCI or PCM.
  50. SCO data can be sent/received through HCI synchronous packets, or the data
  51. can be routed to on-chip PCM module on ESP32. PCM input/output signals can
  52. be "matrixed" to GPIOs. The default data path can also be set using API
  53. "esp_bredr_sco_datapath_set"
  54. config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_HCI
  55. bool "HCI"
  56. config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
  57. bool "PCM"
  58. endchoice
  59. config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF
  60. int
  61. default 0 if BTDM_CTRL_BR_EDR_SCO_DATA_PATH_HCI
  62. default 1 if BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
  63. default 0
  64. config BTDM_CTRL_AUTO_LATENCY
  65. bool "Auto latency"
  66. depends on BTDM_CONTROLLER_MODE_BTDM
  67. default n
  68. help
  69. BLE auto latency, used to enhance classic BT performance
  70. while classic BT and BLE are enabled at the same time.
  71. config BTDM_CTRL_AUTO_LATENCY_EFF
  72. bool
  73. default BTDM_CTRL_AUTO_LATENCY if BTDM_CONTROLLER_MODE_BTDM
  74. default n
  75. config BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT
  76. bool "Legacy Authentication Vendor Specific Event Enable"
  77. depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
  78. default y
  79. help
  80. To protect from BIAS attack during Legacy authentication,
  81. Legacy authentication Vendor specific event should be enabled
  82. config BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF
  83. bool
  84. default BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
  85. default 0
  86. config BTDM_CONTROLLER_BLE_MAX_CONN_EFF
  87. int
  88. default BTDM_CONTROLLER_BLE_MAX_CONN if BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM
  89. default 0
  90. config BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF
  91. int
  92. default BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM # NOERROR
  93. default 0
  94. config BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF
  95. int
  96. default BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM # NOERROR
  97. default 0
  98. choice BTDM_CONTROLLER_PINNED_TO_CORE_CHOICE
  99. prompt "The cpu core which bluetooth controller run"
  100. depends on BT_ENABLED && !FREERTOS_UNICORE
  101. help
  102. Specify the cpu core to run bluetooth controller.
  103. Can not specify no-affinity.
  104. config BTDM_CONTROLLER_PINNED_TO_CORE_0
  105. bool "Core 0 (PRO CPU)"
  106. config BTDM_CONTROLLER_PINNED_TO_CORE_1
  107. bool "Core 1 (APP CPU)"
  108. depends on !FREERTOS_UNICORE
  109. endchoice
  110. config BTDM_CONTROLLER_PINNED_TO_CORE
  111. int
  112. default 0 if BTDM_CONTROLLER_PINNED_TO_CORE_0
  113. default 1 if BTDM_CONTROLLER_PINNED_TO_CORE_1
  114. default 0
  115. choice BTDM_CONTROLLER_HCI_MODE_CHOICE
  116. prompt "HCI mode"
  117. depends on BT_ENABLED
  118. help
  119. Speicify HCI mode as VHCI or UART(H4)
  120. config BTDM_CONTROLLER_HCI_MODE_VHCI
  121. bool "VHCI"
  122. help
  123. Normal option. Mostly, choose this VHCI when bluetooth host run on ESP32, too.
  124. config BTDM_CONTROLLER_HCI_MODE_UART_H4
  125. bool "UART(H4)"
  126. help
  127. If use external bluetooth host which run on other hardware and use UART as the HCI interface,
  128. choose this option.
  129. endchoice
  130. menu "HCI UART(H4) Options"
  131. visible if BTDM_CONTROLLER_HCI_MODE_UART_H4
  132. config BT_HCI_UART_NO
  133. int "UART Number for HCI"
  134. depends on BTDM_CONTROLLER_HCI_MODE_UART_H4
  135. range 1 2
  136. default 1
  137. help
  138. Uart number for HCI. The available uart is UART1 and UART2.
  139. config BT_HCI_UART_BAUDRATE
  140. int "UART Baudrate for HCI"
  141. depends on BTDM_CONTROLLER_HCI_MODE_UART_H4
  142. range 115200 921600
  143. default 921600
  144. help
  145. UART Baudrate for HCI. Please use standard baudrate.
  146. endmenu
  147. menu "MODEM SLEEP Options"
  148. visible if BT_ENABLED
  149. config BTDM_CONTROLLER_MODEM_SLEEP
  150. bool "Bluetooth modem sleep"
  151. depends on BT_ENABLED
  152. default y
  153. help
  154. Enable/disable bluetooth controller low power mode.
  155. choice BTDM_MODEM_SLEEP_MODE
  156. prompt "Bluetooth Modem sleep mode"
  157. depends on BTDM_CONTROLLER_MODEM_SLEEP
  158. help
  159. To select which strategy to use for modem sleep
  160. config BTDM_MODEM_SLEEP_MODE_ORIG
  161. bool "ORIG Mode(sleep with low power clock)"
  162. help
  163. ORIG mode is a bluetooth sleep mode that can be used for dual mode controller. In this mode,
  164. bluetooth controller sleeps between BR/EDR frames and BLE events. A low power clock is used to
  165. maintain bluetooth reference clock.
  166. config BTDM_MODEM_SLEEP_MODE_EVED
  167. bool "EVED Mode(For internal test only)"
  168. help
  169. EVED mode is for BLE only and is only for internal test. Do not use it for production. this
  170. mode is not compatible with DFS nor light sleep
  171. endchoice
  172. choice BTDM_LOW_POWER_CLOCK
  173. prompt "Bluetooth low power clock"
  174. depends on BTDM_MODEM_SLEEP_MODE_ORIG
  175. help
  176. Select the low power clock source for bluetooth controller
  177. config BTDM_LPCLK_SEL_MAIN_XTAL
  178. bool "Main crystal"
  179. help
  180. Main crystal can be used as low power clock for bluetooth modem sleep. If this option is
  181. selected, bluetooth modem sleep can work under Dynamic Frequency Scaling(DFS) enabled, but
  182. cannot work when light sleep is enabled. Main crystal has a relatively better performance than
  183. other bluetooth low power clock sources.
  184. config BTDM_LPCLK_SEL_EXT_32K_XTAL
  185. bool "External 32kHz crystal"
  186. depends on ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL
  187. endchoice
  188. endmenu
  189. config BLE_SCAN_DUPLICATE
  190. bool "BLE Scan Duplicate Options"
  191. depends on (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
  192. default y
  193. help
  194. This select enables parameters setting of BLE scan duplicate.
  195. choice SCAN_DUPLICATE_TYPE
  196. prompt "Scan Duplicate Type"
  197. default SCAN_DUPLICATE_BY_DEVICE_ADDR
  198. depends on BLE_SCAN_DUPLICATE
  199. help
  200. Scan duplicate have three ways. one is "Scan Duplicate By Device Address", This way is to use
  201. advertiser address filtering. The adv packet of the same address is only allowed to be reported once.
  202. Another way is "Scan Duplicate By Device Address And Advertising Data". This way is to use advertising
  203. data and device address filtering. All different adv packets with the same address are allowed to be
  204. reported. The last way is "Scan Duplicate By Advertising Data". This way is to use advertising data
  205. filtering. All same advertising data only allow to be reported once even though they are from
  206. different devices.
  207. config SCAN_DUPLICATE_BY_DEVICE_ADDR
  208. bool "Scan Duplicate By Device Address"
  209. help
  210. This way is to use advertiser address filtering. The adv packet of the same address is only
  211. allowed to be reported once
  212. config SCAN_DUPLICATE_BY_ADV_DATA
  213. bool "Scan Duplicate By Advertising Data"
  214. help
  215. This way is to use advertising data filtering. All same advertising data only allow to be reported
  216. once even though they are from different devices.
  217. config SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR
  218. bool "Scan Duplicate By Device Address And Advertising Data"
  219. help
  220. This way is to use advertising data and device address filtering. All different adv packets with
  221. the same address are allowed to be reported.
  222. endchoice
  223. config SCAN_DUPLICATE_TYPE
  224. int
  225. depends on BLE_SCAN_DUPLICATE
  226. default 0 if SCAN_DUPLICATE_BY_DEVICE_ADDR
  227. default 1 if SCAN_DUPLICATE_BY_ADV_DATA
  228. default 2 if SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR
  229. default 0
  230. config DUPLICATE_SCAN_CACHE_SIZE
  231. int "Maximum number of devices in scan duplicate filter"
  232. depends on BLE_SCAN_DUPLICATE
  233. range 10 1000
  234. default 200
  235. help
  236. Maximum number of devices which can be recorded in scan duplicate filter.
  237. When the maximum amount of device in the filter is reached, the cache will be refreshed.
  238. config BLE_MESH_SCAN_DUPLICATE_EN
  239. bool "Special duplicate scan mechanism for BLE Mesh scan"
  240. depends on BLE_SCAN_DUPLICATE
  241. default n
  242. help
  243. This enables the BLE scan duplicate for special BLE Mesh scan.
  244. config MESH_DUPLICATE_SCAN_CACHE_SIZE
  245. int "Maximum number of Mesh adv packets in scan duplicate filter"
  246. depends on BLE_MESH_SCAN_DUPLICATE_EN
  247. range 10 1000
  248. default 200
  249. help
  250. Maximum number of adv packets which can be recorded in duplicate scan cache for BLE Mesh.
  251. When the maximum amount of device in the filter is reached, the cache will be refreshed.
  252. config BTDM_CONTROLLER_FULL_SCAN_SUPPORTED
  253. bool "BLE full scan feature supported"
  254. depends on BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM
  255. default y
  256. help
  257. The full scan function is mainly used to provide BLE scan performance.
  258. This is required for scenes with high scan performance requirements, such as BLE Mesh scenes.
  259. config BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED
  260. bool "BLE adv report flow control supported"
  261. depends on (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
  262. default y
  263. help
  264. The function is mainly used to enable flow control for advertising reports. When it is enabled,
  265. advertising reports will be discarded by the controller if the number of unprocessed advertising
  266. reports exceeds the size of BLE adv report flow control.
  267. config BLE_ADV_REPORT_FLOW_CONTROL_NUM
  268. int "BLE adv report flow control number"
  269. depends on BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED
  270. range 50 1000
  271. default 100
  272. help
  273. The number of unprocessed advertising report that Bluedroid can save.If you set
  274. `BLE_ADV_REPORT_FLOW_CONTROL_NUM` to a small value, this may cause adv packets lost.
  275. If you set `BLE_ADV_REPORT_FLOW_CONTROL_NUM` to a large value, Bluedroid may cache a
  276. lot of adv packets and this may cause system memory run out. For example, if you set
  277. it to 50, the maximum memory consumed by host is 35 * 50 bytes. Please set
  278. `BLE_ADV_REPORT_FLOW_CONTROL_NUM` according to your system free memory and handle adv
  279. packets as fast as possible, otherwise it will cause adv packets lost.
  280. config BLE_ADV_REPORT_DISCARD_THRSHOLD
  281. int "BLE adv lost event threshold value"
  282. depends on BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED
  283. range 1 1000
  284. default 20
  285. help
  286. When adv report flow control is enabled, The ADV lost event will be generated when the number
  287. of ADV packets lost in the controller reaches this threshold. It is better to set a larger value.
  288. If you set `BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it
  289. may cause adv packets lost more.
  290. endmenu
  291. menuconfig BLUEDROID_ENABLED
  292. bool "Bluedroid Enable"
  293. depends on BTDM_CONTROLLER_HCI_MODE_VHCI
  294. default y
  295. help
  296. This enables the default Bluedroid Bluetooth stack
  297. choice BLUEDROID_PINNED_TO_CORE_CHOICE
  298. prompt "The cpu core which Bluedroid run"
  299. depends on BLUEDROID_ENABLED && !FREERTOS_UNICORE
  300. help
  301. Which the cpu core to run Bluedroid. Can choose core0 and core1.
  302. Can not specify no-affinity.
  303. config BLUEDROID_PINNED_TO_CORE_0
  304. bool "Core 0 (PRO CPU)"
  305. config BLUEDROID_PINNED_TO_CORE_1
  306. bool "Core 1 (APP CPU)"
  307. depends on !FREERTOS_UNICORE
  308. endchoice
  309. config BLUEDROID_PINNED_TO_CORE
  310. int
  311. depends on BLUEDROID_ENABLED
  312. default 0 if BLUEDROID_PINNED_TO_CORE_0
  313. default 1 if BLUEDROID_PINNED_TO_CORE_1
  314. default 0
  315. config BTC_TASK_STACK_SIZE
  316. int "Bluetooth event (callback to application) task stack size"
  317. depends on BLUEDROID_ENABLED
  318. default 3072
  319. help
  320. This select btc task stack size
  321. config BTU_TASK_STACK_SIZE
  322. int "Bluetooth Bluedroid Host Stack task stack size"
  323. depends on BLUEDROID_ENABLED
  324. default 4096
  325. help
  326. This select btu task stack size
  327. config BLUEDROID_MEM_DEBUG
  328. bool "Bluedroid memory debug"
  329. depends on BLUEDROID_ENABLED
  330. default n
  331. help
  332. Bluedroid memory debug
  333. config CLASSIC_BT_ENABLED
  334. bool "Classic Bluetooth"
  335. depends on BLUEDROID_ENABLED
  336. default n
  337. help
  338. For now this option needs "SMP_ENABLE" to be set to yes
  339. config A2DP_ENABLE
  340. bool "A2DP"
  341. depends on CLASSIC_BT_ENABLED
  342. default n
  343. help
  344. Advanced Audio Distrubution Profile
  345. config A2DP_SINK_TASK_STACK_SIZE
  346. int "A2DP sink (audio stream decoding) task stack size"
  347. depends on A2DP_ENABLE
  348. default 2048
  349. config A2DP_SOURCE_TASK_STACK_SIZE
  350. int "A2DP source (audio stream encoding) task stack size"
  351. depends on A2DP_ENABLE
  352. default 2048
  353. config BT_SPP_ENABLED
  354. bool "SPP"
  355. depends on CLASSIC_BT_ENABLED
  356. default n
  357. help
  358. This enables the Serial Port Profile
  359. config HFP_ENABLE
  360. bool "Hands Free/Handset Profile"
  361. depends on CLASSIC_BT_ENABLED
  362. default n
  363. choice HFP_ROLE
  364. prompt "Hands-free Profile Role configuration"
  365. depends on HFP_ENABLE
  366. config HFP_CLIENT_ENABLE
  367. bool "Hands Free Unit"
  368. endchoice
  369. choice HFP_AUDIO_DATA_PATH
  370. prompt "audio(SCO) data path"
  371. depends on HFP_ENABLE
  372. help
  373. SCO data path, i.e. HCI or PCM. This option is set using API
  374. "esp_bredr_sco_datapath_set" in Bluetooth host. Default SCO data
  375. path can also be set in Bluetooth Controller.
  376. config HFP_AUDIO_DATA_PATH_PCM
  377. bool "PCM"
  378. config HFP_AUDIO_DATA_PATH_HCI
  379. bool "HCI"
  380. endchoice
  381. config BT_SSP_ENABLED
  382. bool "Secure Simple Pairing"
  383. depends on CLASSIC_BT_ENABLED
  384. default y
  385. help
  386. This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing
  387. config GATTS_ENABLE
  388. bool "Include GATT server module(GATTS)"
  389. depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
  390. default y
  391. help
  392. This option can be disabled when the app work only on gatt client mode
  393. config GATTS_BLUFI_ENABLE
  394. bool "Include blufi function"
  395. depends on GATTS_ENABLE
  396. default y
  397. help
  398. This option can be close when the app does not require blufi function.
  399. choice GATTS_SEND_SERVICE_CHANGE_MODE
  400. prompt "GATTS Service Change Mode"
  401. default GATTS_SEND_SERVICE_CHANGE_AUTO
  402. depends on GATTS_ENABLE
  403. help
  404. Service change indication mode for GATT Server.
  405. config GATTS_SEND_SERVICE_CHANGE_MANUAL
  406. bool "GATTS manually send service change indication"
  407. help
  408. Manually send service change indication through API esp_ble_gatts_send_service_change_indication()
  409. config GATTS_SEND_SERVICE_CHANGE_AUTO
  410. bool "GATTS automatically send service change indication"
  411. help
  412. Let Bluedroid handle the service change indication internally
  413. endchoice
  414. config GATTS_SEND_SERVICE_CHANGE_MODE
  415. int
  416. depends on GATTS_ENABLE
  417. default 0 if GATTS_SEND_SERVICE_CHANGE_AUTO
  418. default 1 if GATTS_SEND_SERVICE_CHANGE_MANUAL
  419. default 0
  420. config GATTC_ENABLE
  421. bool "Include GATT client module(GATTC)"
  422. depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
  423. default y
  424. help
  425. This option can be close when the app work only on gatt server mode
  426. config GATTC_CACHE_NVS_FLASH
  427. bool "Save gattc cache data to nvs flash"
  428. depends on GATTC_ENABLE && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
  429. default n
  430. help
  431. This select can save gattc cache data to nvs flash
  432. config BLE_SMP_ENABLE
  433. bool "Include BLE security module(SMP)"
  434. depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
  435. default y
  436. help
  437. This option can be close when the app not used the ble security connect.
  438. config SMP_SLAVE_CON_PARAMS_UPD_ENABLE
  439. bool "Slave enable connection parameters update during pairing"
  440. depends on BLE_SMP_ENABLE
  441. default n
  442. help
  443. In order to reduce the pairing time, slave actively initiates connection parameters update during pairing.
  444. config BT_STACK_NO_LOG
  445. bool "Disable BT debug logs (minimize bin size)"
  446. depends on BLUEDROID_ENABLED
  447. default n
  448. help
  449. This select can save the rodata code size
  450. menu "BT DEBUG LOG LEVEL"
  451. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  452. choice HCI_INITIAL_TRACE_LEVEL
  453. prompt "HCI layer"
  454. default HCI_TRACE_LEVEL_WARNING
  455. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  456. help
  457. Define BT trace level for HCI layer
  458. config HCI_TRACE_LEVEL_NONE
  459. bool "NONE"
  460. config HCI_TRACE_LEVEL_ERROR
  461. bool "ERROR"
  462. config HCI_TRACE_LEVEL_WARNING
  463. bool "WARNING"
  464. config HCI_TRACE_LEVEL_API
  465. bool "API"
  466. config HCI_TRACE_LEVEL_EVENT
  467. bool "EVENT"
  468. config HCI_TRACE_LEVEL_DEBUG
  469. bool "DEBUG"
  470. config HCI_TRACE_LEVEL_VERBOSE
  471. bool "VERBOSE"
  472. endchoice
  473. config HCI_INITIAL_TRACE_LEVEL
  474. int
  475. depends on BLUEDROID_ENABLED
  476. default 0 if HCI_TRACE_LEVEL_NONE
  477. default 1 if HCI_TRACE_LEVEL_ERROR
  478. default 2 if HCI_TRACE_LEVEL_WARNING
  479. default 3 if HCI_TRACE_LEVEL_API
  480. default 4 if HCI_TRACE_LEVEL_EVENT
  481. default 5 if HCI_TRACE_LEVEL_DEBUG
  482. default 6 if HCI_TRACE_LEVEL_VERBOSE
  483. default 2
  484. choice BTM_INITIAL_TRACE_LEVEL
  485. prompt "BTM layer"
  486. default BTM_TRACE_LEVEL_WARNING
  487. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  488. help
  489. Define BT trace level for BTM layer
  490. config BTM_TRACE_LEVEL_NONE
  491. bool "NONE"
  492. config BTM_TRACE_LEVEL_ERROR
  493. bool "ERROR"
  494. config BTM_TRACE_LEVEL_WARNING
  495. bool "WARNING"
  496. config BTM_TRACE_LEVEL_API
  497. bool "API"
  498. config BTM_TRACE_LEVEL_EVENT
  499. bool "EVENT"
  500. config BTM_TRACE_LEVEL_DEBUG
  501. bool "DEBUG"
  502. config BTM_TRACE_LEVEL_VERBOSE
  503. bool "VERBOSE"
  504. endchoice
  505. config BTM_INITIAL_TRACE_LEVEL
  506. int
  507. depends on BLUEDROID_ENABLED
  508. default 0 if BTM_TRACE_LEVEL_NONE
  509. default 1 if BTM_TRACE_LEVEL_ERROR
  510. default 2 if BTM_TRACE_LEVEL_WARNING
  511. default 3 if BTM_TRACE_LEVEL_API
  512. default 4 if BTM_TRACE_LEVEL_EVENT
  513. default 5 if BTM_TRACE_LEVEL_DEBUG
  514. default 6 if BTM_TRACE_LEVEL_VERBOSE
  515. default 2
  516. choice L2CAP_INITIAL_TRACE_LEVEL
  517. prompt "L2CAP layer"
  518. default L2CAP_TRACE_LEVEL_WARNING
  519. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  520. help
  521. Define BT trace level for L2CAP layer
  522. config L2CAP_TRACE_LEVEL_NONE
  523. bool "NONE"
  524. config L2CAP_TRACE_LEVEL_ERROR
  525. bool "ERROR"
  526. config L2CAP_TRACE_LEVEL_WARNING
  527. bool "WARNING"
  528. config L2CAP_TRACE_LEVEL_API
  529. bool "API"
  530. config L2CAP_TRACE_LEVEL_EVENT
  531. bool "EVENT"
  532. config L2CAP_TRACE_LEVEL_DEBUG
  533. bool "DEBUG"
  534. config L2CAP_TRACE_LEVEL_VERBOSE
  535. bool "VERBOSE"
  536. endchoice
  537. config L2CAP_INITIAL_TRACE_LEVEL
  538. int
  539. depends on BLUEDROID_ENABLED
  540. default 0 if L2CAP_TRACE_LEVEL_NONE
  541. default 1 if L2CAP_TRACE_LEVEL_ERROR
  542. default 2 if L2CAP_TRACE_LEVEL_WARNING
  543. default 3 if L2CAP_TRACE_LEVEL_API
  544. default 4 if L2CAP_TRACE_LEVEL_EVENT
  545. default 5 if L2CAP_TRACE_LEVEL_DEBUG
  546. default 6 if L2CAP_TRACE_LEVEL_VERBOSE
  547. default 2
  548. choice RFCOMM_INITIAL_TRACE_LEVEL
  549. prompt "RFCOMM layer"
  550. default RFCOMM_TRACE_LEVEL_WARNING
  551. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  552. help
  553. Define BT trace level for RFCOMM layer
  554. config RFCOMM_TRACE_LEVEL_NONE
  555. bool "NONE"
  556. config RFCOMM_TRACE_LEVEL_ERROR
  557. bool "ERROR"
  558. config RFCOMM_TRACE_LEVEL_WARNING
  559. bool "WARNING"
  560. config RFCOMM_TRACE_LEVEL_API
  561. bool "API"
  562. config RFCOMM_TRACE_LEVEL_EVENT
  563. bool "EVENT"
  564. config RFCOMM_TRACE_LEVEL_DEBUG
  565. bool "DEBUG"
  566. config RFCOMM_TRACE_LEVEL_VERBOSE
  567. bool "VERBOSE"
  568. endchoice
  569. config RFCOMM_INITIAL_TRACE_LEVEL
  570. int
  571. depends on BLUEDROID_ENABLED
  572. default 0 if RFCOMM_TRACE_LEVEL_NONE
  573. default 1 if RFCOMM_TRACE_LEVEL_ERROR
  574. default 2 if RFCOMM_TRACE_LEVEL_WARNING
  575. default 3 if RFCOMM_TRACE_LEVEL_API
  576. default 4 if RFCOMM_TRACE_LEVEL_EVENT
  577. default 5 if RFCOMM_TRACE_LEVEL_DEBUG
  578. default 6 if RFCOMM_TRACE_LEVEL_VERBOSE
  579. default 2
  580. choice SDP_INITIAL_TRACE_LEVEL
  581. prompt "SDP layer"
  582. default SDP_TRACE_LEVEL_WARNING
  583. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  584. help
  585. Define BT trace level for SDP layer
  586. config SDP_TRACE_LEVEL_NONE
  587. bool "NONE"
  588. config SDP_TRACE_LEVEL_ERROR
  589. bool "ERROR"
  590. config SDP_TRACE_LEVEL_WARNING
  591. bool "WARNING"
  592. config SDP_TRACE_LEVEL_API
  593. bool "API"
  594. config SDP_TRACE_LEVEL_EVENT
  595. bool "EVENT"
  596. config SDP_TRACE_LEVEL_DEBUG
  597. bool "DEBUG"
  598. config SDP_TRACE_LEVEL_VERBOSE
  599. bool "VERBOSE"
  600. endchoice
  601. config SDP_INITIAL_TRACE_LEVEL
  602. int
  603. depends on BLUEDROID_ENABLED
  604. default 0 if SDP_TRACE_LEVEL_NONE
  605. default 1 if SDP_TRACE_LEVEL_ERROR
  606. default 2 if SDP_TRACE_LEVEL_WARNING
  607. default 3 if SDP_TRACE_LEVEL_API
  608. default 4 if SDP_TRACE_LEVEL_EVENT
  609. default 5 if SDP_TRACE_LEVEL_DEBUG
  610. default 6 if SDP_TRACE_LEVEL_VERBOSE
  611. default 2
  612. choice GAP_INITIAL_TRACE_LEVEL
  613. prompt "GAP layer"
  614. default GAP_TRACE_LEVEL_WARNING
  615. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  616. help
  617. Define BT trace level for GAP layer
  618. config GAP_TRACE_LEVEL_NONE
  619. bool "NONE"
  620. config GAP_TRACE_LEVEL_ERROR
  621. bool "ERROR"
  622. config GAP_TRACE_LEVEL_WARNING
  623. bool "WARNING"
  624. config GAP_TRACE_LEVEL_API
  625. bool "API"
  626. config GAP_TRACE_LEVEL_EVENT
  627. bool "EVENT"
  628. config GAP_TRACE_LEVEL_DEBUG
  629. bool "DEBUG"
  630. config GAP_TRACE_LEVEL_VERBOSE
  631. bool "VERBOSE"
  632. endchoice
  633. config GAP_INITIAL_TRACE_LEVEL
  634. int
  635. depends on BLUEDROID_ENABLED
  636. default 0 if GAP_TRACE_LEVEL_NONE
  637. default 1 if GAP_TRACE_LEVEL_ERROR
  638. default 2 if GAP_TRACE_LEVEL_WARNING
  639. default 3 if GAP_TRACE_LEVEL_API
  640. default 4 if GAP_TRACE_LEVEL_EVENT
  641. default 5 if GAP_TRACE_LEVEL_DEBUG
  642. default 6 if GAP_TRACE_LEVEL_VERBOSE
  643. default 2
  644. choice BNEP_INITIAL_TRACE_LEVEL
  645. prompt "BNEP layer"
  646. default BNEP_TRACE_LEVEL_WARNING
  647. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  648. help
  649. Define BT trace level for BNEP layer
  650. config BNEP_TRACE_LEVEL_NONE
  651. bool "NONE"
  652. config BNEP_TRACE_LEVEL_ERROR
  653. bool "ERROR"
  654. config BNEP_TRACE_LEVEL_WARNING
  655. bool "WARNING"
  656. config BNEP_TRACE_LEVEL_API
  657. bool "API"
  658. config BNEP_TRACE_LEVEL_EVENT
  659. bool "EVENT"
  660. config BNEP_TRACE_LEVEL_DEBUG
  661. bool "DEBUG"
  662. config BNEP_TRACE_LEVEL_VERBOSE
  663. bool "VERBOSE"
  664. endchoice
  665. config BNEP_INITIAL_TRACE_LEVEL
  666. int
  667. depends on BLUEDROID_ENABLED
  668. default 0 if BNEP_TRACE_LEVEL_NONE
  669. default 1 if BNEP_TRACE_LEVEL_ERROR
  670. default 2 if BNEP_TRACE_LEVEL_WARNING
  671. default 3 if BNEP_TRACE_LEVEL_API
  672. default 4 if BNEP_TRACE_LEVEL_EVENT
  673. default 5 if BNEP_TRACE_LEVEL_DEBUG
  674. default 6 if BNEP_TRACE_LEVEL_VERBOSE
  675. default 2
  676. choice PAN_INITIAL_TRACE_LEVEL
  677. prompt "PAN layer"
  678. default PAN_TRACE_LEVEL_WARNING
  679. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  680. help
  681. Define BT trace level for PAN layer
  682. config PAN_TRACE_LEVEL_NONE
  683. bool "NONE"
  684. config PAN_TRACE_LEVEL_ERROR
  685. bool "ERROR"
  686. config PAN_TRACE_LEVEL_WARNING
  687. bool "WARNING"
  688. config PAN_TRACE_LEVEL_API
  689. bool "API"
  690. config PAN_TRACE_LEVEL_EVENT
  691. bool "EVENT"
  692. config PAN_TRACE_LEVEL_DEBUG
  693. bool "DEBUG"
  694. config PAN_TRACE_LEVEL_VERBOSE
  695. bool "VERBOSE"
  696. endchoice
  697. config PAN_INITIAL_TRACE_LEVEL
  698. int
  699. depends on BLUEDROID_ENABLED
  700. default 0 if PAN_TRACE_LEVEL_NONE
  701. default 1 if PAN_TRACE_LEVEL_ERROR
  702. default 2 if PAN_TRACE_LEVEL_WARNING
  703. default 3 if PAN_TRACE_LEVEL_API
  704. default 4 if PAN_TRACE_LEVEL_EVENT
  705. default 5 if PAN_TRACE_LEVEL_DEBUG
  706. default 6 if PAN_TRACE_LEVEL_VERBOSE
  707. default 2
  708. choice A2D_INITIAL_TRACE_LEVEL
  709. prompt "A2D layer"
  710. default A2D_TRACE_LEVEL_WARNING
  711. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  712. help
  713. Define BT trace level for A2D layer
  714. config A2D_TRACE_LEVEL_NONE
  715. bool "NONE"
  716. config A2D_TRACE_LEVEL_ERROR
  717. bool "ERROR"
  718. config A2D_TRACE_LEVEL_WARNING
  719. bool "WARNING"
  720. config A2D_TRACE_LEVEL_API
  721. bool "API"
  722. config A2D_TRACE_LEVEL_EVENT
  723. bool "EVENT"
  724. config A2D_TRACE_LEVEL_DEBUG
  725. bool "DEBUG"
  726. config A2D_TRACE_LEVEL_VERBOSE
  727. bool "VERBOSE"
  728. endchoice
  729. config A2D_INITIAL_TRACE_LEVEL
  730. int
  731. depends on BLUEDROID_ENABLED
  732. default 0 if A2D_TRACE_LEVEL_NONE
  733. default 1 if A2D_TRACE_LEVEL_ERROR
  734. default 2 if A2D_TRACE_LEVEL_WARNING
  735. default 3 if A2D_TRACE_LEVEL_API
  736. default 4 if A2D_TRACE_LEVEL_EVENT
  737. default 5 if A2D_TRACE_LEVEL_DEBUG
  738. default 6 if A2D_TRACE_LEVEL_VERBOSE
  739. default 2
  740. choice AVDT_INITIAL_TRACE_LEVEL
  741. prompt "AVDT layer"
  742. default AVDT_TRACE_LEVEL_WARNING
  743. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  744. help
  745. Define BT trace level for AVDT layer
  746. config AVDT_TRACE_LEVEL_NONE
  747. bool "NONE"
  748. config AVDT_TRACE_LEVEL_ERROR
  749. bool "ERROR"
  750. config AVDT_TRACE_LEVEL_WARNING
  751. bool "WARNING"
  752. config AVDT_TRACE_LEVEL_API
  753. bool "API"
  754. config AVDT_TRACE_LEVEL_EVENT
  755. bool "EVENT"
  756. config AVDT_TRACE_LEVEL_DEBUG
  757. bool "DEBUG"
  758. config AVDT_TRACE_LEVEL_VERBOSE
  759. bool "VERBOSE"
  760. endchoice
  761. config AVDT_INITIAL_TRACE_LEVEL
  762. int
  763. depends on BLUEDROID_ENABLED
  764. default 0 if AVDT_TRACE_LEVEL_NONE
  765. default 1 if AVDT_TRACE_LEVEL_ERROR
  766. default 2 if AVDT_TRACE_LEVEL_WARNING
  767. default 3 if AVDT_TRACE_LEVEL_API
  768. default 4 if AVDT_TRACE_LEVEL_EVENT
  769. default 5 if AVDT_TRACE_LEVEL_DEBUG
  770. default 6 if AVDT_TRACE_LEVEL_VERBOSE
  771. default 2
  772. choice AVCT_INITIAL_TRACE_LEVEL
  773. prompt "AVCT layer"
  774. default AVCT_TRACE_LEVEL_WARNING
  775. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  776. help
  777. Define BT trace level for AVCT layer
  778. config AVCT_TRACE_LEVEL_NONE
  779. bool "NONE"
  780. config AVCT_TRACE_LEVEL_ERROR
  781. bool "ERROR"
  782. config AVCT_TRACE_LEVEL_WARNING
  783. bool "WARNING"
  784. config AVCT_TRACE_LEVEL_API
  785. bool "API"
  786. config AVCT_TRACE_LEVEL_EVENT
  787. bool "EVENT"
  788. config AVCT_TRACE_LEVEL_DEBUG
  789. bool "DEBUG"
  790. config AVCT_TRACE_LEVEL_VERBOSE
  791. bool "VERBOSE"
  792. endchoice
  793. config AVCT_INITIAL_TRACE_LEVEL
  794. int
  795. depends on BLUEDROID_ENABLED
  796. default 0 if AVCT_TRACE_LEVEL_NONE
  797. default 1 if AVCT_TRACE_LEVEL_ERROR
  798. default 2 if AVCT_TRACE_LEVEL_WARNING
  799. default 3 if AVCT_TRACE_LEVEL_API
  800. default 4 if AVCT_TRACE_LEVEL_EVENT
  801. default 5 if AVCT_TRACE_LEVEL_DEBUG
  802. default 6 if AVCT_TRACE_LEVEL_VERBOSE
  803. default 2
  804. choice AVRC_INITIAL_TRACE_LEVEL
  805. prompt "AVRC layer"
  806. default AVRC_TRACE_LEVEL_WARNING
  807. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  808. help
  809. Define BT trace level for AVRC layer
  810. config AVRC_TRACE_LEVEL_NONE
  811. bool "NONE"
  812. config AVRC_TRACE_LEVEL_ERROR
  813. bool "ERROR"
  814. config AVRC_TRACE_LEVEL_WARNING
  815. bool "WARNING"
  816. config AVRC_TRACE_LEVEL_API
  817. bool "API"
  818. config AVRC_TRACE_LEVEL_EVENT
  819. bool "EVENT"
  820. config AVRC_TRACE_LEVEL_DEBUG
  821. bool "DEBUG"
  822. config AVRC_TRACE_LEVEL_VERBOSE
  823. bool "VERBOSE"
  824. endchoice
  825. config AVRC_INITIAL_TRACE_LEVEL
  826. int
  827. depends on BLUEDROID_ENABLED
  828. default 0 if AVRC_TRACE_LEVEL_NONE
  829. default 1 if AVRC_TRACE_LEVEL_ERROR
  830. default 2 if AVRC_TRACE_LEVEL_WARNING
  831. default 3 if AVRC_TRACE_LEVEL_API
  832. default 4 if AVRC_TRACE_LEVEL_EVENT
  833. default 5 if AVRC_TRACE_LEVEL_DEBUG
  834. default 6 if AVRC_TRACE_LEVEL_VERBOSE
  835. default 2
  836. choice MCA_INITIAL_TRACE_LEVEL
  837. prompt "MCA layer"
  838. default MCA_TRACE_LEVEL_WARNING
  839. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  840. help
  841. Define BT trace level for MCA layer
  842. config MCA_TRACE_LEVEL_NONE
  843. bool "NONE"
  844. config MCA_TRACE_LEVEL_ERROR
  845. bool "ERROR"
  846. config MCA_TRACE_LEVEL_WARNING
  847. bool "WARNING"
  848. config MCA_TRACE_LEVEL_API
  849. bool "API"
  850. config MCA_TRACE_LEVEL_EVENT
  851. bool "EVENT"
  852. config MCA_TRACE_LEVEL_DEBUG
  853. bool "DEBUG"
  854. config MCA_TRACE_LEVEL_VERBOSE
  855. bool "VERBOSE"
  856. endchoice
  857. config MCA_INITIAL_TRACE_LEVEL
  858. int
  859. depends on BLUEDROID_ENABLED
  860. default 0 if MCA_TRACE_LEVEL_NONE
  861. default 1 if MCA_TRACE_LEVEL_ERROR
  862. default 2 if MCA_TRACE_LEVEL_WARNING
  863. default 3 if MCA_TRACE_LEVEL_API
  864. default 4 if MCA_TRACE_LEVEL_EVENT
  865. default 5 if MCA_TRACE_LEVEL_DEBUG
  866. default 6 if MCA_TRACE_LEVEL_VERBOSE
  867. default 2
  868. choice HID_INITIAL_TRACE_LEVEL
  869. prompt "HID layer"
  870. default HID_TRACE_LEVEL_WARNING
  871. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  872. help
  873. Define BT trace level for HID layer
  874. config HID_TRACE_LEVEL_NONE
  875. bool "NONE"
  876. config HID_TRACE_LEVEL_ERROR
  877. bool "ERROR"
  878. config HID_TRACE_LEVEL_WARNING
  879. bool "WARNING"
  880. config HID_TRACE_LEVEL_API
  881. bool "API"
  882. config HID_TRACE_LEVEL_EVENT
  883. bool "EVENT"
  884. config HID_TRACE_LEVEL_DEBUG
  885. bool "DEBUG"
  886. config HID_TRACE_LEVEL_VERBOSE
  887. bool "VERBOSE"
  888. endchoice
  889. config HID_INITIAL_TRACE_LEVEL
  890. int
  891. depends on BLUEDROID_ENABLED
  892. default 0 if HID_TRACE_LEVEL_NONE
  893. default 1 if HID_TRACE_LEVEL_ERROR
  894. default 2 if HID_TRACE_LEVEL_WARNING
  895. default 3 if HID_TRACE_LEVEL_API
  896. default 4 if HID_TRACE_LEVEL_EVENT
  897. default 5 if HID_TRACE_LEVEL_DEBUG
  898. default 6 if HID_TRACE_LEVEL_VERBOSE
  899. default 2
  900. choice APPL_INITIAL_TRACE_LEVEL
  901. prompt "APPL layer"
  902. default APPL_TRACE_LEVEL_WARNING
  903. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  904. help
  905. Define BT trace level for APPL layer
  906. config APPL_TRACE_LEVEL_NONE
  907. bool "NONE"
  908. config APPL_TRACE_LEVEL_ERROR
  909. bool "ERROR"
  910. config APPL_TRACE_LEVEL_WARNING
  911. bool "WARNING"
  912. config APPL_TRACE_LEVEL_API
  913. bool "API"
  914. config APPL_TRACE_LEVEL_EVENT
  915. bool "EVENT"
  916. config APPL_TRACE_LEVEL_DEBUG
  917. bool "DEBUG"
  918. config APPL_TRACE_LEVEL_VERBOSE
  919. bool "VERBOSE"
  920. endchoice
  921. config APPL_INITIAL_TRACE_LEVEL
  922. int
  923. depends on BLUEDROID_ENABLED
  924. default 0 if APPL_TRACE_LEVEL_NONE
  925. default 1 if APPL_TRACE_LEVEL_ERROR
  926. default 2 if APPL_TRACE_LEVEL_WARNING
  927. default 3 if APPL_TRACE_LEVEL_API
  928. default 4 if APPL_TRACE_LEVEL_EVENT
  929. default 5 if APPL_TRACE_LEVEL_DEBUG
  930. default 6 if APPL_TRACE_LEVEL_VERBOSE
  931. default 2
  932. choice GATT_INITIAL_TRACE_LEVEL
  933. prompt "GATT layer"
  934. default GATT_TRACE_LEVEL_WARNING
  935. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  936. help
  937. Define BT trace level for GATT layer
  938. config GATT_TRACE_LEVEL_NONE
  939. bool "NONE"
  940. config GATT_TRACE_LEVEL_ERROR
  941. bool "ERROR"
  942. config GATT_TRACE_LEVEL_WARNING
  943. bool "WARNING"
  944. config GATT_TRACE_LEVEL_API
  945. bool "API"
  946. config GATT_TRACE_LEVEL_EVENT
  947. bool "EVENT"
  948. config GATT_TRACE_LEVEL_DEBUG
  949. bool "DEBUG"
  950. config GATT_TRACE_LEVEL_VERBOSE
  951. bool "VERBOSE"
  952. endchoice
  953. config GATT_INITIAL_TRACE_LEVEL
  954. int
  955. depends on BLUEDROID_ENABLED
  956. default 0 if GATT_TRACE_LEVEL_NONE
  957. default 1 if GATT_TRACE_LEVEL_ERROR
  958. default 2 if GATT_TRACE_LEVEL_WARNING
  959. default 3 if GATT_TRACE_LEVEL_API
  960. default 4 if GATT_TRACE_LEVEL_EVENT
  961. default 5 if GATT_TRACE_LEVEL_DEBUG
  962. default 6 if GATT_TRACE_LEVEL_VERBOSE
  963. default 2
  964. choice SMP_INITIAL_TRACE_LEVEL
  965. prompt "SMP layer"
  966. default SMP_TRACE_LEVEL_WARNING
  967. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  968. help
  969. Define BT trace level for SMP layer
  970. config SMP_TRACE_LEVEL_NONE
  971. bool "NONE"
  972. config SMP_TRACE_LEVEL_ERROR
  973. bool "ERROR"
  974. config SMP_TRACE_LEVEL_WARNING
  975. bool "WARNING"
  976. config SMP_TRACE_LEVEL_API
  977. bool "API"
  978. config SMP_TRACE_LEVEL_EVENT
  979. bool "EVENT"
  980. config SMP_TRACE_LEVEL_DEBUG
  981. bool "DEBUG"
  982. config SMP_TRACE_LEVEL_VERBOSE
  983. bool "VERBOSE"
  984. endchoice
  985. config SMP_INITIAL_TRACE_LEVEL
  986. int
  987. depends on BLUEDROID_ENABLED
  988. default 0 if SMP_TRACE_LEVEL_NONE
  989. default 1 if SMP_TRACE_LEVEL_ERROR
  990. default 2 if SMP_TRACE_LEVEL_WARNING
  991. default 3 if SMP_TRACE_LEVEL_API
  992. default 4 if SMP_TRACE_LEVEL_EVENT
  993. default 5 if SMP_TRACE_LEVEL_DEBUG
  994. default 6 if SMP_TRACE_LEVEL_VERBOSE
  995. default 2
  996. choice BTIF_INITIAL_TRACE_LEVEL
  997. prompt "BTIF layer"
  998. default BTIF_TRACE_LEVEL_WARNING
  999. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  1000. help
  1001. Define BT trace level for BTIF layer
  1002. config BTIF_TRACE_LEVEL_NONE
  1003. bool "NONE"
  1004. config BTIF_TRACE_LEVEL_ERROR
  1005. bool "ERROR"
  1006. config BTIF_TRACE_LEVEL_WARNING
  1007. bool "WARNING"
  1008. config BTIF_TRACE_LEVEL_API
  1009. bool "API"
  1010. config BTIF_TRACE_LEVEL_EVENT
  1011. bool "EVENT"
  1012. config BTIF_TRACE_LEVEL_DEBUG
  1013. bool "DEBUG"
  1014. config BTIF_TRACE_LEVEL_VERBOSE
  1015. bool "VERBOSE"
  1016. endchoice
  1017. config BTIF_INITIAL_TRACE_LEVEL
  1018. int
  1019. depends on BLUEDROID_ENABLED
  1020. default 0 if BTIF_TRACE_LEVEL_NONE
  1021. default 1 if BTIF_TRACE_LEVEL_ERROR
  1022. default 2 if BTIF_TRACE_LEVEL_WARNING
  1023. default 3 if BTIF_TRACE_LEVEL_API
  1024. default 4 if BTIF_TRACE_LEVEL_EVENT
  1025. default 5 if BTIF_TRACE_LEVEL_DEBUG
  1026. default 6 if BTIF_TRACE_LEVEL_VERBOSE
  1027. default 2
  1028. choice BTC_INITIAL_TRACE_LEVEL
  1029. prompt "BTC layer"
  1030. default BTC_TRACE_LEVEL_WARNING
  1031. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  1032. help
  1033. Define BT trace level for BTC layer
  1034. config BTC_TRACE_LEVEL_NONE
  1035. bool "NONE"
  1036. config BTC_TRACE_LEVEL_ERROR
  1037. bool "ERROR"
  1038. config BTC_TRACE_LEVEL_WARNING
  1039. bool "WARNING"
  1040. config BTC_TRACE_LEVEL_API
  1041. bool "API"
  1042. config BTC_TRACE_LEVEL_EVENT
  1043. bool "EVENT"
  1044. config BTC_TRACE_LEVEL_DEBUG
  1045. bool "DEBUG"
  1046. config BTC_TRACE_LEVEL_VERBOSE
  1047. bool "VERBOSE"
  1048. endchoice
  1049. config BTC_INITIAL_TRACE_LEVEL
  1050. int
  1051. depends on BLUEDROID_ENABLED
  1052. default 0 if BTC_TRACE_LEVEL_NONE
  1053. default 1 if BTC_TRACE_LEVEL_ERROR
  1054. default 2 if BTC_TRACE_LEVEL_WARNING
  1055. default 3 if BTC_TRACE_LEVEL_API
  1056. default 4 if BTC_TRACE_LEVEL_EVENT
  1057. default 5 if BTC_TRACE_LEVEL_DEBUG
  1058. default 6 if BTC_TRACE_LEVEL_VERBOSE
  1059. default 2
  1060. choice OSI_INITIAL_TRACE_LEVEL
  1061. prompt "OSI layer"
  1062. default OSI_TRACE_LEVEL_WARNING
  1063. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  1064. help
  1065. Define BT trace level for OSI layer
  1066. config OSI_TRACE_LEVEL_NONE
  1067. bool "NONE"
  1068. config OSI_TRACE_LEVEL_ERROR
  1069. bool "ERROR"
  1070. config OSI_TRACE_LEVEL_WARNING
  1071. bool "WARNING"
  1072. config OSI_TRACE_LEVEL_API
  1073. bool "API"
  1074. config OSI_TRACE_LEVEL_EVENT
  1075. bool "EVENT"
  1076. config OSI_TRACE_LEVEL_DEBUG
  1077. bool "DEBUG"
  1078. config OSI_TRACE_LEVEL_VERBOSE
  1079. bool "VERBOSE"
  1080. endchoice
  1081. config OSI_INITIAL_TRACE_LEVEL
  1082. int
  1083. depends on BLUEDROID_ENABLED
  1084. default 0 if OSI_TRACE_LEVEL_NONE
  1085. default 1 if OSI_TRACE_LEVEL_ERROR
  1086. default 2 if OSI_TRACE_LEVEL_WARNING
  1087. default 3 if OSI_TRACE_LEVEL_API
  1088. default 4 if OSI_TRACE_LEVEL_EVENT
  1089. default 5 if OSI_TRACE_LEVEL_DEBUG
  1090. default 6 if OSI_TRACE_LEVEL_VERBOSE
  1091. default 2
  1092. choice BLUFI_INITIAL_TRACE_LEVEL
  1093. prompt "BLUFI layer"
  1094. default BLUFI_TRACE_LEVEL_WARNING
  1095. depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG
  1096. help
  1097. Define BT trace level for BLUFI layer
  1098. config BLUFI_TRACE_LEVEL_NONE
  1099. bool "NONE"
  1100. config BLUFI_TRACE_LEVEL_ERROR
  1101. bool "ERROR"
  1102. config BLUFI_TRACE_LEVEL_WARNING
  1103. bool "WARNING"
  1104. config BLUFI_TRACE_LEVEL_API
  1105. bool "API"
  1106. config BLUFI_TRACE_LEVEL_EVENT
  1107. bool "EVENT"
  1108. config BLUFI_TRACE_LEVEL_DEBUG
  1109. bool "DEBUG"
  1110. config BLUFI_TRACE_LEVEL_VERBOSE
  1111. bool "VERBOSE"
  1112. endchoice
  1113. config BLUFI_INITIAL_TRACE_LEVEL
  1114. int
  1115. depends on BLUEDROID_ENABLED
  1116. default 0 if BLUFI_TRACE_LEVEL_NONE
  1117. default 1 if BLUFI_TRACE_LEVEL_ERROR
  1118. default 2 if BLUFI_TRACE_LEVEL_WARNING
  1119. default 3 if BLUFI_TRACE_LEVEL_API
  1120. default 4 if BLUFI_TRACE_LEVEL_EVENT
  1121. default 5 if BLUFI_TRACE_LEVEL_DEBUG
  1122. default 6 if BLUFI_TRACE_LEVEL_VERBOSE
  1123. default 2
  1124. endmenu #BT DEBUG LOG LEVEL
  1125. config BT_ACL_CONNECTIONS
  1126. int "BT/BLE MAX ACL CONNECTIONS(1~7)"
  1127. depends on BLUEDROID_ENABLED
  1128. range 1 7
  1129. default 4
  1130. help
  1131. Maximum BT/BLE connection count
  1132. config BT_ALLOCATION_FROM_SPIRAM_FIRST
  1133. bool "BT/BLE will first malloc the memory from the PSRAM"
  1134. depends on BLUEDROID_ENABLED
  1135. default n
  1136. help
  1137. This select can save the internal RAM if there have the PSRAM
  1138. config BT_BLE_DYNAMIC_ENV_MEMORY
  1139. bool "Use dynamic memory allocation in BT/BLE stack"
  1140. depends on BLUEDROID_ENABLED
  1141. default n
  1142. help
  1143. This select can make the allocation of memory will become more flexible
  1144. config BLE_HOST_QUEUE_CONGESTION_CHECK
  1145. bool "BLE queue congestion check"
  1146. depends on BLUEDROID_ENABLED
  1147. default n
  1148. help
  1149. When scanning and scan duplicate is not enabled, if there are a lot of adv packets around or application
  1150. layer handling adv packets is slow, it will cause the controller memory to run out. if enabled, adv
  1151. packets will be lost when host queue is congested.
  1152. config SMP_ENABLE
  1153. bool
  1154. depends on BLUEDROID_ENABLED
  1155. default CLASSIC_BT_ENABLED || BLE_SMP_ENABLE
  1156. config BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY
  1157. bool "Report adv data and scan response individually when BLE active scan"
  1158. depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY)
  1159. default n
  1160. help
  1161. Originally, when doing BLE active scan, Bluedroid will not report adv to application layer
  1162. until receive scan response. This option is used to disable the behavior. When enable this option,
  1163. Bluedroid will report adv data or scan response to application layer immediately.
  1164. # Memory reserved at start of DRAM for Bluetooth stack
  1165. config BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT
  1166. int "Timeout of BLE connection establishment"
  1167. depends on BLUEDROID_ENABLED
  1168. range 1 60
  1169. default 30
  1170. help
  1171. Bluetooth Connection establishment maximum time, if connection time exceeds this value, the connection
  1172. establishment fails, ESP_GATTC_OPEN_EVT or ESP_GATTS_OPEN_EVT is triggered.
  1173. config BT_RESERVE_DRAM
  1174. hex
  1175. default 0xdb5c if BT_ENABLED
  1176. default 0
  1177. menuconfig NIMBLE_ENABLED
  1178. bool "Enable NimBLE host stack"
  1179. depends on BTDM_CONTROLLER_HCI_MODE_VHCI && !BLUEDROID_ENABLED
  1180. default n
  1181. help
  1182. This enables NimBLE host stack
  1183. choice NIMBLE_MEM_ALLOC_MODE
  1184. prompt "Memory allocation strategy"
  1185. default NIMBLE_MEM_ALLOC_MODE_INTERNAL
  1186. depends on NIMBLE_ENABLED
  1187. help
  1188. Allocation strategy for NimBLE host stack, essentially provides ability to
  1189. allocate all required dynamic allocations from,
  1190. - Internal DRAM memory only
  1191. - External SPIRAM memory only
  1192. - Either internal or external memory based on default malloc()
  1193. behavior in ESP-IDF
  1194. Recommended mode here is always internal, since that is most preferred
  1195. from security perspective. But if application requirement does not
  1196. allow sufficient free internal memory then alternate mode can be
  1197. selected.
  1198. config NIMBLE_MEM_ALLOC_MODE_INTERNAL
  1199. bool "Internal memory"
  1200. config NIMBLE_MEM_ALLOC_MODE_EXTERNAL
  1201. bool "External SPIRAM"
  1202. depends on ESP32_SPIRAM_SUPPORT
  1203. config NIMBLE_MEM_ALLOC_MODE_DEFAULT
  1204. bool "Default alloc mode"
  1205. endchoice
  1206. config NIMBLE_MAX_CONNECTIONS
  1207. int "Maximum number of concurrent connections"
  1208. range 1 9
  1209. default BTDM_CONTROLLER_BLE_MAX_CONN
  1210. depends on NIMBLE_ENABLED
  1211. help
  1212. Defines maximum number of concurrent BLE connections
  1213. config NIMBLE_MAX_BONDS
  1214. int "Maximum number of bonds to save across reboots"
  1215. default 3
  1216. depends on NIMBLE_ENABLED
  1217. help
  1218. Defines maximum number of bonds to save for peer security and our security
  1219. config NIMBLE_MAX_CCCDS
  1220. int "Maximum number of CCC descriptors to save across reboots"
  1221. default 8
  1222. depends on NIMBLE_ENABLED
  1223. help
  1224. Defines maximum number of CCC descriptors to save
  1225. config NIMBLE_L2CAP_COC_MAX_NUM
  1226. int "Maximum number of connection oriented channels"
  1227. range 0 9
  1228. depends on NIMBLE_ENABLED
  1229. default 0
  1230. help
  1231. Defines maximum number of BLE Connection Oriented Channels. When set to (0), BLE COC is not compiled in
  1232. choice NIMBLE_PINNED_TO_CORE_CHOICE
  1233. prompt "The CPU core on which NimBLE host will run"
  1234. depends on NIMBLE_ENABLED && !FREERTOS_UNICORE
  1235. help
  1236. The CPU core on which NimBLE host will run. You can choose Core 0 or Core 1.
  1237. Cannot specify no-affinity
  1238. config NIMBLE_PINNED_TO_CORE_0
  1239. bool "Core 0 (PRO CPU)"
  1240. config NIMBLE_PINNED_TO_CORE_1
  1241. bool "Core 1 (APP CPU)"
  1242. depends on !FREERTOS_UNICORE
  1243. endchoice
  1244. config NIMBLE_PINNED_TO_CORE
  1245. int
  1246. depends on NIMBLE_ENABLED
  1247. default 0 if NIMBLE_PINNED_TO_CORE_0
  1248. default 1 if NIMBLE_PINNED_TO_CORE_1
  1249. default 0
  1250. config NIMBLE_TASK_STACK_SIZE
  1251. int "NimBLE Host task stack size"
  1252. depends on NIMBLE_ENABLED
  1253. default 5120 if BLE_MESH
  1254. default 4096
  1255. help
  1256. This configures stack size of NimBLE host task
  1257. config NIMBLE_ROLE_CENTRAL
  1258. bool "Enable BLE Central role"
  1259. depends on NIMBLE_ENABLED
  1260. default y
  1261. config NIMBLE_ROLE_PERIPHERAL
  1262. bool "Enable BLE Peripheral role"
  1263. depends on NIMBLE_ENABLED
  1264. default y
  1265. config NIMBLE_ROLE_BROADCASTER
  1266. bool "Enable BLE Broadcaster role"
  1267. depends on NIMBLE_ENABLED
  1268. default y
  1269. config NIMBLE_ROLE_OBSERVER
  1270. bool "Enable BLE Observer role"
  1271. depends on NIMBLE_ENABLED
  1272. default y
  1273. config NIMBLE_NVS_PERSIST
  1274. bool "Persist the BLE Bonding keys in NVS"
  1275. depends on NIMBLE_ENABLED
  1276. default y
  1277. help
  1278. Enable this flag to make bonding persistent across device reboots
  1279. config NIMBLE_SM_LEGACY
  1280. bool "Security manager legacy pairing"
  1281. depends on NIMBLE_ENABLED
  1282. default y
  1283. help
  1284. Enable security manager legacy pairing
  1285. config NIMBLE_SM_SC
  1286. bool "Security manager secure connections (4.2)"
  1287. depends on NIMBLE_ENABLED
  1288. default y
  1289. help
  1290. Enable security manager secure connections
  1291. config NIMBLE_DEBUG
  1292. bool "Enable extra runtime asserts and host debugging"
  1293. default n
  1294. depends on NIMBLE_ENABLED
  1295. help
  1296. This enables extra runtime asserts and host debugging
  1297. config NIMBLE_SM_SC_DEBUG_KEYS
  1298. bool "Use predefined public-private key pair"
  1299. default n
  1300. depends on NIMBLE_ENABLED && NIMBLE_SM_SC
  1301. help
  1302. If this option is enabled, SM uses predefined DH key pair as described
  1303. in Core Specification, Vol. 3, Part H, 2.3.5.6.1. This allows to
  1304. decrypt air traffic easily and thus should only be used for debugging.
  1305. config NIMBLE_SVC_GAP_DEVICE_NAME
  1306. string "BLE GAP default device name"
  1307. depends on NIMBLE_ENABLED
  1308. default "nimble"
  1309. help
  1310. The Device Name characteristic shall contain the name of the device as an UTF-8 string.
  1311. This name can be changed by using API ble_svc_gap_device_name_set()
  1312. config NIMBLE_GAP_DEVICE_NAME_MAX_LEN
  1313. int "Maximum length of BLE device name in octets"
  1314. depends on NIMBLE_ENABLED
  1315. default 31
  1316. help
  1317. Device Name characteristic value shall be 0 to 248 octets in length
  1318. config NIMBLE_ATT_PREFERRED_MTU
  1319. int "Preferred MTU size in octets"
  1320. depends on NIMBLE_ENABLED
  1321. default 256
  1322. help
  1323. This is the default value of ATT MTU indicated by the device during an ATT MTU exchange.
  1324. This value can be changed using API ble_att_set_preferred_mtu()
  1325. config NIMBLE_SVC_GAP_APPEARANCE
  1326. hex "External appearance of the device"
  1327. depends on NIMBLE_ENABLED
  1328. default 0
  1329. help
  1330. Standard BLE GAP Appearance value in HEX format e.g. 0x02C0
  1331. config NIMBLE_ACL_BUF_COUNT
  1332. int "ACL Buffer count"
  1333. depends on NIMBLE_ENABLED
  1334. default 12
  1335. help
  1336. The number of ACL data buffers.
  1337. config NIMBLE_ACL_BUF_SIZE
  1338. int "ACL Buffer size"
  1339. depends on NIMBLE_ENABLED
  1340. default 255
  1341. help
  1342. This is the maximum size of the data portion of HCI ACL data packets.
  1343. It does not include the HCI data header (of 4 bytes)
  1344. config NIMBLE_HCI_EVT_BUF_SIZE
  1345. int "HCI Event Buffer size"
  1346. depends on NIMBLE_ENABLED
  1347. default 70
  1348. help
  1349. This is the size of each HCI event buffer in bytes
  1350. config NIMBLE_HCI_EVT_HI_BUF_COUNT
  1351. int "High Priority HCI Event Buffer count"
  1352. depends on NIMBLE_ENABLED
  1353. default 30
  1354. help
  1355. This is the high priority HCI events' buffer size. High-priority
  1356. event buffers are for everything except advertising reports. If there
  1357. are no free high-priority event buffers then host will try to allocate a
  1358. low-priority buffer instead
  1359. config NIMBLE_HCI_EVT_LO_BUF_COUNT
  1360. int "Low Priority HCI Event Buffer count"
  1361. depends on NIMBLE_ENABLED
  1362. default 8
  1363. help
  1364. This is the low priority HCI events' buffer size. Low-priority event
  1365. buffers are only used for advertising reports. If there are no free
  1366. low-priority event buffers, then an incoming advertising report will
  1367. get dropped
  1368. config NIMBLE_MSYS1_BLOCK_COUNT
  1369. int "MSYS_1 Block Count"
  1370. depends on NIMBLE_ENABLED
  1371. default 12
  1372. help
  1373. MSYS is a system level mbuf registry. For prepare write & prepare
  1374. responses MBUFs are allocated out of msys_1 pool. For NIMBLE_MESH
  1375. enabled cases, this block count is increased by 8 than user defined
  1376. count.
  1377. config NIMBLE_HS_FLOW_CTRL
  1378. bool "Enable Host Flow control"
  1379. depends on NIMBLE_ENABLED
  1380. default y
  1381. help
  1382. Enable Host Flow control
  1383. config NIMBLE_HS_FLOW_CTRL_ITVL
  1384. int "Host Flow control interval"
  1385. depends on NIMBLE_HS_FLOW_CTRL
  1386. default 1000
  1387. help
  1388. Host flow control interval in msecs
  1389. config NIMBLE_HS_FLOW_CTRL_THRESH
  1390. int "Host Flow control threshold"
  1391. depends on NIMBLE_HS_FLOW_CTRL
  1392. default 2
  1393. help
  1394. Host flow control threshold, if the number of free buffers are at or
  1395. below this threshold, send an immediate number-of-completed-packets
  1396. event
  1397. config NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT
  1398. bool "Host Flow control on disconnect"
  1399. depends on NIMBLE_HS_FLOW_CTRL
  1400. default y
  1401. help
  1402. Enable this option to send number-of-completed-packets event to
  1403. controller after disconnection
  1404. config NIMBLE_RPA_TIMEOUT
  1405. int "RPA timeout in seconds"
  1406. range 1 41400
  1407. depends on NIMBLE_ENABLED
  1408. default 900
  1409. help
  1410. Time interval between RPA address change. This is applicable in case of
  1411. Host based RPA
  1412. menuconfig NIMBLE_MESH
  1413. bool "Enable BLE mesh functionality"
  1414. select NIMBLE_SM_SC
  1415. depends on NIMBLE_ENABLED
  1416. default n
  1417. help
  1418. Enable BLE Mesh functionality
  1419. config NIMBLE_MESH_PROXY
  1420. bool "Enable mesh proxy functionality"
  1421. default n
  1422. depends on NIMBLE_MESH
  1423. help
  1424. Enable proxy. This is automatically set whenever NIMBLE_MESH_PB_GATT or
  1425. NIMBLE_MESH_GATT_PROXY is set
  1426. config NIMBLE_MESH_PROV
  1427. bool "Enable BLE mesh provisioning"
  1428. default y
  1429. depends on NIMBLE_MESH
  1430. help
  1431. Enable mesh provisioning
  1432. config NIMBLE_MESH_PB_ADV
  1433. bool "Enable mesh provisioning over advertising bearer"
  1434. default y
  1435. depends on NIMBLE_MESH_PROV
  1436. help
  1437. Enable this option to allow the device to be provisioned over
  1438. the advertising bearer
  1439. config NIMBLE_MESH_PB_GATT
  1440. bool "Enable mesh provisioning over GATT bearer"
  1441. default y
  1442. select NIMBLE_MESH_PROXY
  1443. depends on NIMBLE_MESH_PROV
  1444. help
  1445. Enable this option to allow the device to be provisioned over the GATT
  1446. bearer
  1447. config NIMBLE_MESH_GATT_PROXY
  1448. bool "Enable GATT Proxy functionality"
  1449. default y
  1450. select NIMBLE_MESH_PROXY
  1451. depends on NIMBLE_MESH
  1452. help
  1453. This option enables support for the Mesh GATT Proxy Service,
  1454. i.e. the ability to act as a proxy between a Mesh GATT Client
  1455. and a Mesh network
  1456. config NIMBLE_MESH_RELAY
  1457. bool "Enable mesh relay functionality"
  1458. default n
  1459. depends on NIMBLE_MESH
  1460. help
  1461. Support for acting as a Mesh Relay Node
  1462. config NIMBLE_MESH_LOW_POWER
  1463. bool "Enable mesh low power mode"
  1464. default n
  1465. depends on NIMBLE_MESH
  1466. help
  1467. Enable this option to be able to act as a Low Power Node
  1468. config NIMBLE_MESH_FRIEND
  1469. bool "Enable mesh friend functionality"
  1470. default n
  1471. depends on NIMBLE_MESH
  1472. help
  1473. Enable this option to be able to act as a Friend Node
  1474. config NIMBLE_MESH_DEVICE_NAME
  1475. string "Set mesh device name"
  1476. default "nimble-mesh-node"
  1477. depends on NIMBLE_MESH
  1478. help
  1479. This value defines Bluetooth Mesh device/node name
  1480. config NIMBLE_CRYPTO_STACK_MBEDTLS
  1481. bool "Override TinyCrypt with mbedTLS for crypto computations"
  1482. default y
  1483. depends on NIMBLE_ENABLED
  1484. select MBEDTLS_ECP_RESTARTABLE
  1485. select MBEDTLS_CMAC_C
  1486. help
  1487. Enable this option to choose mbedTLS instead of TinyCrypt for crypto
  1488. computations.
  1489. endmenu
  1490. menuconfig BLE_MESH
  1491. bool "ESP BLE Mesh Support"
  1492. help
  1493. This option enables ESP BLE Mesh support. The specific features that are
  1494. available may depend on other features that have been enabled in the
  1495. stack, such as Bluetooth Support, Bluedroid Support & GATT support.
  1496. if BLE_MESH
  1497. config BLE_MESH_HCI_5_0
  1498. bool "Support sending 20ms non-connectable adv packets"
  1499. default y
  1500. help
  1501. It is a temporary solution and needs further modifications.
  1502. config BLE_MESH_USE_DUPLICATE_SCAN
  1503. bool "Support Duplicate Scan in BLE Mesh"
  1504. depends on BLUEDROID_ENABLED
  1505. select BLE_SCAN_DUPLICATE
  1506. select BLE_MESH_SCAN_DUPLICATE_EN
  1507. default y
  1508. help
  1509. Enable this option to allow using specific duplicate scan filter
  1510. in BLE Mesh, and Scan Duplicate Type must be set by choosing the
  1511. option in the Bluetooth Controller section in menuconfig, which is
  1512. "Scan Duplicate By Device Address and Advertising Data".
  1513. choice BLE_MESH_MEM_ALLOC_MODE
  1514. prompt "Memory allocation strategy"
  1515. default BLE_MESH_MEM_ALLOC_MODE_INTERNAL
  1516. help
  1517. Allocation strategy for BLE Mesh stack, essentially provides ability to
  1518. allocate all required dynamic allocations from,
  1519. - Internal DRAM memory only
  1520. - External SPIRAM memory only
  1521. - Either internal or external memory based on default malloc()
  1522. behavior in ESP-IDF
  1523. Recommended mode here is always internal, since that is most preferred
  1524. from security perspective. But if application requirement does not allow
  1525. sufficient free internal memory then alternate mode can be selected.
  1526. config BLE_MESH_MEM_ALLOC_MODE_INTERNAL
  1527. bool "Internal DRAM"
  1528. config BLE_MESH_ALLOC_FROM_PSRAM_FIRST
  1529. bool "External SPIRAM"
  1530. depends on SPIRAM_SUPPORT
  1531. config BLE_MESH_MEM_ALLOC_MODE_DEFAULT
  1532. bool "Default alloc mode"
  1533. depends on SPIRAM_SUPPORT
  1534. help
  1535. Enable this option to use the default memory allocation strategy when
  1536. external SPIRAM is enabled. See the SPIRAM options for more details.
  1537. endchoice # BLE_MESH_MEM_ALLOC_MODE
  1538. config BLE_MESH_FREERTOS_STATIC_ALLOC
  1539. bool "Enable FreeRTOS static allocation"
  1540. depends on SUPPORT_STATIC_ALLOCATION && SPIRAM_SUPPORT
  1541. default n
  1542. help
  1543. Enable this option to use FreeRTOS static allocation APIs for BLE Mesh,
  1544. which provides the ability to use different dynamic memory (i.e. SPIRAM)
  1545. for FreeRTOS objects.
  1546. If this option is disabled, the FreeRTOS static allocation APIs will not
  1547. be used, and internal DRAM will be allocated for FreeRTOS objects.
  1548. choice BLE_MESH_FREERTOS_STATIC_ALLOC_MODE
  1549. prompt "Memory allocation for FreeRTOS objects"
  1550. depends on BLE_MESH_FREERTOS_STATIC_ALLOC
  1551. help
  1552. Choose the memory to be used for FreeRTOS objects.
  1553. config BLE_MESH_FREERTOS_STATIC_ALLOC_EXTERNAL
  1554. bool "External SPIRAM"
  1555. depends on SPIRAM_SUPPORT
  1556. help
  1557. If enabled, BLE Mesh allocates dynamic memory from external SPIRAM for
  1558. FreeRTOS objects, i.e. mutex, queue, and task stack. External SPIRAM
  1559. can only be used for task stack when SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY
  1560. is enabled. See the SPIRAM options for more details.
  1561. endchoice # BLE_MESH_FREERTOS_STATIC_ALLOC_MODE
  1562. config BLE_MESH_DEINIT
  1563. bool "Support de-initialize BLE Mesh stack"
  1564. default y
  1565. help
  1566. If enabled, users can use the function esp_ble_mesh_deinit() to de-initialize
  1567. the whole BLE Mesh stack.
  1568. menu "BLE Mesh and BLE coexistence support"
  1569. config BLE_MESH_SUPPORT_BLE_ADV
  1570. bool "Support sending normal BLE advertising packets"
  1571. default n
  1572. help
  1573. When selected, users can send normal BLE advertising packets
  1574. with specific API.
  1575. if BLE_MESH_SUPPORT_BLE_ADV
  1576. config BLE_MESH_BLE_ADV_BUF_COUNT
  1577. int "Number of advertising buffers for BLE advertising packets"
  1578. default 3
  1579. range 1 255
  1580. help
  1581. Number of advertising buffers for BLE packets available.
  1582. endif # BLE_MESH_SUPPORT_BLE_ADV
  1583. config BLE_MESH_SUPPORT_BLE_SCAN
  1584. bool "Support scanning normal BLE advertising packets"
  1585. default n
  1586. help
  1587. When selected, users can register a callback and receive normal BLE
  1588. advertising packets in the application layer.
  1589. endmenu # BLE Mesh and BLE coexistence support
  1590. config BLE_MESH_FAST_PROV
  1591. bool "Enable BLE Mesh Fast Provisioning"
  1592. select BLE_MESH_NODE
  1593. select BLE_MESH_PROVISIONER
  1594. select BLE_MESH_PB_ADV
  1595. default n
  1596. help
  1597. Enable this option to allow BLE Mesh fast provisioning solution to be used.
  1598. When there are multiple unprovisioned devices around, fast provisioning can
  1599. greatly reduce the time consumption of the whole provisioning process.
  1600. When this option is enabled, and after an unprovisioned device is provisioned
  1601. into a node successfully, it can be changed to a temporary Provisioner.
  1602. config BLE_MESH_NODE
  1603. bool "Support for BLE Mesh Node"
  1604. help
  1605. Enable the device to be provisioned into a node. This option should be
  1606. enabled when an unprovisioned device is going to be provisioned into a
  1607. node and communicate with other nodes in the BLE Mesh network.
  1608. config BLE_MESH_PROVISIONER
  1609. bool "Support for BLE Mesh Provisioner"
  1610. help
  1611. Enable the device to be a Provisioner. The option should be enabled when
  1612. a device is going to act as a Provisioner and provision unprovisioned
  1613. devices into the BLE Mesh network.
  1614. if BLE_MESH_PROVISIONER
  1615. config BLE_MESH_WAIT_FOR_PROV_MAX_DEV_NUM
  1616. int "Maximum number of unprovisioned devices that can be added to device queue"
  1617. default 10
  1618. range 1 100
  1619. help
  1620. This option specifies how many unprovisioned devices can be added to device
  1621. queue for provisioning. Users can use this option to define the size of the
  1622. queue in the bottom layer which is used to store unprovisioned device
  1623. information (e.g. Device UUID, address).
  1624. config BLE_MESH_MAX_PROV_NODES
  1625. int "Maximum number of devices that can be provisioned by Provisioner"
  1626. default 10
  1627. range 1 1000
  1628. help
  1629. This option specifies how many devices can be provisioned by a Provisioner.
  1630. This value indicates the maximum number of unprovisioned devices which can be
  1631. provisioned by a Provisioner. For instance, if the value is 6 then it means the
  1632. Provisioner can provision up to 6 unprovisioned devices.
  1633. Theoretically a Provisioner without the limitation of its memory can provision
  1634. up to 32766 unprovisioned devices, here we limit the maximum number to 100
  1635. just to limit the memory used by a Provisioner. The bigger the value is, the
  1636. more memory it will cost by a Provisioner to store the information of nodes.
  1637. if BLE_MESH_PB_ADV
  1638. config BLE_MESH_PBA_SAME_TIME
  1639. int "Maximum number of PB-ADV running at the same time by Provisioner"
  1640. default 2
  1641. range 1 10
  1642. help
  1643. This option specifies how many devices can be provisioned at the same time
  1644. using PB-ADV. For examples, if the value is 2, it means a Provisioner can
  1645. provision two unprovisioned devices with PB-ADV at the same time.
  1646. endif # BLE_MESH_PB_ADV
  1647. if BLE_MESH_PB_GATT
  1648. config BLE_MESH_PBG_SAME_TIME
  1649. int "Maximum number of PB-GATT running at the same time by Provisioner"
  1650. default 1
  1651. range 1 5
  1652. help
  1653. This option specifies how many devices can be provisioned at the same
  1654. time using PB-GATT. For example, if the value is 2, it means a Provisioner
  1655. can provision two unprovisioned devices with PB-GATT at the same time.
  1656. endif # BLE_MESH_PB_GATT
  1657. config BLE_MESH_PROVISIONER_SUBNET_COUNT
  1658. int "Maximum number of mesh subnets that can be created by Provisioner"
  1659. default 3
  1660. range 1 4096
  1661. help
  1662. This option specifies how many subnets per network a Provisioner can create.
  1663. Indeed, this value decides the number of network keys which can be added by a Provisioner.
  1664. config BLE_MESH_PROVISIONER_APP_KEY_COUNT
  1665. int "Maximum number of application keys that can be owned by Provisioner"
  1666. default 3
  1667. range 1 4096
  1668. help
  1669. This option specifies how many application keys the Provisioner can have.
  1670. Indeed, this value decides the number of the application keys which can be added by a Provisioner.
  1671. config BLE_MESH_PROVISIONER_RECV_HB
  1672. bool "Support receiving Heartbeat messages"
  1673. default n
  1674. help
  1675. When this option is enabled, Provisioner can call specific functions to enable
  1676. or disable receiving Heartbeat messages and notify them to the application layer.
  1677. if BLE_MESH_PROVISIONER_RECV_HB
  1678. config BLE_MESH_PROVISIONER_RECV_HB_FILTER_SIZE
  1679. int "Maximum number of filter entries for receiving Heartbeat messages"
  1680. default 3
  1681. range 1 1000
  1682. help
  1683. This option specifies how many heartbeat filter entries Provisioner supports.
  1684. The heartbeat filter (acceptlist or rejectlist) entries are used to store a
  1685. list of SRC and DST which can be used to decide if a heartbeat message will
  1686. be processed and notified to the application layer by Provisioner.
  1687. Note: The filter is an empty rejectlist by default.
  1688. endif # BLE_MESH_PROVISIONER_RECV_HB
  1689. endif # BLE_MESH_PROVISIONER
  1690. # Virtual option enabled whenever Generic Provisioning layer is needed
  1691. config BLE_MESH_PROV
  1692. bool "BLE Mesh Provisioning support"
  1693. default y
  1694. help
  1695. Enable this option to support BLE Mesh Provisioning functionality. For
  1696. BLE Mesh, this option should be always enabled.
  1697. config BLE_MESH_PB_ADV
  1698. bool "Provisioning support using the advertising bearer (PB-ADV)"
  1699. select BLE_MESH_PROV
  1700. default y
  1701. help
  1702. Enable this option to allow the device to be provisioned over the
  1703. advertising bearer. This option should be enabled if PB-ADV is
  1704. going to be used during provisioning procedure.
  1705. config BLE_MESH_UNPROVISIONED_BEACON_INTERVAL
  1706. int "Interval between two consecutive Unprovisioned Device Beacon"
  1707. depends on BLE_MESH_NODE && BLE_MESH_PB_ADV
  1708. default 5
  1709. default 3 if BLE_MESH_FAST_PROV
  1710. range 1 100
  1711. help
  1712. This option specifies the interval of sending two consecutive unprovisioned
  1713. device beacon, users can use this option to change the frequency of sending
  1714. unprovisioned device beacon. For example, if the value is 5, it means the
  1715. unprovisioned device beacon will send every 5 seconds. When the option of
  1716. BLE_MESH_FAST_PROV is selected, the value is better to be 3 seconds, or less.
  1717. config BLE_MESH_PB_GATT
  1718. bool "Provisioning support using GATT (PB-GATT)"
  1719. select BLE_MESH_PROXY
  1720. select BLE_MESH_PROV
  1721. help
  1722. Enable this option to allow the device to be provisioned over GATT.
  1723. This option should be enabled if PB-GATT is going to be used during
  1724. provisioning procedure.
  1725. # Virtual option enabled whenever any Proxy protocol is needed
  1726. config BLE_MESH_PROXY
  1727. bool "BLE Mesh Proxy protocol support"
  1728. default y
  1729. help
  1730. Enable this option to support BLE Mesh Proxy protocol used by PB-GATT
  1731. and other proxy pdu transmission.
  1732. config BLE_MESH_GATT_PROXY_SERVER
  1733. bool "BLE Mesh GATT Proxy Server"
  1734. select BLE_MESH_PROXY
  1735. depends on BLE_MESH_NODE
  1736. default y
  1737. help
  1738. This option enables support for Mesh GATT Proxy Service, i.e. the
  1739. ability to act as a proxy between a Mesh GATT Client and a Mesh network.
  1740. This option should be enabled if a node is going to be a Proxy Server.
  1741. config BLE_MESH_NODE_ID_TIMEOUT
  1742. int "Node Identity advertising timeout"
  1743. depends on BLE_MESH_GATT_PROXY_SERVER
  1744. range 1 60
  1745. default 60
  1746. help
  1747. This option determines for how long the local node advertises using
  1748. Node Identity. The given value is in seconds. The specification limits
  1749. this to 60 seconds and lists it as the recommended value as well.
  1750. So leaving the default value is the safest option.
  1751. When an unprovisioned device is provisioned successfully and becomes a
  1752. node, it will start to advertise using Node Identity during the time
  1753. set by this option. And after that, Network ID will be advertised.
  1754. config BLE_MESH_PROXY_FILTER_SIZE
  1755. int "Maximum number of filter entries per Proxy Client"
  1756. depends on BLE_MESH_GATT_PROXY_SERVER
  1757. default 4
  1758. range 1 32767
  1759. help
  1760. This option specifies how many Proxy Filter entries the local node supports.
  1761. The entries of Proxy filter (whitelist or blacklist) are used to store a
  1762. list of addresses which can be used to decide which messages will be forwarded
  1763. to the Proxy Client by the Proxy Server.
  1764. config BLE_MESH_GATT_PROXY_CLIENT
  1765. bool "BLE Mesh GATT Proxy Client"
  1766. select BLE_MESH_PROXY
  1767. default n
  1768. help
  1769. This option enables support for Mesh GATT Proxy Client. The Proxy Client
  1770. can use the GATT bearer to send mesh messages to a node that supports the
  1771. advertising bearer.
  1772. config BLE_MESH_NET_BUF_POOL_USAGE
  1773. bool
  1774. default y
  1775. help
  1776. Enable BLE Mesh net buffer pool tracking. This option is used to introduce another
  1777. variable in the bottom layer to record the usage of advertising buffers of BLE Mesh
  1778. devices. Recommend to enable this option as default.
  1779. config BLE_MESH_SETTINGS
  1780. bool "Store BLE Mesh configuration persistently"
  1781. default n
  1782. help
  1783. When selected, the BLE Mesh stack will take care of storing/restoring the BLE
  1784. Mesh configuration persistently in flash.
  1785. If the device is a BLE Mesh node, when this option is enabled, the configuration
  1786. of the device will be stored persistently, including unicast address, NetKey,
  1787. AppKey, etc.
  1788. And if the device is a BLE Mesh Provisioner, the information of the device will
  1789. be stored persistently, including the information of provisioned nodes, NetKey,
  1790. AppKey, etc.
  1791. if BLE_MESH_SETTINGS
  1792. config BLE_MESH_STORE_TIMEOUT
  1793. int "Delay (in seconds) before storing anything persistently"
  1794. range 0 1000000
  1795. default 0
  1796. help
  1797. This value defines in seconds how soon any pending changes are actually
  1798. written into persistent storage (flash) after a change occurs.
  1799. The option allows nodes to delay a certain period of time to save proper
  1800. information to flash. The default value is 0, which means information
  1801. will be stored immediately once there are updates.
  1802. config BLE_MESH_SEQ_STORE_RATE
  1803. int "How often the sequence number gets updated in storage"
  1804. range 0 1000000
  1805. default 0
  1806. help
  1807. This value defines how often the local sequence number gets updated in
  1808. persistent storage (i.e. flash). e.g. a value of 100 means that the
  1809. sequence number will be stored to flash on every 100th increment.
  1810. If the node sends messages very frequently a higher value makes more
  1811. sense, whereas if the node sends infrequently a value as low as 0
  1812. (update storage for every increment) can make sense. When the stack
  1813. gets initialized it will add sequence number to the last stored one,
  1814. so that it starts off with a value that's guaranteed to be larger than
  1815. the last one used before power off.
  1816. config BLE_MESH_RPL_STORE_TIMEOUT
  1817. int "Minimum frequency that the RPL gets updated in storage"
  1818. range 0 1000000
  1819. default 0
  1820. help
  1821. This value defines in seconds how soon the RPL (Replay Protection List)
  1822. gets written to persistent storage after a change occurs. If the node
  1823. receives messages frequently, then a large value is recommended. If the
  1824. node receives messages rarely, then the value can be as low as 0 (which
  1825. means the RPL is written into the storage immediately).
  1826. Note that if the node operates in a security-sensitive case, and there is
  1827. a risk of sudden power-off, then a value of 0 is strongly recommended.
  1828. Otherwise, a power loss before RPL being written into the storage may
  1829. introduce message replay attacks and system security will be in a
  1830. vulnerable state.
  1831. config BLE_MESH_SETTINGS_BACKWARD_COMPATIBILITY
  1832. bool "A specific option for settings backward compatibility"
  1833. depends on BLE_MESH_NODE
  1834. default n
  1835. help
  1836. This option is created to solve the issue of failure in recovering
  1837. node information after mesh stack updates. In the old version mesh
  1838. stack, there is no key of "mesh/role" in nvs. In the new version
  1839. mesh stack, key of "mesh/role" is added in nvs, recovering node
  1840. information needs to check "mesh/role" key in nvs and implements
  1841. selective recovery of mesh node information. Therefore, there may
  1842. be failure in recovering node information during node restarting
  1843. after OTA.
  1844. The new version mesh stack adds the option of "mesh/role" because
  1845. we have added the support of storing Provisioner information, while
  1846. the old version only supports storing node information.
  1847. If users are updating their nodes from old version to new version,
  1848. we recommend enabling this option, so that system could set the flag
  1849. in advance before recovering node information and make sure the node
  1850. information recovering could work as expected.
  1851. config BLE_MESH_SPECIFIC_PARTITION
  1852. bool "Use a specific NVS partition for BLE Mesh"
  1853. default n
  1854. help
  1855. When selected, the mesh stack will use a specified NVS partition instead of
  1856. default NVS partition. Note that the specified partition must be registered
  1857. with NVS using nvs_flash_init_partition() API, and the partition must exists
  1858. in the csv file.
  1859. When Provisioner needs to store a large amount of nodes' information in the
  1860. flash (e.g. more than 20), this option is recommended to be enabled.
  1861. config BLE_MESH_PARTITION_NAME
  1862. string "Name of the NVS partition for BLE Mesh"
  1863. depends on BLE_MESH_SPECIFIC_PARTITION
  1864. default "ble_mesh"
  1865. help
  1866. This value defines the name of the specified NVS partition used by the
  1867. mesh stack.
  1868. config BLE_MESH_USE_MULTIPLE_NAMESPACE
  1869. bool "Support using multiple NVS namespaces by Provisioner"
  1870. depends on BLE_MESH_PROVISIONER
  1871. default n
  1872. help
  1873. When selected, Provisioner can use different NVS namespaces to store
  1874. different instances of mesh information.
  1875. For example, if in the first room, Provisioner uses NetKey A, AppKey
  1876. A and provisions three devices, these information will be treated as
  1877. mesh information instance A. When the Provisioner moves to the second
  1878. room, it uses NetKey B, AppKey B and provisions two devices, then the
  1879. information will be treated as mesh information instance B.
  1880. Here instance A and instance B will be stored in different namespaces.
  1881. With this option enabled, Provisioner needs to use specific functions
  1882. to open the corresponding NVS namespace, restore the mesh information,
  1883. release the mesh information or erase the mesh information.
  1884. config BLE_MESH_MAX_NVS_NAMESPACE
  1885. int "Maximum number of NVS namespaces"
  1886. depends on BLE_MESH_USE_MULTIPLE_NAMESPACE
  1887. default 2
  1888. range 1 255
  1889. help
  1890. This option specifies the maximum NVS namespaces supported by Provisioner.
  1891. endif # if BLE_MESH_SETTINGS
  1892. config BLE_MESH_SUBNET_COUNT
  1893. int "Maximum number of mesh subnets per network"
  1894. default 3
  1895. range 1 4096
  1896. help
  1897. This option specifies how many subnets a Mesh network can have at the same time.
  1898. Indeed, this value decides the number of the network keys which can be owned by a node.
  1899. config BLE_MESH_APP_KEY_COUNT
  1900. int "Maximum number of application keys per network"
  1901. default 3
  1902. range 1 4096
  1903. help
  1904. This option specifies how many application keys the device can store per network.
  1905. Indeed, this value decides the number of the application keys which can be owned by a node.
  1906. config BLE_MESH_MODEL_KEY_COUNT
  1907. int "Maximum number of application keys per model"
  1908. default 3
  1909. range 1 4096
  1910. help
  1911. This option specifies the maximum number of application keys to which each model
  1912. can be bound.
  1913. config BLE_MESH_MODEL_GROUP_COUNT
  1914. int "Maximum number of group address subscriptions per model"
  1915. default 3
  1916. range 1 4096
  1917. help
  1918. This option specifies the maximum number of addresses to which each model can
  1919. be subscribed.
  1920. config BLE_MESH_LABEL_COUNT
  1921. int "Maximum number of Label UUIDs used for Virtual Addresses"
  1922. default 3
  1923. range 0 4096
  1924. help
  1925. This option specifies how many Label UUIDs can be stored.
  1926. Indeed, this value decides the number of the Virtual Addresses can be supported by a node.
  1927. config BLE_MESH_CRPL
  1928. int "Maximum capacity of the replay protection list"
  1929. default 10
  1930. range 2 65535
  1931. help
  1932. This option specifies the maximum capacity of the replay protection list.
  1933. It is similar to Network message cache size, but has a different purpose.
  1934. The replay protection list is used to prevent a node from replay attack,
  1935. which will store the source address and sequence number of the received
  1936. mesh messages.
  1937. For Provisioner, the replay protection list size should not be smaller than
  1938. the maximum number of nodes whose information can be stored. And the element
  1939. number of each node should also be taken into consideration. For example, if
  1940. Provisioner can provision up to 20 nodes and each node contains two elements,
  1941. then the replay protection list size of Provisioner should be at least 40.
  1942. config BLE_MESH_MSG_CACHE_SIZE
  1943. int "Network message cache size"
  1944. default 10
  1945. range 2 65535
  1946. help
  1947. Number of messages that are cached for the network. This helps prevent
  1948. unnecessary decryption operations and unnecessary relays. This option
  1949. is similar to Replay protection list, but has a different purpose.
  1950. A node is not required to cache the entire Network PDU and may cache
  1951. only part of it for tracking, such as values for SRC/SEQ or others.
  1952. config BLE_MESH_ADV_BUF_COUNT
  1953. int "Number of advertising buffers"
  1954. default 60
  1955. range 6 256
  1956. help
  1957. Number of advertising buffers available. The transport layer reserves
  1958. ADV_BUF_COUNT - 3 buffers for outgoing segments. The maximum outgoing
  1959. SDU size is 12 times this value (out of which 4 or 8 bytes are used
  1960. for the Transport Layer MIC). For example, 5 segments means the maximum
  1961. SDU size is 60 bytes, which leaves 56 bytes for application layer data
  1962. using a 4-byte MIC, or 52 bytes using an 8-byte MIC.
  1963. config BLE_MESH_IVU_DIVIDER
  1964. int "Divider for IV Update state refresh timer"
  1965. default 4
  1966. range 2 96
  1967. help
  1968. When the IV Update state enters Normal operation or IV Update
  1969. in Progress, we need to keep track of how many hours has passed
  1970. in the state, since the specification requires us to remain in
  1971. the state at least for 96 hours (Update in Progress has an
  1972. additional upper limit of 144 hours).
  1973. In order to fulfill the above requirement, even if the node might
  1974. be powered off once in a while, we need to store persistently
  1975. how many hours the node has been in the state. This doesn't
  1976. necessarily need to happen every hour (thanks to the flexible
  1977. duration range). The exact cadence will depend a lot on the
  1978. ways that the node will be used and what kind of power source it
  1979. has.
  1980. Since there is no single optimal answer, this configuration
  1981. option allows specifying a divider, i.e. how many intervals
  1982. the 96 hour minimum gets split into. After each interval the
  1983. duration that the node has been in the current state gets
  1984. stored to flash. E.g. the default value of 4 means that the
  1985. state is saved every 24 hours (96 / 4).
  1986. config BLE_MESH_TX_SEG_MSG_COUNT
  1987. int "Maximum number of simultaneous outgoing segmented messages"
  1988. default 1
  1989. range 1 BLE_MESH_ADV_BUF_COUNT
  1990. help
  1991. Maximum number of simultaneous outgoing multi-segment and/or reliable messages.
  1992. The default value is 1, which means the device can only send one segmented
  1993. message at a time. And if another segmented message is going to be sent, it
  1994. should wait for the completion of the previous one.
  1995. If users are going to send multiple segmented messages at the same time, this
  1996. value should be configured properly.
  1997. config BLE_MESH_RX_SEG_MSG_COUNT
  1998. int "Maximum number of simultaneous incoming segmented messages"
  1999. default 1
  2000. range 1 255
  2001. help
  2002. Maximum number of simultaneous incoming multi-segment and/or reliable messages.
  2003. The default value is 1, which means the device can only receive one segmented
  2004. message at a time. And if another segmented message is going to be received,
  2005. it should wait for the completion of the previous one.
  2006. If users are going to receive multiple segmented messages at the same time, this
  2007. value should be configured properly.
  2008. config BLE_MESH_RX_SDU_MAX
  2009. int "Maximum incoming Upper Transport Access PDU length"
  2010. default 384
  2011. range 36 384
  2012. help
  2013. Maximum incoming Upper Transport Access PDU length. Leave this to the default
  2014. value, unless you really need to optimize memory usage.
  2015. config BLE_MESH_TX_SEG_MAX
  2016. int "Maximum number of segments in outgoing messages"
  2017. default 32
  2018. range 2 32
  2019. help
  2020. Maximum number of segments supported for outgoing messages.
  2021. This value should typically be fine-tuned based on what
  2022. models the local node supports, i.e. what's the largest
  2023. message payload that the node needs to be able to send.
  2024. This value affects memory and call stack consumption, which
  2025. is why the default is lower than the maximum that the
  2026. specification would allow (32 segments).
  2027. The maximum outgoing SDU size is 12 times this number (out of
  2028. which 4 or 8 bytes is used for the Transport Layer MIC). For
  2029. example, 5 segments means the maximum SDU size is 60 bytes,
  2030. which leaves 56 bytes for application layer data using a
  2031. 4-byte MIC and 52 bytes using an 8-byte MIC.
  2032. Be sure to specify a sufficient number of advertising buffers
  2033. when setting this option to a higher value. There must be at
  2034. least three more advertising buffers (BLE_MESH_ADV_BUF_COUNT)
  2035. as there are outgoing segments.
  2036. config BLE_MESH_RELAY
  2037. bool "Relay support"
  2038. depends on BLE_MESH_NODE
  2039. default y
  2040. help
  2041. Support for acting as a Mesh Relay Node. Enabling this option will allow
  2042. a node to support the Relay feature, and the Relay feature can still
  2043. be enabled or disabled by proper configuration messages. Disabling this
  2044. option will let a node not support the Relay feature.
  2045. if BLE_MESH_RELAY
  2046. config BLE_MESH_RELAY_ADV_BUF
  2047. bool "Use separate advertising buffers for relay packets"
  2048. default n
  2049. help
  2050. When selected, self-send packets will be put in a high-priority
  2051. queue and relay packets will be put in a low-priority queue.
  2052. if BLE_MESH_RELAY_ADV_BUF
  2053. config BLE_MESH_RELAY_ADV_BUF_COUNT
  2054. int "Number of advertising buffers for relay packets"
  2055. default 60
  2056. range 6 256
  2057. help
  2058. Number of advertising buffers for relay packets available.
  2059. endif # BLE_MESH_RELAY_ADV_BUF
  2060. endif # BLE_MESH_RELAY
  2061. config BLE_MESH_LOW_POWER
  2062. bool "Support for Low Power features"
  2063. depends on BLE_MESH_NODE
  2064. help
  2065. Enable this option to operate as a Low Power Node. If low power consumption
  2066. is required by a node, this option should be enabled. And once the node
  2067. enters the mesh network, it will try to find a Friend node and establish a
  2068. friendship.
  2069. if BLE_MESH_LOW_POWER
  2070. config BLE_MESH_LPN_ESTABLISHMENT
  2071. bool "Perform Friendship establishment using low power"
  2072. default n
  2073. help
  2074. Perform the Friendship establishment using low power with the help of a
  2075. reduced scan duty cycle. The downside of this is that the node may miss
  2076. out on messages intended for it until it has successfully set up Friendship
  2077. with a Friend node.
  2078. When this option is enabled, the node will stop scanning for a period of
  2079. time after a Friend Request or Friend Poll is sent, so as to reduce more
  2080. power consumption.
  2081. config BLE_MESH_LPN_AUTO
  2082. bool "Automatically start looking for Friend nodes once provisioned"
  2083. default n
  2084. help
  2085. Once provisioned, automatically enable LPN functionality and start looking
  2086. for Friend nodes. If this option is disabled LPN mode needs to be manually
  2087. enabled by calling bt_mesh_lpn_set(true).
  2088. When an unprovisioned device is provisioned successfully and becomes a node,
  2089. enabling this option will trigger the node starts to send Friend Request at
  2090. a certain period until it finds a proper Friend node.
  2091. config BLE_MESH_LPN_AUTO_TIMEOUT
  2092. int "Time from last received message before going to LPN mode"
  2093. default 15
  2094. range 0 3600
  2095. depends on BLE_MESH_LPN_AUTO
  2096. help
  2097. Time in seconds from the last received message, that the node waits out
  2098. before starting to look for Friend nodes.
  2099. config BLE_MESH_LPN_RETRY_TIMEOUT
  2100. int "Retry timeout for Friend requests"
  2101. default 6
  2102. range 1 3600
  2103. help
  2104. Time in seconds between Friend Requests, if a previous Friend Request did
  2105. not yield any acceptable Friend Offers.
  2106. config BLE_MESH_LPN_RSSI_FACTOR
  2107. int "RSSIFactor, used in Friend Offer Delay calculation"
  2108. range 0 3
  2109. default 0
  2110. help
  2111. The contribution of the RSSI, measured by the Friend node, used in Friend
  2112. Offer Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
  2113. RSSIFactor, one of the parameters carried by Friend Request sent by Low Power
  2114. node, which is used to calculate the Friend Offer Delay.
  2115. config BLE_MESH_LPN_RECV_WIN_FACTOR
  2116. int "ReceiveWindowFactor, used in Friend Offer Delay calculation"
  2117. range 0 3
  2118. default 0
  2119. help
  2120. The contribution of the supported Receive Window used in Friend Offer
  2121. Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
  2122. ReceiveWindowFactor, one of the parameters carried by Friend Request sent by
  2123. Low Power node, which is used to calculate the Friend Offer Delay.
  2124. config BLE_MESH_LPN_MIN_QUEUE_SIZE
  2125. int "Minimum size of the acceptable friend queue (MinQueueSizeLog)"
  2126. range 1 7
  2127. default 1
  2128. help
  2129. The MinQueueSizeLog field is defined as log_2(N), where N is the minimum
  2130. number of maximum size Lower Transport PDUs that the Friend node can store
  2131. in its Friend Queue. As an example, MinQueueSizeLog value 1 gives N = 2,
  2132. and value 7 gives N = 128.
  2133. config BLE_MESH_LPN_RECV_DELAY
  2134. int "Receive delay requested by the local node"
  2135. range 10 255
  2136. default 100
  2137. help
  2138. The ReceiveDelay is the time between the Low Power node sending a
  2139. request and listening for a response. This delay allows the Friend
  2140. node time to prepare the response. The value is in units of milliseconds.
  2141. config BLE_MESH_LPN_POLL_TIMEOUT
  2142. int "The value of the PollTimeout timer"
  2143. range 10 244735
  2144. default 300
  2145. help
  2146. PollTimeout timer is used to measure time between two consecutive
  2147. requests sent by a Low Power node. If no requests are received
  2148. the Friend node before the PollTimeout timer expires, then the
  2149. friendship is considered terminated. The value is in units of 100
  2150. milliseconds, so e.g. a value of 300 means 30 seconds.
  2151. The smaller the value, the faster the Low Power node tries to get
  2152. messages from corresponding Friend node and vice versa.
  2153. config BLE_MESH_LPN_INIT_POLL_TIMEOUT
  2154. int "The starting value of the PollTimeout timer"
  2155. range 10 BLE_MESH_LPN_POLL_TIMEOUT
  2156. default BLE_MESH_LPN_POLL_TIMEOUT
  2157. help
  2158. The initial value of the PollTimeout timer when Friendship is to be
  2159. established for the first time. After this, the timeout gradually
  2160. grows toward the actual PollTimeout, doubling in value for each iteration.
  2161. The value is in units of 100 milliseconds, so e.g. a value of 300 means
  2162. 30 seconds.
  2163. config BLE_MESH_LPN_SCAN_LATENCY
  2164. int "Latency for enabling scanning"
  2165. range 0 50
  2166. default 10
  2167. help
  2168. Latency (in milliseconds) is the time it takes to enable scanning. In
  2169. practice, it means how much time in advance of the Receive Window, the
  2170. request to enable scanning is made.
  2171. config BLE_MESH_LPN_GROUPS
  2172. int "Number of groups the LPN can subscribe to"
  2173. range 0 16384
  2174. default 8
  2175. help
  2176. Maximum number of groups to which the LPN can subscribe.
  2177. endif # BLE_MESH_LOW_POWER
  2178. config BLE_MESH_FRIEND
  2179. bool "Support for Friend feature"
  2180. help
  2181. Enable this option to be able to act as a Friend Node.
  2182. if BLE_MESH_FRIEND
  2183. config BLE_MESH_FRIEND_RECV_WIN
  2184. int "Friend Receive Window"
  2185. range 1 255
  2186. default 255
  2187. help
  2188. Receive Window in milliseconds supported by the Friend node.
  2189. config BLE_MESH_FRIEND_QUEUE_SIZE
  2190. int "Minimum number of buffers supported per Friend Queue"
  2191. range 2 65536
  2192. default 16
  2193. help
  2194. Minimum number of buffers available to be stored for each local Friend Queue.
  2195. This option decides the size of each buffer which can be used by a Friend node
  2196. to store messages for each Low Power node.
  2197. config BLE_MESH_FRIEND_SUB_LIST_SIZE
  2198. int "Friend Subscription List Size"
  2199. range 0 1023
  2200. default 3
  2201. help
  2202. Size of the Subscription List that can be supported by a Friend node for a
  2203. Low Power node. And Low Power node can send Friend Subscription List Add or
  2204. Friend Subscription List Remove messages to the Friend node to add or remove
  2205. subscription addresses.
  2206. config BLE_MESH_FRIEND_LPN_COUNT
  2207. int "Number of supported LPN nodes"
  2208. range 1 1000
  2209. default 2
  2210. help
  2211. Number of Low Power Nodes with which a Friend can have Friendship simultaneously.
  2212. A Friend node can have friendship with multiple Low Power nodes at the same time,
  2213. while a Low Power node can only establish friendship with only one Friend node at
  2214. the same time.
  2215. config BLE_MESH_FRIEND_SEG_RX
  2216. int "Number of incomplete segment lists per LPN"
  2217. range 1 1000
  2218. default 1
  2219. help
  2220. Number of incomplete segment lists tracked for each Friends' LPN.
  2221. In other words, this determines from how many elements can segmented
  2222. messages destined for the Friend queue be received simultaneously.
  2223. endif # BLE_MESH_FRIEND
  2224. config BLE_MESH_NO_LOG
  2225. bool "Disable BLE Mesh debug logs (minimize bin size)"
  2226. depends on BLE_MESH
  2227. default n
  2228. help
  2229. Select this to save the BLE Mesh related rodata code size. Enabling this option
  2230. will disable the output of BLE Mesh debug log.
  2231. menu "BLE Mesh STACK DEBUG LOG LEVEL"
  2232. depends on BLE_MESH && !BLE_MESH_NO_LOG
  2233. choice BLE_MESH_STACK_TRACE_LEVEL
  2234. prompt "BLE_MESH_STACK"
  2235. default BLE_MESH_TRACE_LEVEL_WARNING
  2236. depends on BLE_MESH && !BLE_MESH_NO_LOG
  2237. help
  2238. Define BLE Mesh trace level for BLE Mesh stack.
  2239. config BLE_MESH_TRACE_LEVEL_NONE
  2240. bool "NONE"
  2241. config BLE_MESH_TRACE_LEVEL_ERROR
  2242. bool "ERROR"
  2243. config BLE_MESH_TRACE_LEVEL_WARNING
  2244. bool "WARNING"
  2245. config BLE_MESH_TRACE_LEVEL_INFO
  2246. bool "INFO"
  2247. config BLE_MESH_TRACE_LEVEL_DEBUG
  2248. bool "DEBUG"
  2249. config BLE_MESH_TRACE_LEVEL_VERBOSE
  2250. bool "VERBOSE"
  2251. endchoice
  2252. config BLE_MESH_STACK_TRACE_LEVEL
  2253. int
  2254. depends on BLE_MESH
  2255. default 0 if BLE_MESH_TRACE_LEVEL_NONE
  2256. default 1 if BLE_MESH_TRACE_LEVEL_ERROR
  2257. default 2 if BLE_MESH_TRACE_LEVEL_WARNING
  2258. default 3 if BLE_MESH_TRACE_LEVEL_INFO
  2259. default 4 if BLE_MESH_TRACE_LEVEL_DEBUG
  2260. default 5 if BLE_MESH_TRACE_LEVEL_VERBOSE
  2261. default 2
  2262. endmenu #BLE Mesh DEBUG LOG LEVEL
  2263. menu "BLE Mesh NET BUF DEBUG LOG LEVEL"
  2264. depends on BLE_MESH && !BLE_MESH_NO_LOG
  2265. choice BLE_MESH_NET_BUF_TRACE_LEVEL
  2266. prompt "BLE_MESH_NET_BUF"
  2267. default BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
  2268. depends on BLE_MESH && !BLE_MESH_NO_LOG
  2269. help
  2270. Define BLE Mesh trace level for BLE Mesh net buffer.
  2271. config BLE_MESH_NET_BUF_TRACE_LEVEL_NONE
  2272. bool "NONE"
  2273. config BLE_MESH_NET_BUF_TRACE_LEVEL_ERROR
  2274. bool "ERROR"
  2275. config BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
  2276. bool "WARNING"
  2277. config BLE_MESH_NET_BUF_TRACE_LEVEL_INFO
  2278. bool "INFO"
  2279. config BLE_MESH_NET_BUF_TRACE_LEVEL_DEBUG
  2280. bool "DEBUG"
  2281. config BLE_MESH_NET_BUF_TRACE_LEVEL_VERBOSE
  2282. bool "VERBOSE"
  2283. endchoice
  2284. config BLE_MESH_NET_BUF_TRACE_LEVEL
  2285. int
  2286. depends on BLE_MESH
  2287. default 0 if BLE_MESH_NET_BUF_TRACE_LEVEL_NONE
  2288. default 1 if BLE_MESH_NET_BUF_TRACE_LEVEL_ERROR
  2289. default 2 if BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
  2290. default 3 if BLE_MESH_NET_BUF_TRACE_LEVEL_INFO
  2291. default 4 if BLE_MESH_NET_BUF_TRACE_LEVEL_DEBUG
  2292. default 5 if BLE_MESH_NET_BUF_TRACE_LEVEL_VERBOSE
  2293. default 2
  2294. endmenu #BLE Mesh NET BUF DEBUG LOG LEVEL
  2295. config BLE_MESH_CLIENT_MSG_TIMEOUT
  2296. int "Timeout(ms) for client message response"
  2297. range 100 1200000
  2298. default 4000
  2299. help
  2300. Timeout value used by the node to get response of the acknowledged
  2301. message which is sent by the client model.
  2302. This value indicates the maximum time that a client model waits for
  2303. the response of the sent acknowledged messages. If a client model
  2304. uses 0 as the timeout value when sending acknowledged messages, then
  2305. the default value will be used which is four seconds.
  2306. menu "Support for BLE Mesh Foundation models"
  2307. config BLE_MESH_CFG_CLI
  2308. bool "Configuration Client model"
  2309. help
  2310. Enable support for Configuration Client model.
  2311. config BLE_MESH_HEALTH_CLI
  2312. bool "Health Client model"
  2313. help
  2314. Enable support for Health Client model.
  2315. config BLE_MESH_HEALTH_SRV
  2316. bool "Health Server model"
  2317. default y
  2318. help
  2319. Enable support for Health Server model.
  2320. endmenu #Support for BLE Mesh Foundation models
  2321. menu "Support for BLE Mesh Client/Server models"
  2322. config BLE_MESH_GENERIC_ONOFF_CLI
  2323. bool "Generic OnOff Client model"
  2324. help
  2325. Enable support for Generic OnOff Client model.
  2326. config BLE_MESH_GENERIC_LEVEL_CLI
  2327. bool "Generic Level Client model"
  2328. help
  2329. Enable support for Generic Level Client model.
  2330. config BLE_MESH_GENERIC_DEF_TRANS_TIME_CLI
  2331. bool "Generic Default Transition Time Client model"
  2332. help
  2333. Enable support for Generic Default Transition Time Client model.
  2334. config BLE_MESH_GENERIC_POWER_ONOFF_CLI
  2335. bool "Generic Power OnOff Client model"
  2336. help
  2337. Enable support for Generic Power OnOff Client model.
  2338. config BLE_MESH_GENERIC_POWER_LEVEL_CLI
  2339. bool "Generic Power Level Client model"
  2340. help
  2341. Enable support for Generic Power Level Client model.
  2342. config BLE_MESH_GENERIC_BATTERY_CLI
  2343. bool "Generic Battery Client model"
  2344. help
  2345. Enable support for Generic Battery Client model.
  2346. config BLE_MESH_GENERIC_LOCATION_CLI
  2347. bool "Generic Location Client model"
  2348. help
  2349. Enable support for Generic Location Client model.
  2350. config BLE_MESH_GENERIC_PROPERTY_CLI
  2351. bool "Generic Property Client model"
  2352. help
  2353. Enable support for Generic Property Client model.
  2354. config BLE_MESH_SENSOR_CLI
  2355. bool "Sensor Client model"
  2356. help
  2357. Enable support for Sensor Client model.
  2358. config BLE_MESH_TIME_CLI
  2359. bool "Time Client model"
  2360. help
  2361. Enable support for Time Client model.
  2362. config BLE_MESH_SCENE_CLI
  2363. bool "Scene Client model"
  2364. help
  2365. Enable support for Scene Client model.
  2366. config BLE_MESH_SCHEDULER_CLI
  2367. bool "Scheduler Client model"
  2368. help
  2369. Enable support for Scheduler Client model.
  2370. config BLE_MESH_LIGHT_LIGHTNESS_CLI
  2371. bool "Light Lightness Client model"
  2372. help
  2373. Enable support for Light Lightness Client model.
  2374. config BLE_MESH_LIGHT_CTL_CLI
  2375. bool "Light CTL Client model"
  2376. help
  2377. Enable support for Light CTL Client model.
  2378. config BLE_MESH_LIGHT_HSL_CLI
  2379. bool "Light HSL Client model"
  2380. help
  2381. Enable support for Light HSL Client model.
  2382. config BLE_MESH_LIGHT_XYL_CLI
  2383. bool "Light XYL Client model"
  2384. help
  2385. Enable support for Light XYL Client model.
  2386. config BLE_MESH_LIGHT_LC_CLI
  2387. bool "Light LC Client model"
  2388. help
  2389. Enable support for Light LC Client model.
  2390. config BLE_MESH_GENERIC_SERVER
  2391. bool "Generic server models"
  2392. default y
  2393. help
  2394. Enable support for Generic server models.
  2395. config BLE_MESH_SENSOR_SERVER
  2396. bool "Sensor server models"
  2397. default y
  2398. help
  2399. Enable support for Sensor server models.
  2400. config BLE_MESH_TIME_SCENE_SERVER
  2401. bool "Time and Scenes server models"
  2402. default y
  2403. help
  2404. Enable support for Time and Scenes server models.
  2405. config BLE_MESH_LIGHTING_SERVER
  2406. bool "Lighting server models"
  2407. default y
  2408. help
  2409. Enable support for Lighting server models.
  2410. endmenu #Support for BLE Mesh Client/Server models
  2411. config BLE_MESH_IV_UPDATE_TEST
  2412. bool "Test the IV Update Procedure"
  2413. default n
  2414. help
  2415. This option removes the 96 hour limit of the IV Update Procedure and
  2416. lets the state to be changed at any time.
  2417. If IV Update test mode is going to be used, this option should be enabled.
  2418. menu "BLE Mesh specific test option"
  2419. config BLE_MESH_SELF_TEST
  2420. bool "Perform BLE Mesh self-tests"
  2421. default n
  2422. help
  2423. This option adds extra self-tests which are run every time BLE Mesh
  2424. networking is initialized.
  2425. if BLE_MESH_SELF_TEST
  2426. config BLE_MESH_TEST_AUTO_ENTER_NETWORK
  2427. bool "Unprovisioned device enters mesh network automatically"
  2428. default y
  2429. help
  2430. With this option enabled, an unprovisioned device can automatically
  2431. enters mesh network using a specific test function without the pro-
  2432. visioning procedure. And on the Provisioner side, a test function
  2433. needs to be invoked to add the node information into the mesh stack.
  2434. config BLE_MESH_TEST_USE_WHITE_LIST
  2435. bool "Use white list to filter mesh advertising packets"
  2436. default n
  2437. help
  2438. With this option enabled, users can use white list to filter mesh
  2439. advertising packets while scanning.
  2440. endif # BLE_MESH_SELF_TEST
  2441. config BLE_MESH_SHELL
  2442. bool "Enable BLE Mesh shell"
  2443. default n
  2444. help
  2445. Activate shell module that provides BLE Mesh commands to the console.
  2446. config BLE_MESH_DEBUG
  2447. bool "Enable BLE Mesh debug logs"
  2448. default n
  2449. help
  2450. Enable debug logs for the BLE Mesh functionality.
  2451. if BLE_MESH_DEBUG
  2452. config BLE_MESH_DEBUG_NET
  2453. bool "Network layer debug"
  2454. help
  2455. Enable Network layer debug logs for the BLE Mesh functionality.
  2456. config BLE_MESH_DEBUG_TRANS
  2457. bool "Transport layer debug"
  2458. help
  2459. Enable Transport layer debug logs for the BLE Mesh functionality.
  2460. config BLE_MESH_DEBUG_BEACON
  2461. bool "Beacon debug"
  2462. help
  2463. Enable Beacon-related debug logs for the BLE Mesh functionality.
  2464. config BLE_MESH_DEBUG_CRYPTO
  2465. bool "Crypto debug"
  2466. help
  2467. Enable cryptographic debug logs for the BLE Mesh functionality.
  2468. config BLE_MESH_DEBUG_PROV
  2469. bool "Provisioning debug"
  2470. help
  2471. Enable Provisioning debug logs for the BLE Mesh functionality.
  2472. config BLE_MESH_DEBUG_ACCESS
  2473. bool "Access layer debug"
  2474. help
  2475. Enable Access layer debug logs for the BLE Mesh functionality.
  2476. config BLE_MESH_DEBUG_MODEL
  2477. bool "Foundation model debug"
  2478. help
  2479. Enable Foundation Models debug logs for the BLE Mesh functionality.
  2480. config BLE_MESH_DEBUG_ADV
  2481. bool "Advertising debug"
  2482. help
  2483. Enable advertising debug logs for the BLE Mesh functionality.
  2484. config BLE_MESH_DEBUG_LOW_POWER
  2485. bool "Low Power debug"
  2486. help
  2487. Enable Low Power debug logs for the BLE Mesh functionality.
  2488. config BLE_MESH_DEBUG_FRIEND
  2489. bool "Friend debug"
  2490. help
  2491. Enable Friend debug logs for the BLE Mesh functionality.
  2492. config BLE_MESH_DEBUG_PROXY
  2493. bool "Proxy debug"
  2494. depends on BLE_MESH_PROXY
  2495. help
  2496. Enable Proxy protocol debug logs for the BLE Mesh functionality.
  2497. endif # BLE_MESH_DEBUG
  2498. endmenu
  2499. endif # BLE_MESH