Commit graph

86 commits

Author SHA1 Message Date
Prasad Alatkar
4fb4c01c53 NimBLE: Add Host based privacy (RPA) feature support (v3.3)
- This feature removes dependency on controller to use privacy (RPA)
2020-03-15 21:43:01 +05:30
Prasad Alatkar
237f7eb92a NimBLE: Fix check for static random address & add MSYS_1 in menuconfig (v3.3) 2020-03-15 21:43:01 +05:30
Hrishikesh Dhayagude
5ca8851be8 NimBLE: Use dynamic buffers instead of static memory (v3.3)
The NimBLE host buffers that consume a significant amount of memory are
now allocated dynamically.
The advantage is that, the memory can be reclaimed in cases where BLE
is turned off and not required for the current boot cycle
2020-03-15 21:43:01 +05:30
Prasad Alatkar
b6c88b683f NimBLE: Misc changes in host flow control, ble_gap_unpair, ble_hs_hci_rx_evt & example (v3.3)
- Add menuconfig option for NimBLE host flow control
- Include changes in `blecent` example from upstream PR!702
- add ble_hs_lock in ble_gap_unpair Upstream PR!584
- ble_hs_hci_rx_evt, upstream PR!738
2020-03-15 21:43:01 +05:30
Jiang Jiang Jian
91f0fcc3b3 Merge branch 'feat/nimble_esp_ble_mesh_v3.3' into 'release/v3.3'
Add support of NimBLE host in ESP-BLE-Mesh (backport v3.3)

See merge request espressif/esp-idf!7510
2020-02-14 16:43:05 +08:00
Hrishikesh Dhayagude
cf6f1e8246 Add support of NimBLE host in ESP-BLE-Mesh - v3.3 2020-02-13 12:33:23 +05:30
Jiang Jiang Jian
2eb4374a5b Merge branch 'bugfix/coex_schm_rebased_v3.3' into 'release/v3.3'
components/esp_wifi: improve coexistence performance according to specific WiFi/BT/BLE scienario (Backport v3.3)

See merge request espressif/esp-idf!7410
2020-02-12 17:07:18 +08:00
Xia Xiaotian
a41443184e components/esp_wifi: improve coexistence performance according to specific WiFi/BT/BLE scienario
1. Improve WiFi throughput in some Classic BT scienarios(idle, inquire scan,
       connected, sniff, a2dp pause, etc).

    2. Support WiFi + Classic BT + BLE mesh coexistence scienario.

    3. Improve WiFi scan and connect succeed ratio in coexistence scienario.

    4. Do not support to choose software coexistence preference anymore for it is
       determined according to coexistence scienario automatically.

components/lwip: increase TCP send buffer and receive window limitation when TCP window scale is enabled

components/ble_mesh: Fix some bugs about ble mesh

    1. fix send acl pkt after ble have sent terminate ind modify min adv interval to 10ms.
2020-02-12 16:13:28 +08:00
Angus Gratton
fd348b7bd8 bugfix: bt Kconfig included a UTF-8 comma
Displays incorrectly on Python 3, but can crash Python 3 if the system default encoding is not utf-8
2020-02-07 09:10:56 +11:00
lly
b19671e0d4 ble_mesh: Add ESP BLE Mesh implementation
1. BLE Mesh Core

    * Provisioning: Node Role
        * PB-ADV and PB-GATT
        * Authentication OOB

    * Provisioning: Provisioner Role
        * PB-ADV and PB-GATT
        * Authentication OOB

    * Networking
        * Relay
        * Segmentation and Reassembly
        * Key Refresh
        * IV Update

    * Proxy Support

    * Multiple Client Models Run Simultaneously
        * Support multiple client models send packets to different nodes simultaneously
        * No blocking between client model and server

    * NVS Storage
        * Store BLE Mesh node related information in flash
        * Store BLE Mesh Provisioner related information in flash

2. BLE Mesh Models

    * Foundation Models
        * Configuration Server Model
        * Configuration Client Model
        * Health Server Model
        * Health Client Model

    * Generic
        * Generic OnOff Server
        * Generic OnOff Client
        * Generic Level Server
        * Generic Level Client
        * Generic Default Transition Time Server
        * Generic Default Transition Time Client
        * Generic Power OnOff Server
        * Generic Power OnOff Setup Server
        * Generic Power OnOff Client
        * Generic Power Level Server
        * Generic Power Level Setup Server
        * Generic Power Level Client
        * Generic Battery Server
        * Generic Battery Client
        * Generic Location Server
        * Generic Location Setup Server
        * Generic Location Client
        * Generic Admin Property Server
        * Generic Manufacturer Property Server
        * Generic User Property Server
        * Generic Client Property Server
        * Generic Property Client

    * Sensor Server Model
        * Sensor Server
        * Sensor Setup Server
        * Sensor Client

    * Time and Scenes
        * Time Server
        * Time Setup Server
        * Time Client
        * Scene Server
        * Scene Setup Server
        * Scene Client
        * Scheduler Server
        * Scheduler Setup Server
        * Scheduler Client

    * Lighting
        * Light Lightness Server
        * Light Lightness Setup Server
        * Light Lightness Client
        * Light CTL Server
        * Light CTL Setup Server
        * Light CTL Client
        * Light CTL Temperature Server
        * Light HSL Server
        * Light HSL Setup Server
        * Light HSL Client
        * Light HSL Hue Server
        * Light HSL Saturation Server
        * Light xyL Server
        * Light xyL Setup Server
        * Light xyL Client
        * Light LC Server
        * Light LC Setup Server
        * Light LC Client

3. BLE Mesh Applications

    * BLE Mesh Node
        * OnOff Client Example
        * OnOff Server Example

    * BLE Mesh Provisioner
        * Example

    * Fast Provisioning
        * Vendor Fast Prov Server Model
        * Vendor Fast Prov Client Model
        * Examples

    * Wi-Fi & BLE Mesh Coexistence
        * Example

    * BLE Mesh Console Commands
        * Examples
2020-02-03 12:03:36 +08:00
baohongde
30779731ea components/bt: backport release/v3.3
Fix A2DP stuck when BLE's interval is too small
Bugfix that bluetooth controller may not be able to enter sleep after end of wake up request
Fix LMP sniff req timeout
2020-01-16 15:47:31 +08:00
Xia Xiaotian
9592346090 Coexist: fix some coexist bugs
1. Fix high beacon and broadcast packets loss ratio of WiFi to make
   MDNS test pass.
2. Improve stability of WiFi performance with a little
   sacrifice of throughput.
3. Improve BLE advertising and connection performance with dynamic
   priority. It sacrifices a little WiFi throughput, but achieves balance
   between WiFi and Bluetooth.
4. fix bug bb reset lock flag to avoid bb reset lock unhandle
5. fix bug wifi reset mac cause task watch dog timeout
6. fix bug wifi reset mac position
2019-10-29 17:18:12 +00:00
Prasad Alatkar
3545b58986 NimBLE: Port NimBLE stack to IDF Release v3.3 (Backport v3.3)
Includes all the latest NimBLE stack changes from idf-v4.0 with few idf-v3.3
specific modifications.
- Addition of nimble component as submodule (`nimble-1.1.0-idf-v3.3`), contains
  IDF v3.3 specific minor changes.
- Example applications are identical to idf-v4.0
- Modification in `bt/Kconfig` to accommodate NimBLE as a BT host.
2019-10-18 13:23:24 +08:00
baohongde
285925a43b components:bt: backports release/v3.3 0903
Remove xtensa/xruntime.h
Fix sending Lmp_feature_req_ext in a loop
Fix 2 bugs in r_ld_fm_sket_isr
fix data loss and send same pkt twice sometimes
fix adv data error in air sometimes
fix adv start/stop crash sometimes
Fix connect fail with some speakers
clear BT/BLE interruots after controller disable
add sco_data_path to be set in sdkconfig and do not reset the value upon HCI reset command
2019-09-23 18:02:28 +08:00
zhiweijian
3295ed0995 Component/bt: add ble link timeout config in menuconfig
- add ble link timeout config in menuconfig
- disable background connection when call gatts_open
2019-04-22 21:49:59 +08:00
zhiweijian
a1546e0714 Component/bt: add BLE adv report flow control 2019-03-13 14:58:32 +08:00
zhiweijian
d71df18d92 Component/bt: fix iOS and win10 compatibility error for HID 2019-02-28 20:39:12 +08:00
Roland Dobai
80cb4a1a18 tools: Don't use backslashes in Kconfigs and ignore long lines to avoid errors
Closes https://github.com/espressif/esp-idf/issues/3012
2019-02-01 11:33:41 +01:00
Roland Dobai
37126d3451 Correct Kconfigs according to the coding style 2019-01-29 13:37:01 +01:00
Tian Hao
6c8a8664aa component/bt: add a option to make report adv data and scan response individually
Originally, when doing BLE active scan, Bluedroid will not report adv to
application layer until receive scan response. This option is used to
disable the behavior. When enable this option, Bluedroid will report
adv data or scan response to application layer immediately.
2019-01-24 14:30:02 +08:00
Jiang Jiang Jian
c4963fc329 Merge branch 'bugfix/btdm_miscellaneous_modifications' into 'master'
component/bt: some miscellaneous modifications for BLE

See merge request idf/esp-idf!4032
2019-01-02 14:04:44 +08:00
Tree
68626ed494 component/bt: some miscellaneous modifications for BLE 2018-12-26 20:36:33 +08:00
wangmengyang
74eae4b50e component/bt: add more information and description for bluetooth modem sleep
Add remark that "EVED" mode for bluetooth modem sleep is only used for internal test
2018-12-21 19:30:20 +08:00
Jiang Jiang Jian
65142bc59e Merge branch 'bugfix/btdm_configure_ssp_in_menuconfig' into 'master'
components/bt: Configure SSP in menuconfig and fix two bugs

See merge request idf/esp-idf!3892
2018-12-20 15:31:08 +08:00
baohongde
9c48528fcc components/bt: Configure SSP in menuconfig 2018-12-20 11:10:27 +08:00
wangmengyang
59f34461d7 component/bt: bugfix of bluetooth modem sleep not being able to work with Dynamic Frequency Scaling
1. start an esp_timer on entering sleep to acquire pm_lock before wake up from modem sleep
2. decrease the clock division of XTAL fed to bluetooth low power clock from 32us to 2us period to allow to work under 240MHz Max CPU frequency
3. decrease the minimum sleep duration threshold to allow shorter bluetooth modem sleep period, especially for BLE with short connection interval
4. reconfigure bluetooth baseband(BT-BB) settings after PHY/RF init upon waking up from modem sleep to avoid packet RX/TX performance degradation
2018-12-11 16:49:01 +08:00
yulong
0f3eb977cd component/bt: Added the ble full scan supported feature.
1. Add the full scan swith in the menuconfig;
2. Change the bt lib in order to support ble full scan
2018-11-30 20:48:42 +08:00
zhiweijian
9fb188a1d9 Component/bt: add gatts send service change indication API 2018-09-25 08:26:55 +00:00
wangmengyang
bca2e110fc component/bt: enable bluetooth modem sleep as default setting 2018-09-17 10:38:13 +08:00
zhiweijian
9103a04793 component/bt: add adv packet duplicate in scan duplicate 2018-09-11 02:31:11 +00:00
Angus Gratton
4eeed31a04 Merge branch 'feature/cmake' into 'master'
Merge experimental CMake support to master

See merge request idf/esp-idf!3024
2018-09-07 13:44:17 +08:00
baohongde
bd8b9960d5 component/bt: Add Legacy Pairing 2018-09-04 21:11:03 +08:00
Angus Gratton
a9c4ed7139 Merge branch 'master' into feature/cmake 2018-08-30 18:51:01 +08:00
Angus Gratton
ff2404a272 Merge branch 'master' into feature/cmake 2018-08-16 17:14:17 +10:00
Tian Hao
ab73e0ff13 tools: fix ci example build report reassign warnning 2018-08-16 11:12:22 +08:00
Tian Hao
ee787085f9 component/bt : decrease memory consumption by conn number
1. BLE only with 9(max) connection will decrease 3K DRAM
2. BR/EDR only with 7(max) connection will decrease 16K DRAM
3. Any of BLE or BR/EDR connection number decrease will also decrease DRAM consumption
4. Decrease one BLE connection will save about 1KB DRAM
5. Decrease one BR/EDR ACL connection will save about 1.2KB DRAM
6. Decrease one BR/EDR SCO/eSCO will save 2KB DRAM.
7. fix some definition and kconfig
8. remove 1.2k of vhci tx cache and make .bss & .data to heap about 1.4K
9. modify BT Reserved Memory size and modify example to support new bt kconfig
2018-08-14 02:29:17 +00:00
zhiweijian
658668b386 Component/bt: fix hci_hal_env.rx_q and xHciH4Queue blocking when scanning 2018-08-01 15:06:56 +08:00
baohongde
21af1d7339 component/bt: Add Secure Simple Pairing 2018-07-10 11:18:52 +08:00
zhiweijian
822dac5659 Component/bt: fix memory leak 2018-06-06 02:17:06 +00:00
zhiweijian
ae6b47a60a Component/bt: close BT sleep in default config 2018-06-04 11:17:27 +08:00
Angus Gratton
6b9784cc45 Merge branch 'master' into feature/cmake_update 2018-05-31 14:46:23 +10:00
Jiang Jiang Jian
affed9a235 Merge branch 'feature/a2dp-sink-source-runtime-selection' into 'master'
bt-a2dp: BT A2DP sink and source selection is now runtime

See merge request idf/esp-idf!2229
2018-05-22 22:21:39 +08:00
Amey Inamdar
ae8ed8dad8 bt-a2dp: BT A2DP sink and source selection is now runtime
Earlier they have to be selected at the compile time through sdkconfig.
A2DP sink and source application tested with this change.

Signed-off-by: Amey Inamdar <amey@espressif.com>
2018-05-21 14:02:49 +05:30
zhiweijian
340ad5c430 Component/bt: fix scan duplicate 2018-05-21 15:23:15 +08:00
wangmengyang
4c4e143a2f component/bt: implement HFP Hands Free Unit Role 2018-05-21 11:33:30 +08:00
wangmengyang
22e21b38f7 component/bt: implement bluetooth modem sleep mode, one mode for BLE only and another for dual mode bluetooth
1. provide options for bluetooth low power mode
2. provide two options for bluetooth low power clock: main XTAL and external 32kHz XTAL
3. provide function and callbacks to control bluetooth low power mode, including enable/disable sleep, software wakeup request, low power clock settings, check power state, etc
4. modify vhci API vhci_host_send_packet to use blocking mode
5. note that DFS and bluetooth modem sleep can not be used together currently.
2018-05-19 15:37:26 +08:00
Hrishikesh Dhayagude
da6cb6c741 components/bt: Improve the Bluetooth debug messaging scheme
As of now, when Bluetooth debugs are enabled, all the messages are
mapped to BT_PRINTF which is mapped to ESP_LOGE. Hence, make monitor
shows all logs in red color which might lead to missing the actual
errors

This patch maps the Bluetooth messages to appropriate ESP_LOG* messages
and improves readability.

Also, make the BT trace level be configurable in menuconfig, so that
each layer of bt trace can be enabled/disabled.

Finally, add debug log control for BTC, OSI, BLUFI and clear up
Bluetooth debug logs.

So, with this the method of enabling Bluetooth logs is as follows:
1. make menuconfig -> Component config -> Bluetooth -> Bluedroid Enable
-> BT DEBUG LOG LEVEL -> set trace level for every layer of BT

Signed-off-by: Hrishikesh Dhayagude <hrishi@espressif.com>
2018-05-14 20:45:05 +08:00
zhiweijian
cb59576dd0 Component/bt: fix service change write busy 2018-05-09 20:49:26 +08:00
Ing. Jaroslav Safka
801632d68b bt: Add option to ena/dis BLE service change registration
Add option to enable/disable automatic registration of BLE Gattc
service change notify. Which sends in parralel
(with user message flow) commands to BLE server which
sometime leads to GATT_BUSY.
(BLE server is able to handle only one command at time)

Closes https://github.com/espressif/esp-idf/issues/1575

Merges https://github.com/espressif/esp-idf/pull/1673
2018-04-10 12:27:33 +10:00
Jiang Jiang Jian
0f7d9cf7d3 Merge branch 'bugfix/btdm_a2dp_task_stack_size' into 'master'
component/bt: make A2DP source and sink task size configurable through menuconfig

See merge request idf/esp-idf!1825
2018-02-01 10:58:40 +08:00