docs(ble): Added BLE feature support status

This commit is contained in:
Yuhan Wei 2024-08-16 16:42:02 +08:00
parent 1bb33a31b8
commit 575894ee66
34 changed files with 1776 additions and 199 deletions

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="31" height="20" role="img" aria-label="N/A"><title>N/A</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="31" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="0" height="20" fill="#d8d8d8"/><rect x="0" width="31" height="20" fill="#d8d8d8"/><rect width="31" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="155" y="150" fill="#ccc" fill-opacity=".3" transform="scale(.1)" textLength="210">N/A</text><text x="155" y="140" transform="scale(.1)" fill="#333" textLength="210">N/A</text></g></svg>

After

Width:  |  Height:  |  Size: 897 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="130" height="20" role="img" aria-label="In Progress: 2024/12"><title>In Progress: 2024/12</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="130" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="73" height="20" fill="#555"/><rect x="73" width="57" height="20" fill="#007ec6"/><rect width="130" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="375" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="630">In Progress</text><text x="375" y="140" transform="scale(.1)" fill="#fff" textLength="630">In Progress</text><text aria-hidden="true" x="1005" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="470">2024/12</text><text x="1005" y="140" transform="scale(.1)" fill="#fff" textLength="470">2024/12</text></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="134" height="20" role="img" aria-label="In Progress: YYYY/MM"><title>In Progress: YYYY/MM</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="134" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="73" height="20" fill="#555"/><rect x="73" width="61" height="20" fill="#007ec6"/><rect width="134" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="375" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="630">In Progress</text><text x="375" y="140" transform="scale(.1)" fill="#fff" textLength="630">In Progress</text><text aria-hidden="true" x="1025" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">YYYY/MM</text><text x="1025" y="140" transform="scale(.1)" fill="#fff" textLength="510">YYYY/MM</text></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="83" height="20" role="img" aria-label="experimental"><title>experimental</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="83" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="0" height="20" fill="#fe7d37"/><rect x="0" width="83" height="20" fill="#fe7d37"/><rect width="83" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="415" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="730">experimental</text><text x="415" y="140" transform="scale(.1)" fill="#fff" textLength="730">experimental</text></g></svg>

After

Width:  |  Height:  |  Size: 936 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="65" height="20" role="img" aria-label="supported"><title>supported</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="65" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="0" height="20" fill="#97ca00"/><rect x="0" width="65" height="20" fill="#97ca00"/><rect width="65" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="325" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="550">supported</text><text x="325" y="140" transform="scale(.1)" fill="#fff" textLength="550">supported</text></g></svg>

After

Width:  |  Height:  |  Size: 924 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="79" height="20" role="img" aria-label="unsupported"><title>unsupported</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="79" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="0" height="20" fill="#d8d8d8"/><rect x="0" width="79" height="20" fill="#d8d8d8"/><rect width="79" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="395" y="150" fill="#ccc" fill-opacity=".3" transform="scale(.1)" textLength="690">unsupported</text><text x="395" y="140" transform="scale(.1)" fill="#333" textLength="690">unsupported</text></g></svg>

After

Width:  |  Height:  |  Size: 929 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -0,0 +1,338 @@
Major Feature Support Status
================================
:link_to_translation:`zh_CN:[中文]`
The table below shows the support status of Bluetooth Low Energy major features on {IDF_TARGET_NAME}.
|supported_def| **This feature has completed development and internal testing.** [1]_
|experimental_def| **This feature has been developed and is currently undergoing internal testing.**
You can explore these features for evaluation and feedback purposes but should be cautious of potential issues.
|developing_def| **The feature is currently being actively developed, and expected to be supported by the end of YYYY/MM.**
You should anticipate future updates regarding the progress and availability of these features.
If you do have an urgent need, please contact our `customer support team <https://www.espressif.com/en/contact-us/sales-questions>`__ for a possible feature trial.
|unsupported_def| **This feature is not supported on this chip series.** If you have related requirements, please prioritize selecting other Espressif chip series that support this feature.
If none of our chip series meet your needs, please contact `customer support team <https://www.espressif.com/en/contact-us/sales-questions>`__, and our R&D team will conduct an internal feasibility assessment for you.
|NA_def| The feature with this label could be the following two types:
- **Host-only Feature**: The feature exists only above HCI, such as GATT Caching. It does not require the support from the Controller.
- **Controller-only Feature**: The feature exists only below HCI, and cannot be configured/enabled via Host API, such as Advertising Channel Index. It does not require the support from the Host.
.. list-table::
:width: 100%
:widths: auto
:header-rows: 1
* - .. centered:: Core Spec
- .. centered:: Major Features
- .. centered:: ESP Controller
- .. centered:: ESP-Bluedroid Host
- .. centered:: ESP-NimBLE Host
* - .. centered:: |4.2|
- LE Data Packet Length Extension
- |supported|
- |supported|
- |supported|
* -
- LE Secure Connections
- |supported|
- |supported|
- |supported|
* -
- Link Layer Privacy
- |supported|
- |supported|
- |supported|
* -
- Link Layer Extended Filter Policies
- |supported|
- |supported|
- |supported|
* - .. centered:: |5.0|
- 2 Msym/s PHY for LE
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
* -
- LE Long Range (Coded PHY S=2/S=8)
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
* -
- High Duty Cycle Non-Connectable Advertising
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
* -
- LE Advertising Extensions
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
* -
- LE Channel Selection Algorithm #2
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
* - .. centered:: |5.1|
- Angle of Arrival (AoA)/Angle of Departure (AoD)
- |unsupported|
- |unsupported|
- |unsupported|
* -
- GATT Caching
- |NA|
- |experimental|
- |experimental|
* -
- Advertising Channel Index
- |unsupported|
- |NA|
- |NA|
* -
- Periodic Advertising Sync Transfer
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c2 or esp32c5
|experimental|
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c2 or esp32c5
|experimental|
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c2 or esp32c5
|experimental|
* - .. centered:: |5.2|
- LE Isochronous Channels (BIS/CIS)
- |unsupported|
- |unsupported|
- |unsupported|
* -
- Enhanced Attribute Protocol
- |NA|
- |unsupported|
- |developing202412|
* -
- LE Power Control
- .. only:: esp32 or esp32c2
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c3 or esp32s3 or esp32c5
|experimental|
- |unsupported|
- .. only:: esp32 or esp32c2
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c3 or esp32s3 or esp32c5
|developing202412|
* - .. centered:: |5.3|
- AdvDataInfo in Periodic Advertising
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32c2 or esp32h2 or esp32c5
|supported|
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32c2 or esp32h2 or esp32c5
|supported|
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32c2 or esp32h2 or esp32c5
|supported|
* -
- LE Enhanced Connection Update (Connection Subrating)
- .. only:: esp32 or esp32c6 or esp32c2 or esp32h2 or esp32c5
|unsupported|
.. only:: esp32c3 or esp32s3
|experimental|
- |unsupported|
- .. only:: esp32 or esp32c6 or esp32c2 or esp32h2 or esp32c5
|unsupported|
.. only:: esp32c3 or esp32s3
|experimental|
* -
- LE Channel Classification
- .. only:: esp32 or esp32c3 or esp32s3 or esp32c2
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c5
|experimental|
- .. only:: esp32 or esp32c3 or esp32s3 or esp32c2
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c5
|experimental|
- .. only:: esp32 or esp32c3 or esp32s3 or esp32c2
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c5
|experimental|
* - .. centered:: |5.4|
- Advertising Coding Selection
- .. only:: esp32 or esp32c6 or esp32c2 or esp32h2 or esp32c5
|unsupported|
.. only:: esp32c3 or esp32s3
|experimental|
- |unsupported|
- .. only:: esp32 or esp32c6 or esp32c2 or esp32h2 or esp32c5
|unsupported|
.. only:: esp32c3 or esp32s3
|experimental|
* -
- Encrypted Advertising Data
- |NA|
- |unsupported|
- |experimental|
* -
- LE GATT Security Levels Characteristic
- |NA|
- |unsupported|
- |developing202412|
* -
- Periodic Advertising with Responses
- |unsupported|
- |unsupported|
- |unsupported|
.. [1]
If you would like to know the Bluetooth SIG certification information for supported features,
please consult `SIG Bluetooth Product Database <https://qualification.bluetooth.com/Listings/Search>`__.
For certain features, if the majority of the development is completed on the Controller, the Host's support status will be limited by the Controller's support status.
If you want BLE Controller and Host to run on different Espressif chips, the functionality of the Host will not be limited by the Controller's support status on the chip running the Host,
please check the :doc:`ESP Host Feature Support Status Table <host-feature-support-status>` .
It is important to clarify that this document is not a binding commitment to our customers.
The above feature support status information is for general informational purposes only and is subject to change without notice.
You are encouraged to consult with our `customer support team <https://www.espressif.com/en/contact-us/sales-questions>`__ for the most up-to-date information and to verify the suitability of features for your specific needs.
.. |supported| image:: ../../../_static/ble/feature_status/supported.svg
:class: align-center
:width: 65px
.. |developing202412| image:: ../../../_static/ble/feature_status/developing202412.svg
:class: align-center
:width: 120px
.. |unsupported| image:: ../../../_static/ble/feature_status/unsupported.svg
:class: align-center
:width: 75px
.. |experimental| image:: ../../../_static/ble/feature_status/experimental.svg
:class: align-center
:width: 75px
.. |NA| image:: ../../../_static/ble/feature_status/NA.svg
:class: align-center
:width: 25px
.. |supported_def| image:: ../../../_static/ble/feature_status/supported.svg
.. |developing_def| image:: ../../../_static/ble/feature_status/developingYYYYMM.svg
.. |unsupported_def| image:: ../../../_static/ble/feature_status/unsupported.svg
.. |experimental_def| image:: ../../../_static/ble/feature_status/experimental.svg
.. |NA_def| image:: ../../../_static/ble/feature_status/NA.svg
.. |4.2| replace:: `4.2 <https://www.bluetooth.com/specifications/specs/core-specification-4-2/>`__
.. |5.0| replace:: `5.0 <https://www.bluetooth.com/specifications/specs/core-specification-5-0/>`__
.. |5.1| replace:: `5.1 <https://www.bluetooth.com/specifications/specs/core-specification-5-1/>`__
.. |5.2| replace:: `5.2 <https://www.bluetooth.com/specifications/specs/core-specification-5-2/>`__
.. |5.3| replace:: `5.3 <https://www.bluetooth.com/specifications/specs/core-specification-5-3/>`__
.. |5.4| replace:: `5.4 <https://www.bluetooth.com/specifications/specs/core-specification-5-4/>`__

View File

@ -1,10 +1,10 @@
BluFi
^^^^^
^^^^^^
:link_to_translation:`zh_CN:[中文]`
:link_to_translation:`en:[English]`
Overview
--------
----------
The BluFi for {IDF_TARGET_NAME} is a Wi-Fi network configuration function via Bluetooth channel. It provides a secure protocol to pass Wi-Fi configuration and credentials to {IDF_TARGET_NAME}. Using this information, {IDF_TARGET_NAME} can then connect to an AP or establish a SoftAP.
@ -13,7 +13,7 @@ Fragmenting, data encryption, and checksum verification in the BluFi layer are t
You can customize symmetric encryption, asymmetric encryption, and checksum support customization. Here we use the DH algorithm for key negotiation, 128-AES algorithm for data encryption, and CRC16 algorithm for checksum verification.
The BluFi Flow
---------------
----------------
The BluFi networking flow includes the configuration of the SoftAP and Station.
@ -46,7 +46,7 @@ The following uses Station as an example to illustrate the core parts of the pro
2. The data lengths before and after symmetric encryption/decryption must stay the same. It also supports in-place encryption and decryption.
The Flow Chart of BluFi
--------------------------
-------------------------
.. seqdiag::
:caption: BluFi Flow Chart
@ -75,39 +75,39 @@ The Flow Chart of BluFi
.. _frame_formats:
The Frame Formats Defined in BluFi
-----------------------------------
------------------------------------
The frame formats for the communication between the mobile phone App and {IDF_TARGET_NAME} are defined as follows:
The frame format with no fragment:
.. list-table::
:header-rows: 1
:widths: 25 25
.. list-table::
:header-rows: 1
:widths: 25 25
* - Field
- Value (Byte)
* - Type (Least Significant Bit)
- 1
* - Frame Control
- 1
- 1
* - Sequence Number
- 1
* - Data Length
- 1
* - Data
- ${Data Length}
* - CheckSum (Most Siginificant Bit)
* - CheckSum (Most Significant Bit)
- 2
If the frag frame bit in the **Frame Control** field is enabled, there would be a 2-byte **Total Content Length** field in the **Data** field. This **Total Content Length** field indicates the length of the remaining part of the frame and also tells the remote how much memory needs to be allocated.
The frame format with fragments:
.. list-table::
:header-rows: 1
:widths: 25 25
.. list-table::
:header-rows: 1
:widths: 25 25
* - Field
- Value (Byte)
* - Type (Least Significant Bit)
@ -121,17 +121,17 @@ The frame format with fragments:
* - Data
- * Total Content Length: 2
* Content: ${Data Length} - 2
* - CheckSum (Most Siginificant Bit)
* - CheckSum (Most Significant Bit)
- 2
Normally, the control frame does not contain data bits, except for ACK Frame.
The format of ACK Frame:
.. list-table::
:header-rows: 1
:widths: 25 25
.. list-table::
:header-rows: 1
:widths: 25 25
* - Field
- Value (Byte)
* - Type - ACK (Least Significant Bit)
@ -144,7 +144,7 @@ The format of ACK Frame:
- 1
* - Data
- Acked Sequence Number: 2
* - CheckSum (Most Siginificant Bit)
* - CheckSum (Most Significant Bit)
- 2
@ -158,123 +158,123 @@ The format of ACK Frame:
1.1 Control Frame (Binary: 0x0 b'00)
.. list-table::
:header-rows: 1
:widths: 5 15 20 30
.. list-table::
:header-rows: 1
:widths: 5 15 20 30
* - Control Frame
- Implication
- Explanation
- Note
- Note
* - 0x0 (b000000)
- ACK
- The data field of the ACK frame uses the same sequence value of the frame to reply to.
- The data field consumes a byte and its value is the same as the sequence field of the frame to reply to.
- The data field consumes a byte and its value is the same as the sequence field of the frame to reply to.
* - 0x1 (b000001)
- Set the ESP device to the security mode.
- To inform the ESP device of the security mode to use when sending data, which is allowed to be reset multiple times during the process. Each setting affects the subsequent security mode used.
- To inform the ESP device of the security mode to use when sending data, which is allowed to be reset multiple times during the process. Each setting affects the subsequent security mode used.
If it is not set, the ESP device will send the control frame and data frame with no checksum and encryption by default. The data transmission from the mobile phone to the ESP device is controlled by this control frame.
- The data field consumes a byte. The higher four bits are for the security mode setting of the control frame, and the lower four bits are for the security mode setting of the data frame.
* b0000: no checksum and no encryption;
* b0001: with checksum but no encryption;
* b0010: no checksum but with encryption;
* b0000: no checksum and no encryption;
* b0001: with checksum but no encryption;
* b0010: no checksum but with encryption;
* b0011: with both checksum and encryption.
* - 0x2 (b000010)
- Set the opmode of Wi-Fi.
- The frame contains opmode settings for configuring the Wi-Fi mode of the ESP device.
- data[0] is for opmode settings, including:
- data[0] is for opmode settings, including:
* 0x00: NULL
* 0x00: NULL
* 0x01: STA
* 0x02: SoftAP
* 0x03: SoftAP & STA
* 0x02: SoftAP
* 0x03: SoftAP & STA
Please set the SSID/Password/Max Connection Number of the AP mode in the first place if an AP gets involved.
* - 0x3 (b000011)
- Connect the ESP device to the AP.
- To notify the ESP device that the essential information has been sent and it is allowed to connect to the AP.
- No data field is contained.
- No data field is contained.
* - 0x4 (b000100)
- Disconnect the ESP device from the AP.
-
- No data field is contained.
-
- No data field is contained.
* - 0x5 (b000101)
- To get the information of the ESP devices Wi-Fi mode and its status.
-
- * No data field is contained. When receiving this control frame, the ESP device will send back a follow-up frame of Wi-Fi connection state report to the mobile phone with the information of the current opmode, connection status, SSID, and so on.
* The types of information sent to the mobile phone is defined by the application installed on the phone.
-
- * No data field is contained. When receiving this control frame, the ESP device will send back a follow-up frame of Wi-Fi connection state report to the mobile phone with the information of the current opmode, connection status, SSID, and so on.
* The types of information sent to the mobile phone is defined by the application installed on the phone.
* - 0x6 (b000110)
- Disconnect the STA device from the SoftAP (in SoftAP mode).
-
- Data[0~5] is taken as the MAC address for the STA device. If there is a second STA device, then it uses data[6-11] and the rest can be done in the same manner.
-
- Data[0~5] is taken as the MAC address for the STA device. If there is a second STA device, then it uses data[6-11] and the rest can be done in the same manner.
* - 0x7 (b000111)
- Get the version information.
-
-
-
-
* - 0x8 (b001000)
- Disconnect the BLE GATT link.
-
- The ESP device will disconnect the BLE GATT link after receives this command.
-
- The ESP device will disconnect the BLE GATT link after receives this command.
* - 0x9 (b001001)
- Get the Wi-Fi list.
- To get the ESP device to scan the Wi-Fi access points around.
- No data field is contained. When receiving this control frame, the ESP device will send back a follow-up frame of Wi-Fi list report to the mobile phone.
- No data field is contained. When receiving this control frame, the ESP device will send back a follow-up frame of Wi-Fi list report to the mobile phone.
1.2 Data Frame (Binary: 0x1 b'01)
.. list-table::
:header-rows: 1
:widths: 5 15 20 30
.. list-table::
:header-rows: 1
:widths: 5 15 20 30
* - Data Frame
- Implication
- Explanation
- Note
- Note
* - 0x0 (b000000)
- Send the negotiation data.
- The negotiation data will be sent to the callback function registered in the application layer.
- The length of the data depends on the length field.
- The length of the data depends on the length field.
* - 0x1 (b000001)
- Send the SSID for STA mode.
- To send the BSSID of the AP for the STA device to connect under the condition that the SSID is hidden.
- Please refer to Note 1 below.
- Please refer to Note 1 below.
* - 0x2 (b000010)
- Send the SSID for STA mode.
- To send the SSID of the AP for the STA device to connect.
- Please refer to Note 1 below.
- Please refer to Note 1 below.
* - 0x3 (b000011)
- Send the password for STA mode.
- To send the password of the AP for the STA device to connect.
- Please refer to Note 1 below.
- Please refer to Note 1 below.
* - 0x4 (b000100)
- Send the SSID for SoftAP mode.
-
- Please refer to Note 1 below.
-
- Please refer to Note 1 below.
* - 0x5 (b000101)
- Send the password for SoftAPmode.
-
- Please refer to Note 1 below.
-
- Please refer to Note 1 below.
* - 0x6 (b000110)
- Set the maximum connection number for SoftAP mode.
-
- data[0] represents the value of the connection number, ranging from 1 to 4. When the transmission direction is ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
-
- data[0] represents the value of the connection number, ranging from 1 to 4. When the transmission direction is ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
* - 0x7 (b000111)
- Set the authentication mode for SoftAP mode.
-
-
- data[0]
* 0x00: OPEN
@ -283,35 +283,35 @@ The format of ACK Frame:
* 0x03: WPA2_PSK
* 0x04: WPA_WPA2_PSK
When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
* - 0x8 (b001000)
- Set the number of channels for SoftAP mode.
-
- data[0] represents the quantity of the supported channels, ranging from 1 to 14. When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
-
- data[0] represents the quantity of the supported channels, ranging from 1 to 14. When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
* - 0x9 (b001001)
- Username
- It provides the username of the GATT client when using encryption of enterprise level.
- The length of the data depends on the length field.
- The length of the data depends on the length field.
* - 0xa (b001010)
- CA Certification
- It provides the CA Certification when using encryption of enterprise level.
- Please refer to Note 2 below.
- Please refer to Note 2 below.
* - 0xb (b001011)
- Client Certification
- It provides the client certification when using encryption of enterprise level. Whether the private key is contained or not depends on the content of the certification.
- Please refer to Note 2 below.
- Please refer to Note 2 below.
* - 0xc (b001100)
- Server Certification
- It provides the sever certification when using encryption of enterprise level. Whether the private key is contained or not depends on the content of the certification.
- Please refer to Note 2 below.
- Please refer to Note 2 below.
* - 0xd (b001101)
- Client Private Key
- It provides the private key of the client when using encryption of enterprise level.
- Please refer to Note 2 below.
- Please refer to Note 2 below.
* - 0xe (b001110)
- Server Private Key
- It provides the private key of the sever when using encryption of enterprise level.
- Please refer to Note 2 below.
- Please refer to Note 2 below.
* - 0xf (b001111)
- Wi-Fi Connection State Report
- To notify the phone of the ESP devices Wi-Fi status, including STA status and SoftAP status. It is for the STA device to connect to the mobile phone or the SoftAP. However, when the mobile phone receives the Wi-Fi status, it can reply to other frames in addition to this frame.
@ -329,13 +329,13 @@ The format of ACK Frame:
data[3] and the subsequent is in accordance with the format of SSID/BSSID information. If device is in connecting state, maximum Wi-Fi reconnecting time would be included here. If device is in disconnected state, Wi-Fi connection end reason and RSSI would be included here.
* - 0x10 (b010000)
- Version
-
-
- * data[0]= great version
* data[1]= sub version
* data[1]= sub version
* - 0x11 (b010001)
- Wi-Fi List
- To send the Wi-Fi list to ESP device.
- The format of the data frame is length + RSSI + SSID. It supports to be sent into fragments if the data length is too long.
- The format of the data frame is length + RSSI + SSID. It supports to be sent into fragments if the data length is too long.
* - 0x12 (b010010)
- Report Error
- To notify the mobile phone that there is an error with BluFi.
@ -347,72 +347,72 @@ The format of ACK Frame:
* 0x05: dh malloc error
* 0x06: dh param error
* 0x07: read param error
* 0x08: make public error
* 0x08: make public error
* 0x09: data format error
* 0x0a: calculate MD5 error
* 0x0b: Wi-Fi scan error
* - 0x13 (b010011)
- Custom Data
- To send or receive custom data.
- The data frame supports to be sent into fragments if the data length is too long.
- The data frame supports to be sent into fragments if the data length is too long.
* - 0x14 (b010100)
- Set the maximum Wi-Fi reconnecting time.
-
-
- data[0] represents the maximum Wi-Fi reconnecting time.
* - 0x15 (b010101)
- Set the Wi-Fi connection end reason.
-
-
- data[0] represents the Wi-Fi connection end reason, whose type shall be same with struct `wifi_err_reason_t`.
* - 0x16 (b010110)
- Set the RSSI at Wi-Fi connection end.
-
-
- data[0] represents the RSSI at Wi-Fi connection end. If there is no meaningful RSSI in the connection end, this value shall be the meaningless one, which is `-128`.
.. note::
- Note 1: The length of the data depends on the data length field. When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
- Note 2: The length of the data depends on the data length field. The frame supports to be fragmented if the data length is not long enough.
- Note 1: The length of the data depends on the data length field. When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
- Note 2: The length of the data depends on the data length field. The frame supports to be fragmented if the data length is not long enough.
2. Frame Control
The **Frame Control** field takes one byte and each bit has a different meaning.
.. list-table::
:header-rows: 1
:widths: 10 35
.. list-table::
:header-rows: 1
:widths: 10 35
* - Bit
- Meaning
- Meaning
* - 0x01
- Indicates whether the frame is encrypted.
* 1 means encrypted.
* 0 means unencrypted.
The encrypted part of the frame includes the full clear data before the DATA field is encrypted (no checksum). Control frame is not encrypted, so this bit is 0.
The encrypted part of the frame includes the full clear data before the DATA field is encrypted (no checksum). Control frame is not encrypted, so this bit is 0.
* - 0x02
- Indicates whether a frame contains a checksum (such as SHA1, MD5, CRC) for the end of the frame. Data field includes sequence, data length, and clear text. Both the control frame and the data frame can choose whether to contain a check bit or not.
- Indicates whether a frame contains a checksum (such as SHA1, MD5, CRC) for the end of the frame. Data field includes sequence, data length, and clear text. Both the control frame and the data frame can choose whether to contain a check bit or not.
* - 0x04
- Indicates the data direction.
* 0 means from the mobile phone to the ESP device.
* 1 means from the ESP device to the mobile phone.
* 1 means from the ESP device to the mobile phone.
* - 0x08
- Indicates whether the other person is required to reply to an ACK.
* 0 indicates not required to reply to an ACK.
* 1 indicates required to reply to an ACK.
* 1 indicates required to reply to an ACK.
* - 0x10
- Indicates whether there are subsequent data fragments.
* 0 indicates that there is no subsequent data fragment for this frame.
* 1 indicates that there are subsequent data fragments which used to transmit longer data.
In the case of a frag frame, the total length of the current content section + subsequent content section is given in the first two bytes of the data field (that is, the content data of the maximum support 64 K).
* - 0x10~0x80
- Reserved
In the case of a frag frame, the total length of the current content section + subsequent content section is given in the first two bytes of the data field (that is, the content data of the maximum support 64 K).
* - 0x10~0x80
- Reserved
3. Sequence Number
@ -431,7 +431,7 @@ The format of ACK Frame:
The **CheckSum** field takes two bytes, which is used to check "sequence + data length + clear text data".
The Security Implementation of {IDF_TARGET_NAME}
------------------------------------------------
--------------------------------------------------
1. Securing Data
@ -482,7 +482,7 @@ The data to be encrypted and decrypted must be in the same length. The IV8 is an
This function is used to compute CheckSum and return a value of CheckSum. BluFi uses the returned value to compare the CheckSum of the frame.
GATT Related Instructions
-------------------------
----------------------------
UUID
>>>>>

View File

@ -0,0 +1,159 @@
:orphan:
ESP Host Major Feature Support Status
=======================================
:link_to_translation:`zh_CN:[中文]`
The table below shows the support status of major features on ESP-Bluedroid and ESP-NimBLE Host.
If you plan to run the BLE Controller and Host on {IDF_TARGET_NAME} together, the functionality of the Host may be limited by the support status of the Controller,
please check the :doc:`{IDF_TARGET_NAME} Major Feature Support Status Table <ble-feature-support-status>` .
|supported_def| **This feature has completed development and internal testing.** [1]_
|experimental_def| **This feature has been developed and is currently undergoing internal testing.**
You can explore these features for evaluation and feedback purposes but should be cautious of potential issues.
|developing_def| **The feature is currently being actively developed, and expected to be supported by the end of YYYY/MM.**
You should anticipate future updates regarding the progress and availability of these features.
If you do have an urgent need, please contact our `customer support team <https://www.espressif.com/en/contact-us/sales-questions>`__ for a possible feature trial.
|unsupported_def| **This feature is not supported on this Host.** If you have related requirements, please prioritize selecting other Espressif Bluetooth Host that support this feature.
If none of our chip series meet your needs, please contact `customer support team <https://www.espressif.com/en/contact-us/sales-questions>`__, and our R&D team will conduct an internal feasibility assessment for you.
|NA_def| The feature with this label could be the following type:
- **Controller-only Feature**: The feature exists only below HCI, and cannot be configured/enabled via Host API, such as Advertising Channel Index.
It does not require the support from the Host.
.. list-table::
:width: 100%
:widths: auto
:header-rows: 1
* - .. centered:: Core Spec
- .. centered:: Major Features
- .. centered:: ESP-Bluedroid Host
- .. centered:: ESP-NimBLE Host
* - .. centered:: |4.2|
- LE Data Packet Length Extension
- |supported|
- |supported|
* -
- LE Secure Connections
- |supported|
- |supported|
* -
- Link Layer Privacy
- |supported|
- |supported|
* -
- Link Layer Extended Filter Policies
- |supported|
- |supported|
* - .. centered:: |5.0|
- 2 Msym/s PHY for LE
- |supported|
- |supported|
* -
- LE Long Range (Coded PHY S=2/S=8)
- |supported|
- |supported|
* -
- High Duty Cycle Non-Connectable Advertising
- |supported|
- |supported|
* -
- LE Advertising Extensions
- |supported|
- |supported|
* -
- LE Channel Selection Algorithm #2
- |supported|
- |supported|
* - .. centered:: |5.1|
- Angle of Arrival (AoA)/Angle of Departure (AoD)
- |unsupported|
- |unsupported|
* -
- GATT Caching
- |experimental|
- |experimental|
* -
- Advertising Channel Index
- |NA|
- |NA|
* -
- Periodic Advertising Sync Transfer
- |supported|
- |supported|
* - .. centered:: |5.2|
- LE Isochronous Channels (BIS/CIS)
- |unsupported|
- |unsupported|
* -
- Enhanced Attribute Protocol
- |unsupported|
- |developing202412|
* -
- LE Power Control
- |unsupported|
- |developing202412|
* - .. centered:: |5.3|
- AdvDataInfo in Periodic Advertising
- |supported|
- |supported|
* -
- LE Enhanced Connection Update (Connection Subrating)
- |unsupported|
- |supported|
* -
- LE Channel Classification
- |supported|
- |supported|
* - .. centered:: |5.4|
- Advertising Coding Selection
- |unsupported|
- |supported|
* -
- Encrypted Advertising Data
- |unsupported|
- |experimental|
* -
- LE GATT Security Levels Characteristic
- |unsupported|
- |developing202412|
* -
- Periodic Advertising with Responses
- |unsupported|
- |unsupported|
.. [1]
If you would like to know the Bluetooth SIG certification information for supported features,
please consult `SIG Bluetooth Product Database <https://qualification.bluetooth.com/Listings/Search>`__.
It is important to clarify that this document is not a binding commitment to our customers.
The above feature support status information is for general informational purposes only and is subject to change without notice.
You are encouraged to consult with our `customer support team <https://www.espressif.com/en/contact-us/sales-questions>`__ for the most up-to-date information and to verify the suitability of features for your specific needs.
.. |supported| image:: ../../../_static/ble/feature_status/supported.svg
:class: align-center
.. |developing202412| image:: ../../../_static/ble/feature_status/developing202412.svg
:class: align-center
.. |unsupported| image:: ../../../_static/ble/feature_status/unsupported.svg
:class: align-center
.. |experimental| image:: ../../../_static/ble/feature_status/experimental.svg
:class: align-center
.. |NA| image:: ../../../_static/ble/feature_status/NA.svg
:class: align-center
.. |supported_def| image:: ../../../_static/ble/feature_status/supported.svg
.. |developing_def| image:: ../../../_static/ble/feature_status/developingYYYYMM.svg
.. |unsupported_def| image:: ../../../_static/ble/feature_status/unsupported.svg
.. |experimental_def| image:: ../../../_static/ble/feature_status/experimental.svg
.. |NA_def| image:: ../../../_static/ble/feature_status/NA.svg
.. |4.2| replace:: `4.2 <https://www.bluetooth.com/specifications/specs/core-specification-4-2/>`__
.. |5.0| replace:: `5.0 <https://www.bluetooth.com/specifications/specs/core-specification-5-0/>`__
.. |5.1| replace:: `5.1 <https://www.bluetooth.com/specifications/specs/core-specification-5-1/>`__
.. |5.2| replace:: `5.2 <https://www.bluetooth.com/specifications/specs/core-specification-5-2/>`__
.. |5.3| replace:: `5.3 <https://www.bluetooth.com/specifications/specs/core-specification-5-3/>`__
.. |5.4| replace:: `5.4 <https://www.bluetooth.com/specifications/specs/core-specification-5-4/>`__

View File

@ -0,0 +1,24 @@
#######################
Bluetooth® Low Energy
#######################
:link_to_translation:`zh_CN:[中文]`
*********
Overview
*********
.. toctree::
:maxdepth: 1
overview
ble-feature-support-status
**********
Profile
**********
.. toctree::
:maxdepth: 2
:SOC_BLE_MESH_SUPPORTED: ../esp-ble-mesh/ble-mesh-index
:SOC_BLUFI_SUPPORTED: blufi

View File

@ -1,52 +1,52 @@
Bluetooth® Overview
===================
Introduction
=============
:link_to_translation:`zh_CN:[中文]`
This document provides an architecture overview of the Bluetooth stack in ESP-IDF and some quick links to related documents and application examples.
This document provides an architecture overview of the Bluetooth Low Energy (Bluetooth LE) stack in ESP-IDF and some quick links to related documents and application examples.
.. only:: esp32
{IDF_TARGET_NAME} supports Dual-Mode Bluetooth 4.2 and is certified for Bluetooth 4.2.
{IDF_TARGET_NAME} supports Dual-Mode Bluetooth 4.2 and is certified for Dual-Mode Bluetooth 4.2 and Bluetooth LE 5.0.
.. only:: esp32c3 or esp32s3
{IDF_TARGET_NAME} supports Bluetooth 5.0 (LE) and is certified for Bluetooth LE 5.0.
{IDF_TARGET_NAME} supports Bluetooth 5.0 (LE) and is certified for Bluetooth LE 5.4.
.. only:: esp32c2 or esp32c6 or esp32h2
{IDF_TARGET_NAME} supports Bluetooth 5.0 (LE) and is certified for Bluetooth LE 5.3.
The Bluetooth stack in ESP-IDF is a layered architecture that enables Bluetooth functionality on {IDF_TARGET_NAME} chip series. The table below shows its architecture.
The Bluetooth LE stack in ESP-IDF is a layered architecture that enables Bluetooth functionality on {IDF_TARGET_NAME} chip series. The table below shows its architecture.
.. only:: esp32 or esp32s3 or esp32c3 or esp32c6
.. figure:: ../../_static/bluetooth-architecture.png
.. figure:: ../../../_static/bluetooth-architecture.png
:align: center
:scale: 90%
:alt: {IDF_TARGET_NAME} Bluetooth Stack Architecture
:alt: {IDF_TARGET_NAME} Bluetooth LE Stack Architecture
{IDF_TARGET_NAME} Bluetooth Stack Architecture
{IDF_TARGET_NAME} Bluetooth LE Stack Architecture
.. only:: esp32c2
.. figure:: ../../_static/bluetooth-architecture-no-ble-mesh.png
.. figure:: ../../../_static/bluetooth-architecture-no-ble-mesh.png
:align: center
:scale: 90%
:alt: {IDF_TARGET_NAME} Bluetooth Stack Architecture
:alt: {IDF_TARGET_NAME} Bluetooth LE Stack Architecture
{IDF_TARGET_NAME} Bluetooth Stack Architecture
{IDF_TARGET_NAME} Bluetooth LE Stack Architecture
.. only:: esp32h2
.. figure:: ../../_static/bluetooth-architecture-no-blufi.png
.. figure:: ../../../_static/bluetooth-architecture-no-blufi.png
:align: center
:scale: 90%
:alt: {IDF_TARGET_NAME} Bluetooth Stack Architecture
:alt: {IDF_TARGET_NAME} Bluetooth LE Stack Architecture
{IDF_TARGET_NAME} Bluetooth Stack Architecture
{IDF_TARGET_NAME} Bluetooth LE Stack Architecture
The table below shows whether the Bluetooth modules are supported in a specific chip series.
The table below shows whether the Bluetooth LE modules are supported in a specific chip series.
.. list-table::
:width: 100%
@ -110,7 +110,7 @@ ESP Bluetooth Controller
At the bottom layer is ESP Bluetooth Controller, which encompasses various modules such as PHY, Baseband, Link Controller, Link Manager, Device Manager, and HCI. It handles hardware interface management and link management. It provides functions in the form of libraries and is accessible through APIs. This layer directly interacts with the hardware and low-level Bluetooth protocols.
- :doc:`API reference <../api-reference/bluetooth/controller_vhci>`
- :doc:`API reference <../../api-reference/bluetooth/controller_vhci>`
- :example:`Application examples <bluetooth/hci>`
@ -129,7 +129,7 @@ There are two hosts, ESP-Bluedroid and ESP-NimBLE. The major difference between
ESP-Bluedroid
^^^^^^^^^^^^^
ESP-Bluedroid is a modified version of the native Android Bluetooth stack, Bluedroid. It consists of two layers: the Bluetooth Upper Layer (BTU) and the Bluetooth Transport Controller layer (BTC). The BTU layer is responsible for processing bottom layer Bluetooth protocols such as L2CAP, GATT/ATT, SMP, GAP, and other profiles. The BTU layer provides an interface prefixed with "bta". The BTC layer is mainly responsible for providing a supported interface, prefixed with "esp", to the application layer, processing GATT-based profiles and handling miscellaneous tasks. All the APIs are located in the ESP_API layer. Developers should use the Bluetooth APIs prefixed with "esp".
ESP-Bluedroid is a modified version of the native Android Bluetooth stack, Bluedroid. It consists of two layers: the Bluetooth Upper Layer (BTU) and the Bluetooth Transport Controller layer (BTC). The BTU layer is responsible for processing bottom layer Bluetooth protocols such as L2CAP, GATT/ATT, SMP, GAP, and other profiles. The BTU layer provides an interface prefixed with "bta". The BTC layer is mainly responsible for providing a supported interface, prefixed with "esp", to the application layer, processing GATT-based profiles and handling miscellaneous tasks. All the APIs are located in the ESP_API layer. Developers should use the Bluetooth Low Energy APIs prefixed with "esp".
.. only:: esp32
@ -141,15 +141,17 @@ ESP-Bluedroid is a modified version of the native Android Bluetooth stack, Blued
- API references
- :doc:`../api-reference/bluetooth/bt_common`
- :doc:`Bluetooth LE <../api-reference/bluetooth/bt_le>`
- :doc:`../../api-reference/bluetooth/bt_common`
- :doc:`Bluetooth LE <../../api-reference/bluetooth/bt_le>`
.. only:: esp32
.. only:: esp32
- :doc:`../api-reference/bluetooth/classic_bt`
- :example:`Bluetooth LE 4.2 Application Examples <bluetooth/bluedroid/ble>`
- :example:`Application examples <bluetooth/bluedroid>`
.. only:: not esp32
- :example:`Bluetooth LE 4.2 Application Examples <bluetooth/bluedroid/ble>`
- :example:`Bluetooth LE 5.0 Application Examples <bluetooth/bluedroid/ble_50>`
ESP-NimBLE
^^^^^^^^^^
@ -162,7 +164,7 @@ ESP-NimBLE supports Bluetooth LE only. Classic Bluetooth is not supported.
- API references
- `NimBLE API references <https://mynewt.apache.org/latest/network/ble_hs/ble_hs.html>`__
- :doc:`ESP-NimBLE API references for initialization <../api-reference/bluetooth/nimble/index>`
- :doc:`ESP-NimBLE API references for initialization <../../api-reference/bluetooth/nimble/index>`
- :example:`Application examples <bluetooth/nimble>`
@ -180,7 +182,7 @@ Above the host stacks are the profile implementations by Espressif and some comm
Built on top of Zephyr Bluetooth Mesh stack, the ESP-BLE-MESH implementation supports device provisioning and node control. It also supports such node features as Proxy, Relay, Low power and Friend.
- :doc:`ESP-BLE-MESH documentation <esp-ble-mesh/ble-mesh-index>`: feature list, get started, architecture, description of application examples, frequently asked questions, etc.
- :doc:`ESP-BLE-MESH documentation <../esp-ble-mesh/ble-mesh-index>`: feature list, get started, architecture, description of application examples, frequently asked questions, etc.
- :example:`Application examples <bluetooth/esp_ble_mesh>`
@ -198,4 +200,4 @@ Above the host stacks are the profile implementations by Espressif and some comm
Applications
------------
At the uppermost layer are applications. You can build your own applications on top of the ESP-Bluedroid and ESP-NimBLE stacks, leveraging the provided APIs and profiles to create Bluetooth-enabled applications tailored to specific use cases.
At the uppermost layer are applications. You can build your own applications on top of the ESP-Bluedroid and ESP-NimBLE stacks, leveraging the provided APIs and profiles to create Bluetooth LE-enabled applications tailored to specific use cases.

View File

@ -0,0 +1,13 @@
#######################
Bluetooth® Classic
#######################
:link_to_translation:`zh_CN:[中文]`
*********
Overview
*********
.. toctree::
:maxdepth: 2
overview

View File

@ -0,0 +1,80 @@
Introduction
=============
:link_to_translation:`zh_CN:[中文]`
This document provides an architecture overview of the Bluetooth Classic stack in ESP-IDF and some quick links to related documents and application examples.
.. only:: esp32
{IDF_TARGET_NAME} supports Dual-Mode Bluetooth 4.2.
The Bluetooth Classic stack in ESP-IDF is a layered architecture that enables Bluetooth functionality on {IDF_TARGET_NAME} chip series. The table below shows its architecture.
.. only:: esp32
.. figure:: ../../../_static/classic-bluetooth-architecture.png
:align: center
:scale: 90%
:alt: {IDF_TARGET_NAME} Bluetooth Classic Stack Architecture
{IDF_TARGET_NAME} Bluetooth Classic Stack Architecture
The table below shows whether the Bluetooth Classic Controller are supported in a specific chip series.
.. list-table::
:width: 100%
:widths: auto
:header-rows: 1
* - Chip Series
- Controller
* - ESP32
- Y
* - ESP32-S2
- \
* - ESP32-S3
- \
* - ESP32-C2
- \
* - ESP32-C3
- \-
* - ESP32-C6
- \-
* - ESP32-H2
- \-
The following sections briefly describe each layer and provide quick links to the related documents and application examples.
ESP Bluetooth Controller
------------------------
At the bottom layer is ESP Bluetooth Controller, which encompasses various modules such as PHY, Baseband, Link Controller, Link Manager, Device Manager, and HCI. It handles hardware interface management and link management. It provides functions in the form of libraries and is accessible through APIs. This layer directly interacts with the hardware and low-level Bluetooth protocols.
- :doc:`API reference <../../api-reference/bluetooth/controller_vhci>`
- :example:`Application examples <bluetooth/hci/controller_hci_uart_esp32>`
Hosts
-----
There is one host, ESP-Bluedroid, supporting Classic Bluetooth in IDF.
ESP-Bluedroid
^^^^^^^^^^^^^
ESP-Bluedroid is a modified version of the native Android Bluetooth stack, Bluedroid. It consists of two layers: the Bluetooth Upper Layer (BTU) and the Bluetooth Transport Controller layer (BTC). The BTU layer is responsible for processing bottom layer Bluetooth protocols such as L2CAP and other profiles. The BTU layer provides an interface prefixed with "bta". The BTC layer is mainly responsible for providing a supported interface, prefixed with "esp", to the application layer and handling miscellaneous tasks. All the APIs are located in the ESP_API layer. Developers should use the Classic Bluetooth APIs prefixed with "esp".
- API references
- :doc:`../../api-reference/bluetooth/bt_common`
- :doc:`../../api-reference/bluetooth/classic_bt`
- :example:`Application examples <bluetooth/bluedroid/classic_bt>`
Applications
------------
At the uppermost layer are applications. You can build your own applications on top of the ESP-Bluedroid stacks, leveraging the provided APIs and profiles to create Bluetooth Classic applications tailored to specific use cases.

View File

@ -1,5 +1,5 @@
ESP-BLE-MESH Architecture
=========================
Architecture
=============
:link_to_translation:`zh_CN:[中文]`

View File

@ -1,5 +1,5 @@
ESP-BLE-MESH FAQ
================
FAQ
=====
:link_to_translation:`zh_CN:[中文]`
@ -532,7 +532,7 @@ Generally, a Provisioner is used to provision unprovisioned devices and form a m
.. only:: esp32
The :doc:`ESP32-DevKitC <../../hw-reference/esp32/get-started-devkitc>` board without PSRAM can run properly but the throughput of it is low since it has no PSRAM. When Bluetooth and Wi-Fi coexist, the throughput of ESP32-DevKitC with PSRAM can be stabilized to more than 1 Mbps.
The `ESP32-DevKitC <https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32/esp32-devkitc/index.html>`__ board without PSRAM can run properly but the throughput of it is low since it has no PSRAM. When Bluetooth and Wi-Fi coexist, the throughput of ESP32-DevKitC with PSRAM can be stabilized to more than 1 Mbps.
Some configurations in menuconfig shall be enabled to support PSRAM.

View File

@ -1,5 +1,7 @@
ESP-BLE-MESH Feature List
=========================
Feature List
=============
:link_to_translation:`zh_CN:[中文]`
Supported Features
------------------
@ -7,7 +9,7 @@ Supported Features
Mesh Core
"""""""""
* Provisioning:
* Provisioning
* PB-ADV, PB-GATT and PB-Remote
* OOB Authentication
* Certificate-based Provisioning
@ -130,8 +132,8 @@ Mesh Models
* Light LC Server
* Light LC Setup Server
Mesh Applications
"""""""""""""""""
Mesh Examples
"""""""""""""
* ESP-BLE-MESH Node
* :example_file:`Tutorial <bluetooth/esp_ble_mesh/onoff_models/onoff_client/tutorial/BLE_Mesh_Node_OnOff_Client_Example_Walkthrough.md>`
@ -149,18 +151,3 @@ Mesh Applications
* :example_file:`Tutorial <bluetooth/esp_ble_mesh/wifi_coexist/tutorial/BLE_Mesh_WiFi_Coexist_Example_Walkthrough.md>`
* :example:`Example <bluetooth/esp_ble_mesh/wifi_coexist>`
* `Demo Video <https://dl.espressif.com/BLE/public/ESP_BLE_MESH_WIFI_Coexistence.mp4>`__
Future Release Features
-----------------------
Mesh Core
"""""""""
* Provisioner NVS Storage
Mesh Applications
"""""""""""""""""
* Fast OTA
* Friendship

View File

@ -25,8 +25,8 @@ ESP-BLE-MESH is implemented and certified based on the latest Mesh Profile v1.0.
.. _getting-started-with-ble-mesh:
Getting Started with ESP-BLE-MESH
=================================
Getting Started
=================
This section is intended to help you get started with ESP-BLE-MESH for the hardware based on the {IDF_TARGET_NAME} chip by Espressif.
@ -210,8 +210,8 @@ The following screenshot shows different board with different color on.
.. _esp-ble-mesh-examples:
ESP-BLE-MESH Examples
=====================
Examples
=========
* :example_file:`OnOff Server <bluetooth/esp_ble_mesh/onoff_models/onoff_server/tutorial/BLE_Mesh_Node_OnOff_Server_Example_Walkthrough.md>` - shows the use of ESP-BLE-MESH as a node having a Configuration Server model and a Generic OnOff Server model. A ESP-BLE-MESH Provisioner can then provision the unprovisioned device and control a RGB LED representing on/off state, see :example:`example code <bluetooth/esp_ble_mesh/onoff_models/onoff_server>`.
@ -230,15 +230,15 @@ ESP-BLE-MESH Examples
.. _esp-ble-mesh-demo-videos:
ESP-BLE-MESH Demo Videos
========================
Demo Videos
============
* `Espressif Fast Provisioning using ESP-BLE-MESH App <https://dl.espressif.com/BLE/public/ESP32_BLE_Mesh_Fast_Provision.mp4>`_
* `Espressif ESP-BLE-MESH and Wi-Fi Coexistence <https://dl.espressif.com/BLE/public/ESP_BLE_MESH_WIFI_Coexistence.mp4>`_
ESP-BLE-MESH FAQ
================
FAQ
====
* :ref:`ble-mesh-faq-provisioner-development`
* :ref:`ble-mesh-faq-node-development`
@ -266,9 +266,9 @@ Bluetooth SIG Documentation
---------------------------
- `BLE Mesh Core Specification <https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429633>`_
- `BLE Mesh Protocol v1.1 Specification(draft) <https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=554899>`_
- `BLE Mesh Protocol v1.1 Specification <https://www.bluetooth.com/specifications/specs/mesh-protocol/>`_
- `BLE Mesh Model Specification <https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429634>`_
- `BLE Mesh Model v1.1 Specification(draft) <https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=557081>`_
- `BLE Mesh Model v1.1 Specification <https://www.bluetooth.com/specifications/specs/mesh-model-1-1/>`_
- `An Intro to Bluetooth Mesh Part 1 <https://www.bluetooth.com/blog/an-intro-to-bluetooth-mesh-part1>`_ / `Part 2 <https://www.bluetooth.com/blog/an-intro-to-bluetooth-mesh-part2>`__
- `The Fundamental Concepts of Bluetooth Mesh Networking, Part 1 <https://www.bluetooth.com/blog/the-fundamental-concepts-of-bluetooth-mesh-networking-part-1>`_ / `Part 2 <https://www.bluetooth.com/blog/the-fundamental-concepts-of-bluetooth-mesh-networking-part-2>`__
- `Bluetooth Mesh Networking: Friendship <https://www.bluetooth.com/blog/bluetooth-mesh-networking-series-friendship>`_

View File

@ -1,5 +1,5 @@
ESP-BLE-MESH Terminology
========================
Terminology
============
:link_to_translation:`zh_CN:[中文]`
@ -14,16 +14,16 @@ ESP-BLE-MESH Terminology
- Detailed Explanation
* - Unprovisioned Device
- A device that is not a member of a mesh network is known as an unprovisioned device.
- Examples: lighting devices, temperature control devices, manufacturing equipments and electric doors, etc.
- Examples: lighting devices, temperature control devices, manufacturing equipment and electric doors, etc.
* - Node
- A node is a provisioned device.
- The role of unprovisioned device will change to node after being provisioned to ESP-BLE-MESH network. Nodes (such as lighting devices, temperature control devices, manufacturing equipments, and electric doors) are devices that can send, receive, or relay messages in ESP-BLE-MESH network, and they can optionally support one or more subnets.
- The role of unprovisioned device will change to node after being provisioned to ESP-BLE-MESH network. Nodes (such as lighting devices, temperature control devices, manufacturing equipment, and electric doors) are devices that can send, receive, or relay messages in ESP-BLE-MESH network, and they can optionally support one or more subnets.
* - Relay Node
- A node that supports the Relay feature and has the Relay feature enabled is known as a Relay node.
- Relay nodes can receive and resend ESP-BLE-MESH messages, so the messages can be transferred further. Users can decide whether or not to enable forwarding function of nodes according to nodes' status. Messages can be relayed for multiple times, and each relay is considered as a "hop". Messages can hop up to 126 times, which is enough for message transmission in a wide area.
* - Proxy Node
- A node that supports the Proxy feature and has the Proxy feature enabled is known as a Proxy node.
- Proxy nodes receive messages from one bearer (it generally includes advertising bearer and GATT bearer) and resend it from another one. The purpose is to connect communication equipments that only support GATT bearer to ESP-BLE-MESH network. Generally, mobile apps need a Proxy node to access Mesh network. Without Proxy nodes, mobile apps cannot communicate with members in Mesh network.
- Proxy nodes receive messages from one bearer (it generally includes advertising bearer and GATT bearer) and resend it from another one. The purpose is to connect communication equipment that only support GATT bearer to ESP-BLE-MESH network. Generally, mobile apps need a Proxy node to access Mesh network. Without Proxy nodes, mobile apps cannot communicate with members in Mesh network.
* - Friend Node
- A node that supports the Friend feature, has the Friend feature enabled, and has a friendship with a node that supports the Low Power feature is known as a Friend node.
- Friend node, like the backup of Low Power node (LPN), can store messages that are sent to Low Power node and security updates; the stored information will be transferred to Low Power node when Low Power node needs it. Low Power node must establish "friendship" with another node that supports the Friend Feature to reduce duty cycle of its receiver, thus power consumption of Low Power node can be reduced. Low Power node needs to find a Friend node to establish a friendship with it. The process involved is called "friendship establishment". Cooperation between Low Power node and Friend nodes enables Low Power node to schedule the use of the radio, thus Low Power node can receive messages at an appropriate or lower frequency without the need of keeping listening. Low Power node will poll Friend node to see if there is new message.

View File

@ -7,8 +7,9 @@ API Guides
app_trace
startup
:SOC_BLUFI_SUPPORTED: blufi
:SOC_BT_SUPPORTED: bluetooth
:SOC_BT_CLASSIC_SUPPORTED: classic-bt/index
:SOC_BLE_SUPPORTED: ble/index
:SOC_BLE_MESH_SUPPORTED: esp-ble-mesh/ble-mesh-index
bootloader
build-system
:SOC_SUPPORT_COEXISTENCE: coexist
@ -18,7 +19,6 @@ API Guides
:SOC_RTC_MEM_SUPPORTED: deep-sleep-stub
:SOC_USB_OTG_SUPPORTED: dfu
error-handling
:SOC_BLE_MESH_SUPPORTED: esp-ble-mesh/ble-mesh-index
:SOC_WIFI_MESH_SUPPORT: esp-wifi-mesh
:SOC_SPIRAM_SUPPORTED: external-ram
fatal-errors

View File

@ -1,8 +1,8 @@
Classic Bluetooth®
Bluetooth® Classic
==================
.. toctree::
:caption: Classic Bluetooth
:caption: Bluetooth Classic
Bluetooth GAP <esp_gap_bt>
Bluetooth A2DP <esp_a2dp>

View File

@ -0,0 +1,338 @@
主要功能支持状态
================
:link_to_translation:`en:[English]`
本文档介绍了乐鑫低功耗蓝牙模块主要功能在 {IDF_TARGET_NAME} 上的支持状态。
|supported_def| **该功能已完成开发和内部测试。** [1]_
|experimental_def| **该功能已完成开发,正在进行内部测试。**
你可以探索这些功能以进行评估和反馈,但应注意可能出现的问题。
|developing_def| **该功能目前正在积极开发中, 预计在 YYYY/MM 月底之前支持。**
请关注此表以获得该功能的最新进展。
如果确实有紧急的开发需求,请联系 `乐鑫客户支持团队 <https://www.espressif.com/zh-hans/contact-us/sales-questions>`__ 以了解是否可以进行功能试用。
|unsupported_def| **该功能在此芯片上不支持。** 如果你有相关需求,请优先选择其他支持该功能的乐鑫芯片系列。
如果当前的乐鑫产品都不支持此功能,请联系 `乐鑫客户支持团队 <https://www.espressif.com/zh-hans/contact-us/sales-questions>`__ ,我们的研发团队会对你的需求进行内部可行性评估。
|NA_def| 具有此标签的功能可能为以下两种类型:
- **Host-only 功能**:该功能仅存在于 HCI 层之上,例如 GATT Caching。此类功能不需要蓝牙控制器的支持。
- **Controller-only 功能**:该功能仅存在于 HCI 层之下且无法通过主机API配置或启用例如 Advertising Channel Index 。此类功能不需要蓝牙主机的支持。
.. list-table::
:width: 100%
:widths: auto
:header-rows: 1
* - .. centered:: 核心协议
- .. centered:: 主要功能
- .. centered:: ESP 控制器
- .. centered:: ESP-Bluedroid 主机
- .. centered:: ESP-NimBLE 主机
* - .. centered:: |4.2|
- LE Data Packet Length Extension
- |supported|
- |supported|
- |supported|
* -
- LE Secure Connections
- |supported|
- |supported|
- |supported|
* -
- Link Layer Privacy
- |supported|
- |supported|
- |supported|
* -
- Link Layer Extended Filter Policies
- |supported|
- |supported|
- |supported|
* - .. centered:: |5.0|
- 2 Msym/s PHY for LE
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
* -
- LE Long Range (Coded PHY S=2/S=8)
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
* -
- High Duty Cycle Non-Connectable Advertising
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
* -
- LE Advertising Extensions
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
* -
- LE Channel Selection Algorithm #2
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
- .. only:: esp32
|unsupported|
.. only:: not esp32
|supported|
* - .. centered:: |5.1|
- Angle of Arrival (AoA)/Angle of Departure (AoD)
- |unsupported|
- |unsupported|
- |unsupported|
* -
- GATT Caching
- |NA|
- |experimental|
- |experimental|
* -
- Advertising Channel Index
- |unsupported|
- |NA|
- |NA|
* -
- Periodic Advertising Sync Transfer
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c2 or esp32c5
|experimental|
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c2 or esp32c5
|experimental|
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c2 or esp32c5
|experimental|
* - .. centered:: |5.2|
- LE Isochronous Channels (BIS/CIS)
- |unsupported|
- |unsupported|
- |unsupported|
* -
- Enhanced Attribute Protocol
- |NA|
- |unsupported|
- |developing202412|
* -
- LE Power Control
- .. only:: esp32 or esp32c2
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c3 or esp32s3 or esp32c5
|experimental|
- |unsupported|
- .. only:: esp32 or esp32c2
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c3 or esp32s3 or esp32c5
|developing202412|
* - .. centered:: |5.3|
- AdvDataInfo in Periodic Advertising
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32c2 or esp32h2 or esp32c5
|supported|
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32c2 or esp32h2 or esp32c5
|supported|
- .. only:: esp32 or esp32c3 or esp32s3
|unsupported|
.. only:: esp32c6 or esp32c2 or esp32h2 or esp32c5
|supported|
* -
- LE Enhanced Connection Update (Connection Subrating)
- .. only:: esp32 or esp32c6 or esp32c2 or esp32h2 or esp32c5
|unsupported|
.. only:: esp32c3 or esp32s3
|experimental|
- |unsupported|
- .. only:: esp32 or esp32c6 or esp32c2 or esp32h2 or esp32c5
|unsupported|
.. only:: esp32c3 or esp32s3
|experimental|
* -
- LE Channel Classification
- .. only:: esp32 or esp32c3 or esp32s3 or esp32c2
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c5
|experimental|
- .. only:: esp32 or esp32c3 or esp32s3 or esp32c2
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c5
|experimental|
- .. only:: esp32 or esp32c3 or esp32s3 or esp32c2
|unsupported|
.. only:: esp32c6 or esp32h2 or esp32c5
|experimental|
* - .. centered:: |5.4|
- Advertising Coding Selection
- .. only:: esp32 or esp32c6 or esp32c2 or esp32h2 or esp32c5
|unsupported|
.. only:: esp32c3 or esp32s3
|experimental|
- |unsupported|
- .. only:: esp32 or esp32c6 or esp32c2 or esp32h2 or esp32c5
|unsupported|
.. only:: esp32c3 or esp32s3
|experimental|
* -
- Encrypted Advertising Data
- |NA|
- |unsupported|
- |experimental|
* -
- LE GATT Security Levels Characteristic
- |NA|
- |unsupported|
- |developing202412|
* -
- Periodic Advertising with Responses
- |unsupported|
- |unsupported|
- |unsupported|
.. [1]
如果想了解支持功能的 Bluetooth SIG 认证状态,
请查阅 `SIG 蓝牙产品数据库 <https://qualification.bluetooth.com/Listings/Search>`__
对于大部分开发需要在控制器 (Controller) 完成的功能,其主机层 (Host) 的支持状态将会受限于控制器层的支持状态。
如果你计划将乐鑫低功耗蓝牙控制器和主机跑在不同的乐鑫芯片上,则主机的功能将不再受限于这颗跑主机的芯片上的控制器的功能支持状态,
请参阅 :doc:`ESP 主机主要功能支持状态 <host-feature-support-status>`
请注意,本文档不构成对客户的约束性承诺。
以上所列出来的功能支持状态信息仅供参考,可能会在不通知的情况下发生更改。
建议联系 `乐鑫客户支持团队 <https://www.espressif.com/zh-hans/contact-us/sales-questions>`__ 以获取最新信息,并确认功能是否适合你的特定需求。
.. |supported| image:: ../../../_static/ble/feature_status/supported.svg
:class: align-center
:width: 65px
.. |developing202412| image:: ../../../_static/ble/feature_status/developing202412.svg
:class: align-center
:width: 120px
.. |unsupported| image:: ../../../_static/ble/feature_status/unsupported.svg
:class: align-center
:width: 75px
.. |experimental| image:: ../../../_static/ble/feature_status/experimental.svg
:class: align-center
:width: 75px
.. |NA| image:: ../../../_static/ble/feature_status/NA.svg
:class: align-center
:width: 25px
.. |supported_def| image:: ../../../_static/ble/feature_status/supported.svg
.. |developing_def| image:: ../../../_static/ble/feature_status/developingYYYYMM.svg
.. |unsupported_def| image:: ../../../_static/ble/feature_status/unsupported.svg
.. |experimental_def| image:: ../../../_static/ble/feature_status/experimental.svg
.. |NA_def| image:: ../../../_static/ble/feature_status/NA.svg
.. |4.2| replace:: `4.2 <https://www.bluetooth.com/specifications/specs/core-specification-4-2/>`__
.. |5.0| replace:: `5.0 <https://www.bluetooth.com/specifications/specs/core-specification-5-0/>`__
.. |5.1| replace:: `5.1 <https://www.bluetooth.com/specifications/specs/core-specification-5-1/>`__
.. |5.2| replace:: `5.2 <https://www.bluetooth.com/specifications/specs/core-specification-5-2/>`__
.. |5.3| replace:: `5.3 <https://www.bluetooth.com/specifications/specs/core-specification-5-3/>`__
.. |5.4| replace:: `5.4 <https://www.bluetooth.com/specifications/specs/core-specification-5-4/>`__

View File

@ -1,10 +1,10 @@
BluFi
^^^^^
^^^^^^
:link_to_translation:`en:[English]`
概览
-----
--------
BluFi 是一项基于蓝牙通道的 Wi-Fi 网络配置功能,适用于 {IDF_TARGET_NAME}。它通过安全协议将 Wi-Fi 的 SSID、密码等配置信息传输到 {IDF_TARGET_NAME}。基于这些信息,{IDF_TARGET_NAME} 可进而连接到 AP 或建立 SoftAP。
@ -13,7 +13,7 @@ BluFi 流程的关键部分包括数据的分片、加密以及校验和验证
用户可按需自定义用于对称加密、非对称加密以及校验的算法。此处,我们采用 DH 算法进行密钥协商128-AES 算法用于数据加密CRC16 算法用于校验和验证。
BluFi 流程
----------
-----------
BluFi 配网流程包含配置 SoftAP 和配置 Station 两部分。
@ -46,7 +46,7 @@ BluFi 配网流程包含配置 SoftAP 和配置 Station 两部分。
2. 进行对称加密和解密时,加密和解密前后的数据长度必须一致。支持原地加密和解密。
BluFi 流程图
---------------
------------
.. seqdiag::
:caption: BluFi Flow Chart
@ -75,7 +75,7 @@ BluFi 流程图
.. _frame_formats:
BluFi 中定义的帧格式
----------------------------
---------------------
手机应用程序与 {IDF_TARGET_NAME} 之间的 BluFi 通信格式定义如下:
@ -431,7 +431,7 @@ ACK 帧格式 (8 bit)
此字段占两个字节,用来校验序列、数据长度以及明文。
{IDF_TARGET_NAME} 端的安全实现
----------------------------------
-----------------------------
1. 数据安全

View File

@ -0,0 +1,159 @@
:orphan:
ESP 主机主要功能支持状态
========================
:link_to_translation:`en:[English]`
本文档介绍了乐鑫低功耗蓝牙主机 ESP-Bluedroid 和 ESP-NimBLE 主要功能的支持状态。
如果你计划将低功耗蓝牙控制器和主机跑在 {IDF_TARGET_NAME} 上,主机的功能支持可能会受限于控制器的功能支持状态,
请参阅 :doc:`{IDF_TARGET_NAME} 主要功能支持状态 <ble-feature-support-status>`
|supported_def| **该功能已完成开发和内部测试。** [1]_
|experimental_def| **该功能已完成开发,正在进行内部测试。**
你可以探索这些功能以进行评估和反馈,但应注意可能出现的问题。
|developing_def| **该功能目前正在积极开发中, 预计在 YYYY/MM 月底之前支持。**
请关注此表以获得该功能的最新进展。
如果确实有紧急的开发需求,请联系 `乐鑫客户支持团队 <https://www.espressif.com/zh-hans/contact-us/sales-questions>`__ 以了解是否可以进行功能试用。
|unsupported_def| **该功能在该蓝牙主机上不支持。** 如果你有相关需求,请优先选择其他支持该功能的乐鑫蓝牙主机。
如果当前的乐鑫产品都不支持此功能,请联系 `乐鑫客户支持团队 <https://www.espressif.com/zh-hans/contact-us/sales-questions>`__ ,我们的研发团队会对你的需求进行内部可行性评估。
|NA_def| 具有此标签的功能可能为以下类型:
- **Controller-only 功能**:该功能仅存在于 HCI 层之下且无法通过主机API配置或启用例如 Advertising Channel Index 。
此类功能不需要蓝牙主机的支持。
.. list-table::
:width: 100%
:widths: auto
:header-rows: 1
* - .. centered:: 核心协议
- .. centered:: 主要功能
- .. centered:: ESP-Bluedroid 主机
- .. centered:: ESP-NimBLE 主机
* - .. centered:: |4.2|
- LE Data Packet Length Extension
- |supported|
- |supported|
* -
- LE Secure Connections
- |supported|
- |supported|
* -
- Link Layer Privacy
- |supported|
- |supported|
* -
- Link Layer Extended Filter Policies
- |supported|
- |supported|
* - .. centered:: |5.0|
- 2 Msym/s PHY for LE
- |supported|
- |supported|
* -
- LE Long Range (Coded PHY S=2/S=8)
- |supported|
- |supported|
* -
- High Duty Cycle Non-Connectable Advertising
- |supported|
- |supported|
* -
- LE Advertising Extensions
- |supported|
- |supported|
* -
- LE Channel Selection Algorithm #2
- |supported|
- |supported|
* - .. centered:: |5.1|
- Angle of Arrival (AoA)/Angle of Departure (AoD)
- |unsupported|
- |unsupported|
* -
- GATT Caching
- |experimental|
- |experimental|
* -
- Advertising Channel Index
- |NA|
- |NA|
* -
- Periodic Advertising Sync Transfer
- |supported|
- |supported|
* - .. centered:: |5.2|
- LE Isochronous Channels (BIS/CIS)
- |unsupported|
- |unsupported|
* -
- Enhanced Attribute Protocol
- |unsupported|
- |developing202412|
* -
- LE Power Control
- |unsupported|
- |developing202412|
* - .. centered:: |5.3|
- AdvDataInfo in Periodic Advertising
- |supported|
- |supported|
* -
- LE Enhanced Connection Update (Connection Subrating)
- |unsupported|
- |supported|
* -
- LE Channel Classification
- |supported|
- |supported|
* - .. centered:: |5.4|
- Advertising Coding Selection
- |unsupported|
- |supported|
* -
- Encrypted Advertising Data
- |unsupported|
- |experimental|
* -
- LE GATT Security Levels Characteristic
- |unsupported|
- |developing202412|
* -
- Periodic Advertising with Responses
- |unsupported|
- |unsupported|
.. [1]
如果想了解支持功能的 Bluetooth SIG 认证状态,
请查阅 `SIG 蓝牙产品数据库 <https://qualification.bluetooth.com/Listings/Search>`__
请注意,本文档不构成对客户的约束性承诺。
以上所列出来的功能支持状态信息仅供参考,可能会在不通知的情况下发生更改。
建议联系 `乐鑫客户支持团队 <https://www.espressif.com/zh-hans/contact-us/sales-questions>`__ 以获取最新信息,并确认功能是否适合你的特定需求。
.. |supported| image:: ../../../_static/ble/feature_status/supported.svg
:class: align-center
.. |developing202412| image:: ../../../_static/ble/feature_status/developing202412.svg
:class: align-center
.. |unsupported| image:: ../../../_static/ble/feature_status/unsupported.svg
:class: align-center
.. |experimental| image:: ../../../_static/ble/feature_status/experimental.svg
:class: align-center
.. |NA| image:: ../../../_static/ble/feature_status/NA.svg
:class: align-center
.. |supported_def| image:: ../../../_static/ble/feature_status/supported.svg
.. |developing_def| image:: ../../../_static/ble/feature_status/developingYYYYMM.svg
.. |unsupported_def| image:: ../../../_static/ble/feature_status/unsupported.svg
.. |experimental_def| image:: ../../../_static/ble/feature_status/experimental.svg
.. |NA_def| image:: ../../../_static/ble/feature_status/NA.svg
.. |4.2| replace:: `4.2 <https://www.bluetooth.com/specifications/specs/core-specification-4-2/>`__
.. |5.0| replace:: `5.0 <https://www.bluetooth.com/specifications/specs/core-specification-5-0/>`__
.. |5.1| replace:: `5.1 <https://www.bluetooth.com/specifications/specs/core-specification-5-1/>`__
.. |5.2| replace:: `5.2 <https://www.bluetooth.com/specifications/specs/core-specification-5-2/>`__
.. |5.3| replace:: `5.3 <https://www.bluetooth.com/specifications/specs/core-specification-5-3/>`__
.. |5.4| replace:: `5.4 <https://www.bluetooth.com/specifications/specs/core-specification-5-4/>`__

View File

@ -0,0 +1,24 @@
################
低功耗蓝牙®
################
:link_to_translation:`en:[English]`
*****
概览
*****
.. toctree::
:maxdepth: 1
overview
ble-feature-support-status
**********
蓝牙规范
**********
.. toctree::
:maxdepth: 2
:SOC_BLE_MESH_SUPPORTED: ../esp-ble-mesh/ble-mesh-index
:SOC_BLUFI_SUPPORTED: blufi

View File

@ -0,0 +1,203 @@
介绍
=======
:link_to_translation:`en:[English]`
此文档概述了 ESP-IDF 中低功耗蓝牙协议栈的架构,并提供了一些相关文档和应用示例的快速链接。
.. only:: esp32
{IDF_TARGET_NAME} 支持双模蓝牙 4.2,并且已经获得双模蓝牙 4.2 认证和蓝牙 LE 5.0 认证
.. only:: esp32c3 or esp32s3
{IDF_TARGET_NAME} 支持蓝牙 5.0 (LE),并且已经获得蓝牙 LE 5.4 认证。
.. only:: esp32c2 or esp32c6 or esp32h2
{IDF_TARGET_NAME} 支持蓝牙 5.0 (LE),并且已经获得蓝牙 LE 5.3 认证。
ESP-IDF 中的低功耗蓝牙协议栈是一个分层架构,可在 {IDF_TARGET_NAME} 系列芯片上实现低功耗蓝牙功能,详见下。
.. only:: esp32 or esp32s3 or esp32c3 or esp32c6
.. figure:: ../../../_static/bluetooth-architecture.png
:align: center
:scale: 90%
:alt: {IDF_TARGET_NAME} 蓝牙协议栈架构
{IDF_TARGET_NAME} 蓝牙协议栈架构
.. only:: esp32c2
.. figure:: ../../../_static/bluetooth-architecture-no-ble-mesh.png
:align: center
:scale: 90%
:alt: {IDF_TARGET_NAME} 蓝牙协议栈架构
{IDF_TARGET_NAME} 蓝牙协议栈架构
.. only:: esp32h2
.. figure:: ../../../_static/bluetooth-architecture-no-blufi.png
:align: center
:scale: 90%
:alt: {IDF_TARGET_NAME} 蓝牙协议栈架构
{IDF_TARGET_NAME} 蓝牙协议栈架构
参考下表可知特定芯片是否支持低功耗蓝牙模块。
.. list-table::
:width: 100%
:widths: auto
:header-rows: 1
* - 芯片系列
- 控制器
- ESP-Bluedroid
- ESP-NimBLE
- ESP-BLE-MESH
- BluFi
* - ESP32
- Y
- Y
- Y
- Y
- Y
* - ESP32-S2
- \
- \
- \
- \
- \
* - ESP32-S3
- Y
- Y
- Y
- Y
- Y
* - ESP32-C2
- Y
- Y
- Y
- \
- Y
* - ESP32-C3
- Y
- Y
- Y
- Y
- Y
* - ESP32-C6
- Y
- Y
- Y
- Y
- Y
* - ESP32-H2
- Y
- Y
- Y
- Y
- \
以下各节简要介绍了每个层,并提供了相关文档和应用示例的快速链接。
ESP 蓝牙控制器
--------------
底层为 ESP 蓝牙控制器,包含 PHY、基带、链路控制器、链路管理器、设备管理器和 HCI 等各种模块。该层管理硬件接口和链路,以库的形式提供功能,并通过 API 访问,且直接与硬件和低级别蓝牙协议交互。
- :doc:`API 参考 <../../api-reference/bluetooth/controller_vhci>`
- :example:`应用示例 <bluetooth/hci>`
ESP 蓝牙主机
-------------
有 ESP-Bluedroid 和 ESP-NimBLE 两个主机,其主要区别如下:
- 虽然两者都支持低功耗蓝牙,但 ESP-NimBLE 需要的堆和 flash 空间更少。
.. only:: esp32
- ESP-Bluedroid 支持经典蓝牙和低功耗蓝牙,而 ESP-NimBLE 仅支持低功耗蓝牙。
ESP-Bluedroid
^^^^^^^^^^^^^
ESP-Bluedroid 是原生 Android 蓝牙协议栈 Bluedroid 的修改版,由两层组成:蓝牙上层 (BTU) 和蓝牙传输控制器层 (BTC)。BTU 层负责处理 L2CAP、GATT/ATT、SMP、GAP 等底层蓝牙协议以及其他配置文件,提供以 "bta" 为前缀的接口。BTC 层主要负责向应用层提供以 "esp" 为前缀的支持接口,并处理基于 GATT 的配置文件以及其他任务。所有的 API 都位于 ESP_API 层,开发者应使用以 "esp" 为前缀的低功耗蓝牙 API。
.. only:: esp32
{IDF_TARGET_NAME} 的 ESP-Bluedroid 支持经典蓝牙和低功耗蓝牙。
.. only:: not esp32
{IDF_TARGET_NAME} 的 ESP-Bluedroid 仅支持低功耗蓝牙,不支持经典蓝牙。
- API 参考
- :doc:`../../api-reference/bluetooth/bt_common`
- :doc:`低功耗蓝牙 <../../api-reference/bluetooth/bt_le>`
.. only:: esp32
- :example:`低功耗蓝牙 4.2 应用程序示例 <bluetooth/bluedroid/ble>`
.. only:: not esp32
- :example:`低功耗蓝牙 4.2 应用程序示例 <bluetooth/bluedroid/ble>`
- :example:`低功耗蓝牙 5.0 应用程序示例 <bluetooth/bluedroid/ble_50>`
ESP-NimBLE
^^^^^^^^^^
ESP-NimBLE 是建立在 Apache Mynewt 开发的 NimBLE 主机协议栈之上的主机协议栈,已经为 {IDF_TARGET_NAME} 系列芯片和 FreeRTOS 进行了移植。通过维持现有 NimBLE API并添加一个单独的 ESP-NimBLE API 进行初始化,使端口层保持简洁,也便于开发者操作。
ESP-NimBLE 仅支持低功耗蓝牙,不支持经典蓝牙。
- `Apache Mynewt NimBLE 用户指南 <https://mynewt.apache.org/latest/network/index.html>`__
- API 参考
- `NimBLE API 参考 <https://mynewt.apache.org/latest/network/ble_hs/ble_hs.html>`__
- :doc:`ESP-NimBLE 初始化 API 参考 initialization <../../api-reference/bluetooth/nimble/index>`
- :example:`应用程序示例 <bluetooth/nimble>`
蓝牙规范
--------
主机协议层之上是 Espressif 的蓝牙规范和一些常见的蓝牙规范。根据具体配置,这些规范可以在 ESP-Bluedroid 或 ESP-NimBLE 上运行。
.. only:: SOC_BLE_MESH_SUPPORTED
ESP-BLE-MESH
^^^^^^^^^^^^
ESP-BLE-MESH 基于 Zephyr 蓝牙 Mesh 协议栈,其实现支持设备配网和节点控制,还支持代理、中继、低功耗和朋友等节点功能。
- :doc:`ESP-BLE-MESH 文档 <../esp-ble-mesh/ble-mesh-index>`:功能列表、快速入门、架构、应用示例描述、常见问题等。
- :example:`应用示例 <bluetooth/esp_ble_mesh>`
.. only:: SOC_BLUFI_SUPPORTED
BluFi
^^^^^
{IDF_TARGET_NAME} 的 BluFi 是通过蓝牙信道进行的 Wi-Fi 网络配置功能。BluFi 提供了将 Wi-Fi 配置和凭据传递给 {IDF_TARGET_NAME} 的安全协议,从而使 {IDF_TARGET_NAME} 连接到 AP 或搭建软 AP。
- :doc:`BluFi 文档 <blufi>`
- :example:`应用示例 <bluetooth/blufi>`
应用
----
最上层是应用层。利用上述 API 和蓝牙规范,可以在 ESP-Bluedroid 和 ESP-NimBLE 协议栈之上创建特定用例的低功耗蓝牙应用程序。

View File

@ -1 +0,0 @@
.. include:: ../../en/api-guides/bluetooth.rst

View File

@ -0,0 +1,13 @@
###########
经典蓝牙®
###########
:link_to_translation:`en:[English]`
*****
概览
*****
.. toctree::
:maxdepth: 2
overview

View File

@ -0,0 +1,80 @@
介绍
=======
:link_to_translation:`en:[English]`
此文档概述了 ESP-IDF 中经典蓝牙协议栈的架构,并提供了一些相关文档和应用示例的快速链接。
.. only:: esp32
{IDF_TARGET_NAME} 支持双模蓝牙 4.2,并且已经获得双模蓝牙 4.2 认证。
ESP-IDF 中的经典蓝牙协议栈是一个分层架构,可在 {IDF_TARGET_NAME} 系列芯片上实现经典蓝牙功能,详见下。
.. only:: esp32
.. figure:: ../../../_static/classic-bluetooth-architecture.png
:align: center
:scale: 90%
:alt: {IDF_TARGET_NAME} 经典蓝牙协议栈架构
{IDF_TARGET_NAME} 经典蓝牙协议栈架构
参考下表可知特定芯片是否支持经典蓝牙控制器。
.. list-table::
:width: 100%
:widths: auto
:header-rows: 1
* - 芯片系列
- 控制器
* - ESP32
- Y
* - ESP32-S2
- \
* - ESP32-S3
- \
* - ESP32-C2
- \-
* - ESP32-C3
- \-
* - ESP32-C6
- \-
* - ESP32-H2
- \-
以下各节简要介绍了每个层,并提供了相关文档和应用示例的快速链接。
ESP 蓝牙控制器
--------------
底层为 ESP 蓝牙控制器,包含 PHY、基带、链路控制器、链路管理器、设备管理器和 HCI 等各种模块。该层管理硬件接口和链路,以库的形式提供功能,并通过 API 访问,且直接与硬件和低级别蓝牙协议交互。
- :doc:`API 参考 <../../api-reference/bluetooth/controller_vhci>`
- :example:`应用示例 <bluetooth/hci/controller_hci_uart_esp32>`
ESP 蓝牙主机
-------------
IDF 中的ESP-Bluedroid 主机支持经典蓝牙。
ESP-Bluedroid
^^^^^^^^^^^^^
ESP-Bluedroid 是原生 Android 蓝牙协议栈 Bluedroid 的修改版,由两层组成:蓝牙上层 (BTU) 和蓝牙传输控制器层 (BTC)。BTU 层负责处理 L2CAP 等底层蓝牙协议以及其他配置文件,提供以 "bta" 为前缀的接口。BTC 层主要负责向应用层提供以 "esp" 为前缀的支持接口,并处理其他任务。所有的 API 都位于 ESP_API 层,开发者应使用以 "esp" 为前缀的经典蓝牙 API。
- API 参考
- :doc:`../../api-reference/bluetooth/bt_common`
- :doc:`经典蓝牙 <../../api-reference/bluetooth/classic_bt>`
- :example:`应用程序示例 <bluetooth/bluedroid/classic_bt>`
应用
----
最上层是应用层。利用上述 API 和蓝牙规范,可以在 ESP-Bluedroid 协议栈之上创建特定用例的经典蓝牙应用程序。

View File

@ -204,7 +204,7 @@ ESP-BLE-MESH 架构主要由以下 5 大部分组成:
``API /事件`` 与 ESP-BLE-MESH 协议栈的交互
- 用户使用的 API 主要调用``Mesh Networking````Mesh Provisioning````Mesh Models`` 提供的函数。
- 用户使用的 API 主要调用 ``Mesh Networking`` ``Mesh Provisioning````Mesh Models`` 提供的函数。
- ``API /事件`` 和协议栈的交互不会跨越协议栈的层级进行操作。比如 API 不会调用 ``Network Layer`` 相关的函数。

View File

@ -532,7 +532,7 @@ ESP-BLE-MESH 常见问题手册
.. only:: esp32
未搭载 PSRAM 的 :doc:`ESP32-DevKitC <../../hw-reference/esp32/get-started-devkitc>` 开发板Wi-Fi 和 ESP-BLE-MESH 共存可以正常运行,但是吞吐率较低。当 Wi-Fi 和 ESP-BLE-MESH 共存时,搭载 PSRAM 的 ESP32-DevKitC 速率可以稳定在 1 Mbps 以上。
未搭载 PSRAM 的 `ESP32-DevKitC <https://docs.espressif.com/projects/esp-dev-kits/zh_CN/latest/esp32/esp32-devkitc/index.html>`__ 开发板Wi-Fi 和 ESP-BLE-MESH 共存可以正常运行,但是吞吐率较低。当 Wi-Fi 和 ESP-BLE-MESH 共存时,搭载 PSRAM 的 ESP32-DevKitC 速率可以稳定在 1 Mbps 以上。
应使能 menuconfig 中的一些配置来支持 PSRAM。

View File

@ -1 +1,153 @@
.. include:: ../../../en/api-guides/esp-ble-mesh/ble-mesh-feature-list.rst
ESP-BLE-MESH 功能列表
=====================
:link_to_translation:`en:[English]`
支持的功能
----------
Mesh 核心
"""""""""
* 入网
* PB-ADVPB-GATTPB-Remote
* OOB 验证
* 基于证书的入网
* 远程入网
* 增强入网验证
* 网络
* 中继
* 分包和重组
* 密钥更新程序
* IV 更新程序
* 朋友节点
* 低功耗节点
* 代理服务器
* 代理客户端
* 定向转发
* 私有信标
* 子网桥
* 次要增强
* 多个客户端模型同时运行
* 支持多个客户端模型同时向不同节点发送数据包
* 客户端模型与服务器模型之间无阻塞
* NVS 存储
* 存储 ESP-BLE-MESH 节点的入网和配置信息
Mesh 模型
"""""""""
* 基础模型
* 配置服务器模型
* 配置客户端模型
* 健康服务器模型
* 健康客户端模型
* 远程供应服务器模型
* 远程供应客户端模型
* 定向转发配置服务器模型
* 定向转发配置客户端模型
* 桥接配置服务器模型
* 桥接配置客户端模型
* Mesh 专用信标服务器模型
* Mesh 专用信标客户端模型
* 按需提供的专用代理服务器模型
* 按需提供的专用代理客户端模型
* SAR 配置服务器模型
* SAR 配置客户端模型
* 请求 PDU RPL 配置服务器模型
* 请求 PDU RPL 配置客户端模型
* 操作码聚合器服务器模型
* 操作码聚合器客户端模型
* 大型合成数据服务器模型
* 大型合成数据客户端模型
* 通用客户端模型
* 通用开关客户端
* 通用电平客户端
* 通用默认过渡时间客户端
* 通用电源开关客户端
* 通用功率电平客户端
* 通用电池客户端
* 通用位置客户端
* 通用属性客户端
* 传感器客户端模型
* 传感器客户端
* 时间与场景客户端模型
* 时间客户端
* 场景客户端
* 调度器客户端
* 照明客户端模型
* 灯光亮度客户端
* 灯光 CTL 客户端
* 灯光 HSL 客户端
* 灯光 xyL 客户端
* 灯光 LC 客户端
* 通用服务器模型
* 通用开关服务器
* 通用电平服务器
* 通用默认过渡时间服务器
* 通用电源开关服务器
* 通用电源开关设置服务器
* 通用功率电平服务器
* 通用功率电平设置服务器
* 通用电池服务器
* 通用位置服务器
* 通用位置设置服务器
* 通用用户属性服务器
* 通用管理员属性服务器
* 通用制造商属性服务器
* 通用客户端属性服务器
* 传感器服务器模型
* 传感器服务器
* 传感器设置服务器
* 时间和场景服务器模型
* 时间服务器
* 时间设置服务器
* 场景服务器
* 场景设置服务器
* 调度器服务器
* 调度器设置服务器
* 照明服务器模型
* 灯光亮度服务器
* 灯光亮度设置服务器
* 灯光 CTL 服务器
* 灯光 CTL 温度服务器
* 灯光 CTL 设置服务器
* 灯光 HSL 服务器
* 灯光 HSL 色调服务器
* 灯光 HSL 饱和度服务器
* 灯光 HSL 设置服务器
* 灯光 xyL 服务器
* 灯光 xyL 设置服务器
* 灯光 LC 服务器
* 灯光 LC 设置服务器
Mesh 示例
"""""""""""
* ESP-BLE-MESH 节点
* :example_file:`教程 <bluetooth/esp_ble_mesh/onoff_models/onoff_client/tutorial/BLE_Mesh_Node_OnOff_Client_Example_Walkthrough.md>`
* :example_file:`教程 <bluetooth/esp_ble_mesh/onoff_models/onoff_server/tutorial/BLE_Mesh_Node_OnOff_Server_Example_Walkthrough.md>`
* :example:`示例 <bluetooth/esp_ble_mesh/onoff_models>`
* ESP-BLE-MESH 供应者
* :example_file:`教程 <bluetooth/esp_ble_mesh/provisioner/tutorial/BLE_Mesh_Provisioner_Example_Walkthrough.md>`
* :example:`示例 <bluetooth/esp_ble_mesh/provisioner>`
* ESP-BLE-MESH 快速入网
* :example_file:`客户端模型快速入网教程 <bluetooth/esp_ble_mesh/fast_provisioning/fast_prov_client/tutorial/BLE_Mesh_Fast_Prov_Client_Example_Walkthrough.md>`
* :example_file:`服务器模型快速入网教程 <bluetooth/esp_ble_mesh/fast_provisioning/fast_prov_server/tutorial/BLE_Mesh_Fast_Prov_Server_Example_Walkthrough.md>`
* :example:`示例 <bluetooth/esp_ble_mesh/fast_provisioning>`
* `演示视频 <https://dl.espressif.com/BLE/public/ESP32_BLE_Mesh_Fast_Provision.mp4>`__
* ESP-BLE-MESH 及 Wi-Fi 共存
* :example_file:`教程 <bluetooth/esp_ble_mesh/wifi_coexist/tutorial/BLE_Mesh_WiFi_Coexist_Example_Walkthrough.md>`
* :example:`示例 <bluetooth/esp_ble_mesh/wifi_coexist>`
* `演示视频 <https://dl.espressif.com/BLE/public/ESP_BLE_MESH_WIFI_Coexistence.mp4>`__

View File

@ -25,8 +25,8 @@ ESP-BLE-MESH 的实现和认证基于最新的 `Mesh Profile v1.0.1 <https://www
.. _getting-started-with-ble-mesh:
ESP-BLE-MESH 快速入门
=====================
快速入门
========
该章节旨在帮助你基于乐鑫的 ESP32 开发板搭建 ESP-BLE-MESH 网络。
@ -210,8 +210,8 @@ Step 5. 运行网络
.. _esp-ble-mesh-examples:
ESP-BLE-MESH 示例
===================
示例
=====
* :example_file:`开关节点 <bluetooth/esp_ble_mesh/onoff_models/onoff_server/tutorial/BLE_Mesh_Node_OnOff_Server_Example_Walkthrough.md>` - 展示了将 ESP-BLE-MESH 作为拥有 Configuration Server model 和 Generic OnOff Server model 的节点设备的用法。然后ESP-BLE-MESH Provisioner 可以配网设备,控制表示开/关状态的 RGB 灯,示例请见 :example:`example code <bluetooth/esp_ble_mesh/onoff_models/onoff_server>`
@ -230,15 +230,15 @@ ESP-BLE-MESH 示例
.. _esp-ble-mesh-demo-videos:
ESP-BLE-MESH 演示视频
======================
演示视频
========
* `Espressif Fast Provisioning using ESP-BLE-MESH App <https://dl.espressif.com/BLE/public/ESP32_BLE_Mesh_Fast_Provision.mp4>`_
* `Espressif ESP-BLE-MESH and Wi-Fi Coexistence <https://dl.espressif.com/BLE/public/ESP_BLE_MESH_WIFI_Coexistence.mp4>`_
ESP-BLE-MESH 常见问题手册
=========================
常见问题手册
=============
* :ref:`ble-mesh-faq-provisioner-development`
* :ref:`ble-mesh-faq-node-development`
@ -266,9 +266,9 @@ ESP-BLE-MESH 常见问题手册
-------------
- `BLE Mesh Core Specification <https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429633>`_
- `BLE Mesh Protocol v1.1 Specification(draft) <https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=554899>`_
- `BLE Mesh Protocol v1.1 Specification <https://www.bluetooth.com/specifications/specs/mesh-protocol/>`_
- `BLE Mesh Model Specification <https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429634>`_
- `BLE Mesh Model v1.1 Specification(draft) <https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=557081>`_
- `BLE Mesh Model v1.1 Specification <https://www.bluetooth.com/specifications/specs/mesh-model-1-1/>`_
- `An Intro to Bluetooth Mesh Part 1 <https://www.bluetooth.com/blog/an-intro-to-bluetooth-mesh-part1>`_ / `Part 2 <https://www.bluetooth.com/blog/an-intro-to-bluetooth-mesh-part2>`__
- `The Fundamental Concepts of Bluetooth Mesh Networking, Part 1 <https://www.bluetooth.com/blog/the-fundamental-concepts-of-bluetooth-mesh-networking-part-1>`_ / `Part 2 <https://www.bluetooth.com/blog/the-fundamental-concepts-of-bluetooth-mesh-networking-part-2>`__
- `Bluetooth Mesh Networking: Friendship <https://www.bluetooth.com/blog/bluetooth-mesh-networking-series-friendship>`_

View File

@ -7,8 +7,9 @@ API 指南
app_trace
startup
:SOC_BLUFI_SUPPORTED: blufi
:SOC_BT_SUPPORTED: bluetooth
:SOC_BT_CLASSIC_SUPPORTED: classic-bt/index
:SOC_BLE_SUPPORTED: ble/index
:SOC_BLE_MESH_SUPPORTED: esp-ble-mesh/ble-mesh-index
bootloader
build-system
:SOC_SUPPORT_COEXISTENCE: coexist
@ -18,7 +19,6 @@ API 指南
:SOC_RTC_MEM_SUPPORTED: deep-sleep-stub
:SOC_USB_OTG_SUPPORTED: dfu
error-handling
:SOC_BLE_MESH_SUPPORTED: esp-ble-mesh/ble-mesh-index
:SOC_WIFI_MESH_SUPPORT: esp-wifi-mesh
:SOC_SPIRAM_SUPPORTED: external-ram
fatal-errors