Provide BLE Mesh documentation
This commit is contained in:
@@ -13,7 +13,9 @@ if BLE_MESH
|
||||
default y
|
||||
help
|
||||
Enable this option to allow using specific duplicate scan filter
|
||||
in BLE Mesh, and Scan Duplicate Type must be set to 0x02.
|
||||
in BLE Mesh, and Scan Duplicate Type must be set by choosing the
|
||||
option in the Bluetooth Controller section in menuconfig, which is
|
||||
"Scan Duplicate By Device Address and Advertising Data".
|
||||
|
||||
config BLE_MESH_FAST_PROV
|
||||
bool "Enable BLE Mesh Fast Provisioning"
|
||||
@@ -23,16 +25,24 @@ if BLE_MESH
|
||||
default n
|
||||
help
|
||||
Enable this option to allow BLE Mesh fast provisioning solution to be used.
|
||||
When there are multiple unprovisioned devices around, fast provisioning can
|
||||
greatly reduce the time consumption of the whole provisioning process.
|
||||
When this option is enabled, and after an unprovisioned device is provisioned
|
||||
into a node successfully, it can be changed to a temporary Provisioner.
|
||||
|
||||
config BLE_MESH_NODE
|
||||
bool "Support for BLE Mesh Node"
|
||||
help
|
||||
Enable the device to be provisioned into a node.
|
||||
Enable the device to be provisioned into a node. This option should be
|
||||
enabled when an unprovisioned device is going to be provisioned into a
|
||||
node and communicate with other nodes in the BLE Mesh network.
|
||||
|
||||
config BLE_MESH_PROVISIONER
|
||||
bool "Support for BLE Mesh Provisioner"
|
||||
help
|
||||
Enable the device to be a provisioner.
|
||||
Enable the device to be a Provisioner. The option should be enabled when
|
||||
a device is going to act as a Provisioner and provision unprovisioned
|
||||
devices into the BLE Mesh network.
|
||||
|
||||
if BLE_MESH_PROVISIONER
|
||||
|
||||
@@ -41,8 +51,10 @@ if BLE_MESH
|
||||
default 20
|
||||
range 1 100
|
||||
help
|
||||
This option specifies how may unprovisioned devices can be added to device
|
||||
queue for provisioning.
|
||||
This option specifies how many unprovisioned devices can be added to device
|
||||
queue for provisioning. Users can use this option to define the size of the
|
||||
queue in the bottom layer which is used to store unprovisioned device
|
||||
information (e.g. Device UUID, address).
|
||||
|
||||
config BLE_MESH_MAX_STORED_NODES
|
||||
int "Maximum number of nodes whose information can be stored"
|
||||
@@ -50,48 +62,64 @@ if BLE_MESH
|
||||
range 1 1000
|
||||
help
|
||||
This option specifies the maximum number of nodes whose information can be
|
||||
stored by a provisioner in its upper layer.
|
||||
stored by a Provisioner in its upper layer.
|
||||
Users can change this value according to the number of nodes whose information
|
||||
(e.g. Device UUID, unicast address, element number) are going to be stored by
|
||||
a Provisioner. And the nodes include the provisioned ones and user-added ones.
|
||||
|
||||
config BLE_MESH_MAX_PROV_NODES
|
||||
int "Maximum number of devices that can be provisioned by provisioner"
|
||||
int "Maximum number of devices that can be provisioned by Provisioner"
|
||||
default 20
|
||||
range 1 100
|
||||
help
|
||||
This option specifies how many devices can be provisioned by provisioner.
|
||||
This option specifies how many devices can be provisioned by a Provisioner.
|
||||
This value indicates the maximum number of unprovisioned devices which can be
|
||||
provisioned by a Provisioner. For instance,if the value is 6, it means the
|
||||
Provisioner can provision up to 6 unprovisioned devices.
|
||||
Theoretically a Provisioner without the limitation of its memory can provision
|
||||
up to 32766 unprovisioned devices, here we limit the maximum number to 100
|
||||
just to limit the memory used by a Provisioner. The bigger the value is, the
|
||||
more memory it will cost by a Provisioner to store the information of nodes.
|
||||
|
||||
if BLE_MESH_PB_ADV
|
||||
config BLE_MESH_PBA_SAME_TIME
|
||||
int "Maximum number of PB-ADV running at the same time by provisioner"
|
||||
int "Maximum number of PB-ADV running at the same time by Provisioner"
|
||||
default 2
|
||||
range 1 10
|
||||
help
|
||||
This option specifies how many devices can be provisioned at the same
|
||||
time using PB-ADV.
|
||||
This option specifies how many devices can be provisioned at the same time
|
||||
using PB-ADV. For examples, if the value is 2, it means a Provisioner can
|
||||
provision two unprovisioned devices with PB-ADV at the same time.
|
||||
|
||||
endif # BLE_MESH_PB_ADV
|
||||
|
||||
if BLE_MESH_PB_GATT
|
||||
config BLE_MESH_PBG_SAME_TIME
|
||||
int "Maximum number of PB-GATT running at the same time by provisioner"
|
||||
int "Maximum number of PB-GATT running at the same time by Provisioner"
|
||||
default 1
|
||||
range 1 5
|
||||
help
|
||||
This option specifies how many devices can be provisioned at the same
|
||||
time using PB-GATT.
|
||||
time using PB-GATT. For example, if the value is 2, it means a Provisioner
|
||||
can provision two unprovisioned devices with PB-GATT at the same time.
|
||||
|
||||
endif # BLE_MESH_PB_GATT
|
||||
|
||||
config BLE_MESH_PROVISIONER_SUBNET_COUNT
|
||||
int "Maximum number of mesh subnets that can be created by provisioner"
|
||||
int "Maximum number of mesh subnets that can be created by Provisioner"
|
||||
default 3
|
||||
range 1 4096
|
||||
help
|
||||
This option specifies how many subnets per network a provisioner can create.
|
||||
This option specifies how many subnets per network a Provisioner can create.
|
||||
Indeed, this value decides the number of network keys which can be added by a Provisioner.
|
||||
|
||||
config BLE_MESH_PROVISIONER_APP_KEY_COUNT
|
||||
int "Maximum number of application keys that can be owned by provisioner"
|
||||
int "Maximum number of application keys that can be owned by Provisioner"
|
||||
default 9
|
||||
range 1 4096
|
||||
help
|
||||
This option specifies how many application keys the provisioner can have.
|
||||
This option specifies how many application keys the Provisioner can have.
|
||||
Indeed, this value decides the number of the application keys which can be added by a Provisioner.
|
||||
|
||||
endif # BLE_MESH_PROVISIONER
|
||||
|
||||
@@ -109,7 +137,8 @@ if BLE_MESH
|
||||
default y
|
||||
help
|
||||
Enable this option to allow the device to be provisioned over the
|
||||
advertising bearer.
|
||||
advertising bearer. This option should be enabled if PB-ADV is
|
||||
going to be used during provisioning procedure.
|
||||
|
||||
config BLE_MESH_PB_GATT
|
||||
bool "Provisioning support using GATT (PB-GATT)"
|
||||
@@ -117,6 +146,8 @@ if BLE_MESH
|
||||
select BLE_MESH_PROV
|
||||
help
|
||||
Enable this option to allow the device to be provisioned over GATT.
|
||||
This option should be enabled if PB-GATT is going to be used during
|
||||
provisioning procedure.
|
||||
|
||||
# Virtual option enabled whenever any Proxy protocol is needed
|
||||
config BLE_MESH_PROXY
|
||||
@@ -132,6 +163,7 @@ if BLE_MESH
|
||||
help
|
||||
This option enables support for Mesh GATT Proxy Service, i.e. the
|
||||
ability to act as a proxy between a Mesh GATT Client and a Mesh network.
|
||||
This option should be enabled if a node is going to be a Proxy Server.
|
||||
|
||||
config BLE_MESH_NODE_ID_TIMEOUT
|
||||
int "Node Identity advertising timeout"
|
||||
@@ -143,6 +175,9 @@ if BLE_MESH
|
||||
Node Identity. The given value is in seconds. The specification limits
|
||||
this to 60 seconds and lists it as the recommended value as well.
|
||||
So leaving the default value is the safest option.
|
||||
When an unprovisioned device is provisioned successfully and becomes a
|
||||
node, it will start to advertise using Node Identity during the time
|
||||
set by this option. And after that, Network ID will be advertised.
|
||||
|
||||
if BLE_MESH_PROXY
|
||||
|
||||
@@ -153,6 +188,9 @@ if BLE_MESH
|
||||
range 1 32767
|
||||
help
|
||||
This option specifies how many Proxy Filter entries the local node supports.
|
||||
The entries of Proxy filter (whitelist or blacklist) are used to store a
|
||||
list of addresses which can be used to decide which messages will be forwarded
|
||||
to the Proxy Client by the Proxy Server.
|
||||
|
||||
endif # BLE_MESH_PROXY
|
||||
|
||||
@@ -160,7 +198,9 @@ if BLE_MESH
|
||||
bool "BLE Mesh net buffer pool usage tracking"
|
||||
default y
|
||||
help
|
||||
Enable BLE Mesh net buffer pool tracking.
|
||||
Enable BLE Mesh net buffer pool tracking. This option is used to introduce another
|
||||
variable in the bottom layer to record the usage of advertising buffers of BLE Mesh
|
||||
devices. Recommend to enable this option as default.
|
||||
|
||||
config BLE_MESH_SETTINGS
|
||||
bool "Store BLE Mesh Node configuration persistently"
|
||||
@@ -169,6 +209,8 @@ if BLE_MESH
|
||||
When selected, the BLE Mesh stack will take care of storing/restoring the
|
||||
BLE Mesh configuration persistently in flash. Currently this only supports
|
||||
storing BLE Mesh node configuration.
|
||||
Currently enabling this option will only store BLE Mesh nodes' information
|
||||
in the flash.
|
||||
|
||||
if BLE_MESH_SETTINGS
|
||||
config BLE_MESH_STORE_TIMEOUT
|
||||
@@ -178,6 +220,9 @@ if BLE_MESH
|
||||
help
|
||||
This value defines in seconds how soon any pending changes are actually
|
||||
written into persistent storage (flash) after a change occurs.
|
||||
The option allows nodes to delay a certain period of time to save proper
|
||||
information to flash. The default value is 0, which means information
|
||||
will be stored immediately once there are updates.
|
||||
|
||||
config BLE_MESH_SEQ_STORE_RATE
|
||||
int "How often the sequence number gets updated in storage"
|
||||
@@ -199,16 +244,17 @@ if BLE_MESH
|
||||
range 0 1000000
|
||||
default 5
|
||||
help
|
||||
This value defines in seconds how soon the RPL(Replay Protection List)
|
||||
This value defines in seconds how soon the RPL (Replay Protection List)
|
||||
gets written to persistent storage after a change occurs. If the node
|
||||
receives messages frequently, then a large value is recommended. If the
|
||||
node receives messages rarely, then the value can be as low as 0 (which
|
||||
means the PRL is written into the storage immediately).
|
||||
means the RPL is written into the storage immediately).
|
||||
Note that if the node operates in a security-sensitive case, and there is
|
||||
a risk of sudden power-off, then a value of 0 is strongly recommended.
|
||||
Otherwise, a power loss before RPL being written into the storage may
|
||||
introduce message replay attacks and system security will be in a
|
||||
vulnerable state.
|
||||
|
||||
endif # if BLE_MESH_SETTINGS
|
||||
|
||||
config BLE_MESH_SUBNET_COUNT
|
||||
@@ -217,6 +263,7 @@ if BLE_MESH
|
||||
range 1 4096
|
||||
help
|
||||
This option specifies how many subnets a Mesh network can have at the same time.
|
||||
Indeed, this value decides the number of the network keys which can be owned by a node.
|
||||
|
||||
config BLE_MESH_APP_KEY_COUNT
|
||||
int "Maximum number of application keys per network"
|
||||
@@ -224,6 +271,7 @@ if BLE_MESH
|
||||
range 1 4096
|
||||
help
|
||||
This option specifies how many application keys the device can store per network.
|
||||
Indeed, this value decides the number of the application keys which can be owned by a node.
|
||||
|
||||
config BLE_MESH_MODEL_KEY_COUNT
|
||||
int "Maximum number of application keys per model"
|
||||
@@ -247,6 +295,7 @@ if BLE_MESH
|
||||
range 0 4096
|
||||
help
|
||||
This option specifies how many Label UUIDs can be stored.
|
||||
Indeed, this value decides the number of the Virtual Addresses can be supported by a node.
|
||||
|
||||
config BLE_MESH_CRPL
|
||||
int "Maximum capacity of the replay protection list"
|
||||
@@ -255,6 +304,9 @@ if BLE_MESH
|
||||
help
|
||||
This option specifies the maximum capacity of the replay protection list.
|
||||
It is similar to Network message cache size, but has a different purpose.
|
||||
The replay protection list is used to prevent a node from replay attack,
|
||||
which will store the source address and sequence number of the received
|
||||
mesh messages.
|
||||
|
||||
config BLE_MESH_MSG_CACHE_SIZE
|
||||
int "Network message cache size"
|
||||
@@ -264,6 +316,8 @@ if BLE_MESH
|
||||
Number of messages that are cached for the network. This helps prevent
|
||||
unnecessary decryption operations and unnecessary relays. This option
|
||||
is similar to Replay protection list, but has a different purpose.
|
||||
A node is not required to cache the entire Network PDU and may cache
|
||||
only part of it for tracking, such as values for SRC/SEQ or others.
|
||||
|
||||
config BLE_MESH_ADV_BUF_COUNT
|
||||
int "Number of advertising buffers"
|
||||
@@ -309,6 +363,11 @@ if BLE_MESH
|
||||
range 1 BLE_MESH_ADV_BUF_COUNT
|
||||
help
|
||||
Maximum number of simultaneous outgoing multi-segment and/or reliable messages.
|
||||
The default value is 1, which means the device can only send one segmented
|
||||
message at a time. And if another segmented message is going to be sent, it
|
||||
should wait for the completion of the previous one.
|
||||
If users are going to send multiple segmented messages at the same time, this
|
||||
value should be configured properly.
|
||||
|
||||
config BLE_MESH_RX_SEG_MSG_COUNT
|
||||
int "Maximum number of simultaneous incoming segmented messages"
|
||||
@@ -316,6 +375,11 @@ if BLE_MESH
|
||||
range 1 255
|
||||
help
|
||||
Maximum number of simultaneous incoming multi-segment and/or reliable messages.
|
||||
The default value is 1, which means the device can only receive one segmented
|
||||
message at a time. And if another segmented message is going to be received,
|
||||
it should wait for the completion of the previous one.
|
||||
If users are going to receive multiple segmented messages at the same time, this
|
||||
value should be configured properly.
|
||||
|
||||
config BLE_MESH_RX_SDU_MAX
|
||||
int "Maximum incoming Upper Transport Access PDU length"
|
||||
@@ -352,12 +416,18 @@ if BLE_MESH
|
||||
config BLE_MESH_RELAY
|
||||
bool "Relay support"
|
||||
help
|
||||
Support for acting as a Mesh Relay Node.
|
||||
Support for acting as a Mesh Relay Node. Enabling this option will allow
|
||||
a node to support the Relay feature, and the Relay feature can still
|
||||
be enabled or disabled by proper configuration messages. Disabling this
|
||||
option will let a node not support the Relay feature.
|
||||
|
||||
config BLE_MESH_LOW_POWER
|
||||
bool "Support for Low Power features"
|
||||
help
|
||||
Enable this option to operate as a Low Power Node.
|
||||
Enable this option to operate as a Low Power Node. If low power consumption
|
||||
is required by a node, this option should be enabled. And once the node
|
||||
enters the mesh network, it will try to find a Friend node and establish a
|
||||
friendship.
|
||||
|
||||
if BLE_MESH_LOW_POWER
|
||||
|
||||
@@ -369,6 +439,9 @@ if BLE_MESH
|
||||
reduced scan duty cycle. The downside of this is that the node may miss
|
||||
out on messages intended for it until it has successfully set up Friendship
|
||||
with a Friend node.
|
||||
When this option is enabled, the node will stop scanning for a period of
|
||||
time after a Friend Request or Friend Poll is sent, so as to reduce more
|
||||
power consumption.
|
||||
|
||||
config BLE_MESH_LPN_AUTO
|
||||
bool "Automatically start looking for Friend nodes once provisioned"
|
||||
@@ -377,6 +450,9 @@ if BLE_MESH
|
||||
Once provisioned, automatically enable LPN functionality and start looking
|
||||
for Friend nodes. If this option is disabled LPN mode needs to be manually
|
||||
enabled by calling bt_mesh_lpn_set(true).
|
||||
When an unprovisioned device is provisioned successfully and becomes a node,
|
||||
enabling this option will trigger the node starts to send Friend Request at
|
||||
a certain period until it finds a proper Friend node.
|
||||
|
||||
config BLE_MESH_LPN_AUTO_TIMEOUT
|
||||
int "Time from last received message before going to LPN mode"
|
||||
@@ -388,7 +464,7 @@ if BLE_MESH
|
||||
before starting to look for Friend nodes.
|
||||
|
||||
config BLE_MESH_LPN_RETRY_TIMEOUT
|
||||
int "Retry timeout for Friend requests"
|
||||
int "Retry timeout for Friend Requests"
|
||||
default 8
|
||||
range 1 3600
|
||||
help
|
||||
@@ -402,6 +478,8 @@ if BLE_MESH
|
||||
help
|
||||
The contribution of the RSSI, measured by the Friend node, used in Friend
|
||||
Offer Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
|
||||
RSSIFactor, one of the parameters carried by Friend Request sent by Low Power
|
||||
node, which is used to calculate the Friend Offer Delay.
|
||||
|
||||
config BLE_MESH_LPN_RECV_WIN_FACTOR
|
||||
int "ReceiveWindowFactor, used in Friend Offer Delay calculation"
|
||||
@@ -410,6 +488,8 @@ if BLE_MESH
|
||||
help
|
||||
The contribution of the supported Receive Window used in Friend Offer
|
||||
Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
|
||||
ReceiveWindowFactor, one of the parameters carried by Friend Request sent by
|
||||
Low Power node, which is used to calculate the Friend Offer Delay.
|
||||
|
||||
config BLE_MESH_LPN_MIN_QUEUE_SIZE
|
||||
int "Minimum size of the acceptable friend queue (MinQueueSizeLog)"
|
||||
@@ -440,6 +520,8 @@ if BLE_MESH
|
||||
the Friend node before the PollTimeout timer expires, then the
|
||||
friendship is considered terminated. The value is in units of 100
|
||||
milliseconds, so e.g. a value of 300 means 30 seconds.
|
||||
The smaller the value, the faster the Low Power node tries to get
|
||||
messages from corresponding Friend node and vice versa.
|
||||
|
||||
config BLE_MESH_LPN_INIT_POLL_TIMEOUT
|
||||
int "The starting value of the PollTimeout timer"
|
||||
@@ -467,6 +549,7 @@ if BLE_MESH
|
||||
default 8
|
||||
help
|
||||
Maximum number of groups to which the LPN can subscribe.
|
||||
|
||||
endif # BLE_MESH_LOW_POWER
|
||||
|
||||
config BLE_MESH_FRIEND
|
||||
@@ -489,6 +572,8 @@ if BLE_MESH
|
||||
default 16
|
||||
help
|
||||
Minimum number of buffers available to be stored for each local Friend Queue.
|
||||
This option decides the size of each buffer which can be used by a Friend node
|
||||
to store messages for each Low Power node.
|
||||
|
||||
config BLE_MESH_FRIEND_SUB_LIST_SIZE
|
||||
int "Friend Subscription List Size"
|
||||
@@ -496,7 +581,9 @@ if BLE_MESH
|
||||
default 3
|
||||
help
|
||||
Size of the Subscription List that can be supported by a Friend node for a
|
||||
Low Power node.
|
||||
Low Power node. And Low Power node can send Friend Subscription List Add or
|
||||
Friend Subscription List Remove messages to the Friend node to add or remove
|
||||
subscription addresses.
|
||||
|
||||
config BLE_MESH_FRIEND_LPN_COUNT
|
||||
int "Number of supported LPN nodes"
|
||||
@@ -504,6 +591,9 @@ if BLE_MESH
|
||||
default 2
|
||||
help
|
||||
Number of Low Power Nodes with which a Friend can have Friendship simultaneously.
|
||||
A Friend node can have friendship with multiple Low Power nodes at the same time,
|
||||
while a Low Power node can only establish friendship with only one Friend node at
|
||||
the same time.
|
||||
|
||||
config BLE_MESH_FRIEND_SEG_RX
|
||||
int "Number of incomplete segment lists per LPN"
|
||||
@@ -521,7 +611,8 @@ if BLE_MESH
|
||||
depends on BLE_MESH
|
||||
default n
|
||||
help
|
||||
Select this to save the BLE Mesh related rodata code size.
|
||||
Select this to save the BLE Mesh related rodata code size. Enabling this option
|
||||
will disable the output of BLE Mesh debug log.
|
||||
|
||||
menu "BLE Mesh STACK DEBUG LOG LEVEL"
|
||||
depends on BLE_MESH && !BLE_MESH_NO_LOG
|
||||
@@ -602,6 +693,10 @@ if BLE_MESH
|
||||
help
|
||||
To improve the real-time requirements of bt controller in BLE Mesh,
|
||||
task lock is used to replace IRQ lock.
|
||||
With this option enabled, interrupt lock instead of the mutex will
|
||||
be used and the BLE Mesh stack will try to change interrupt level to
|
||||
protect some critical situations. Users need to ensure that this option
|
||||
is disabled so mutex will be used in the bottom layer.
|
||||
|
||||
config BLE_MESH_CLIENT_MSG_TIMEOUT
|
||||
int "Timeout(ms) for client message response"
|
||||
@@ -610,6 +705,10 @@ if BLE_MESH
|
||||
help
|
||||
Timeout value used by the node to get response of the acknowledged
|
||||
message which is sent by the client model.
|
||||
This value indicates the maximum time that a client model waits for
|
||||
the response of the sent acknowledged messages. If a client model
|
||||
uses 0 as the timeout value when sending acknowledged messages, then
|
||||
the default value will be used which is four seconds.
|
||||
|
||||
menu "Support for BLE Mesh Client Models"
|
||||
|
||||
@@ -716,6 +815,7 @@ if BLE_MESH
|
||||
help
|
||||
This option removes the 96 hour limit of the IV Update Procedure and
|
||||
lets the state to be changed at any time.
|
||||
If IV Update test mode is going to be used, this option should be enabled.
|
||||
|
||||
menu "BLE Mesh specific test option"
|
||||
|
||||
@@ -801,3 +901,4 @@ if BLE_MESH
|
||||
endmenu
|
||||
|
||||
endif # BLE_MESH
|
||||
|
||||
|
||||
21
components/bt/esp_ble_mesh/README.md
Normal file
21
components/bt/esp_ble_mesh/README.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# ESP-BLE-MESH Component
|
||||
|
||||
This is Espressif Bluetooth Low Energy Mesh component folder.
|
||||
|
||||
This component is a part of Espressif IoT Development Framework (ESP-IDF). For the latest documentation please refer to [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/index.html).
|
||||
|
||||
The ESP-BLE-MESH networking enables many-to-many (m:m) device communications and is optimized for creating large-scale device networks.
|
||||
|
||||
|
||||
### [ESP-BLE-MESH Documentation](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/esp_ble_mesh/index.html)
|
||||
|
||||
- [Getting Started](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/esp_ble_mesh/index.html##getting-started-with-ble-mesh)
|
||||
- [Architecture](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/esp_ble_mesh/arhitecture.html)
|
||||
- [Feature List](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/esp_ble_mesh/ble_mesh-feature-list.html)
|
||||
- [FAQ](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/esp_ble_mesh/ble_mesh_faq.html)
|
||||
- [API Reference](https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/bluetooth/ble_mesh.html)
|
||||
|
||||
|
||||
### [ESP-BLE-MESH Examples](https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/esp_ble_mesh)
|
||||
|
||||
- Refer to **ESP-BLE-MESH Examples** of [Getting Started](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/esp_ble_mesh/index.html##getting-started-with-ble-mesh) for the tutorials of ESP BLE Mesh examples.
|
||||
@@ -1,9 +0,0 @@
|
||||
# Frequently Asked Questions
|
||||
|
||||
## General Questions
|
||||
|
||||
### Why I do not get a reply from the remote device when I perform get operation immediately after set operation has been performed?
|
||||
* Any Client Model operation needs to wait for the completion event of an ongoing operation. Once the completion event is received the next command can be executed. If a command is executed before the completion event is received, a timeout error will occur.
|
||||
|
||||
### When I use the API `esp_ble_mesh_client_model_send_msg`, why does it crash with the log messages *Invalid client value when sent client msg* or *Invalid client value when sent client msg*?
|
||||
* You should initialize a structure of the type `esp_ble_mesh_client_t` and set its value as the user data of client model.
|
||||
@@ -1,89 +0,0 @@
|
||||
# Espressif BLE Mesh Feature List
|
||||
|
||||
## Currently Supported Features
|
||||
|
||||
### Mesh Core
|
||||
|
||||
* Provisioning: Node Role
|
||||
* Advertising and GATT bearer
|
||||
* Authentication OOB
|
||||
|
||||
* Provisioning: Provisioner Role
|
||||
* Advertising and GATT bearer
|
||||
* 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 Storing
|
||||
* Store Provisioning Data of The Node Device
|
||||
|
||||
### Mesh Applications
|
||||
|
||||
* Fast Provisioning
|
||||
* Fast Provisioning Server Model
|
||||
* Fast Provisioning Client Model
|
||||
* Example & Demo Video
|
||||
|
||||
* Wi-Fi & BLE Mesh Coexistence
|
||||
* Example & Demo Video(coming soon)
|
||||
|
||||
* Mesh Console Commands
|
||||
* Example
|
||||
|
||||
|
||||
### Mesh Models
|
||||
|
||||
* Foundation Models
|
||||
* Configuration Server Model
|
||||
* Configuration Client Model
|
||||
* Health Server Model
|
||||
* Health Client Model
|
||||
|
||||
* Generic Client Models
|
||||
* Generic OnOff Client
|
||||
* Generic Level Client
|
||||
* Generic Location Client
|
||||
* Generic Default Transition Timer Client
|
||||
* Generic Power OnOff Client
|
||||
* Generic Power Level Client
|
||||
* Generic Battery Client
|
||||
* Generic Property Client
|
||||
|
||||
* Generic Server Models
|
||||
* Generic OnOff Server (Simple)
|
||||
|
||||
* Lighting Client Models
|
||||
* Light Lightness Client
|
||||
* Light CTL Client
|
||||
* Light HSL Client
|
||||
|
||||
* Sensor Client Models
|
||||
* Sensor Client
|
||||
|
||||
* Time and Scenes Client Models
|
||||
* Scene Client
|
||||
|
||||
|
||||
## Future Release Features
|
||||
|
||||
### Mesh Core
|
||||
|
||||
* BLE Mesh BQB Certification
|
||||
* Friend Feature
|
||||
* Low Power Node Feature
|
||||
|
||||
### Mesh Applications
|
||||
|
||||
* Fast OTA
|
||||
|
||||
### Mesh Models
|
||||
@@ -1,155 +0,0 @@
|
||||
# Introduction
|
||||
|
||||
Bluetooth mesh networking enables many-to-many (m:m) device communications and is optimized for creating large-scale device networks.
|
||||
|
||||
Devices may relay data to other devices not in direct radio range of the originating device. In this way, mesh networks can span very large physical areas and contain large numbers of devices. It is ideally suited for building automation, sensor networks, and other IoT solutions where tens, hundreds, or thousands of devices need to reliably and securely communicate with one another.
|
||||
|
||||
Bluetooth mesh is not a wireless communications technology, but a networking technology. This technology is dependent upon Bluetooth Low Energy (BLE) - a wireless communications protocol stack.
|
||||
|
||||
|
||||
# Specifications
|
||||
|
||||
The official specifications for Bluetooth mesh can be found [here](https://www.bluetooth.com/specifications/mesh-specifications)
|
||||
|
||||
|
||||
# Getting Started with BLE Mesh on ESP32
|
||||
|
||||
If you are new to ESP32, you may first need to go through the [Getting Started guide](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html).
|
||||
|
||||
Built on top of Zephyr BLE 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.
|
||||
|
||||
|
||||
## Access to ESP BLE Mesh
|
||||
Since you are on this page, you should already have access to Espressif BLE Mesh SDK. If you do not have access, please get in touch with your point of contact.
|
||||
|
||||
## Documentation
|
||||
|
||||
The ESP BLE Mesh code in the SDK is organized as below. Each folder contains source files related to it as well as a subfolder with header files for the exposed functionality.
|
||||
|
||||
```
|
||||
$tree components/bt/ble_mesh/
|
||||
|
||||
├── api /* BLE Mesh functionality exposed through esp_ble_mesh_* APIs for the applications */
|
||||
│ ├── core /* BLE Mesh Core APIs */
|
||||
│ │ └── include
|
||||
│ └── models /* Foundation Models and other Client Models APIs */
|
||||
│ └── include
|
||||
├── btc
|
||||
│ └── include
|
||||
├── mesh_core /* BLE mesh core based on Zephyr BLE stack with miscellaneous modifications and
|
||||
│ │ an adaptation layer to make it work with ESP32 */
|
||||
│ └── include
|
||||
├── mesh_docs /* BLE Mesh docs */
|
||||
└── mesh_models /* Foundation Models and other Client Models implementations */
|
||||
└── include
|
||||
```
|
||||
|
||||
To demonstrate the features supported by BLE Mesh SDK, a few sample examples have been added. Each example has a README.md file for quick start as well as a walkthrough file that explains the functionality in detail.
|
||||
|
||||
Below is a snapshot of the BLE Mesh examples directory
|
||||
|
||||
```
|
||||
$ tree examples/bluetooth/ble_mesh/
|
||||
├── ble_mesh_client_model
|
||||
│ ├── main
|
||||
│ │ ├── ble_mesh_client_model_main.c
|
||||
│ │ ├── board.c
|
||||
│ │ ├── board.h
|
||||
│ │ ├── component.mk
|
||||
│ │ └── Kconfig.projbuild
|
||||
│ ├── Makefile
|
||||
│ ├── README.md
|
||||
│ └── sdkconfig.defaults
|
||||
├── ble_mesh_node
|
||||
│ ├── main
|
||||
│ │ ├── ble_mesh_demo_main.c
|
||||
│ │ ├── board.c
|
||||
│ │ ├── board.h
|
||||
│ │ ├── component.mk
|
||||
│ │ └── Kconfig.projbuild
|
||||
│ ├── Makefile
|
||||
│ ├── README.md
|
||||
│ ├── sdkconfig.defaults
|
||||
│ └── tutorial
|
||||
│ └── Ble_Mesh_Node_Example_Walkthrough.md
|
||||
├── ble_mesh_provisioner
|
||||
│ ├── main
|
||||
│ │ ├── ble_mesh_demo_main.c
|
||||
│ │ ├── board.c
|
||||
│ │ ├── board.h
|
||||
│ │ ├── component.mk
|
||||
│ │ └── Kconfig.projbuild
|
||||
│ ├── Makefile
|
||||
│ ├── README.md
|
||||
│ ├── sdkconfig.defaults
|
||||
│ └── tutorial
|
||||
│ └── Ble_Mesh_Provisioner_Example_Walkthrough.md
|
||||
├──ble_mesh_console
|
||||
│ ├── ble_mesh_node
|
||||
│ └── ble_mesh_provisioner
|
||||
├──ble_mesh_fast_provision
|
||||
│ ├── ble_mesh_fast_prov_client
|
||||
│ └── ble_mesh_fast_prov_server
|
||||
├──ble_mesh_vendor_models
|
||||
│ ├── fast_prov_vendor_model
|
||||
└──ble_mesh_wifi_coexist
|
||||
├── main
|
||||
├── components
|
||||
└── tutorial
|
||||
└── ble_mesh_wifi_coexist.md
|
||||
8 directories, 26 files
|
||||
```
|
||||
|
||||
|
||||
## Hardware and Setup
|
||||
|
||||
At present ESP32-DevKitC and ESP-WROVER-KIT are supported for BLE Mesh implementation. You can find the details about the modules [here](https://docs.espressif.com/projects/esp-idf/en/latest/hw-reference/modules-and-boards.html)
|
||||
|
||||
You can choose the board through menuconfig: `make menuconfig -> Example Configuration -> Board selection for BLE Mesh`
|
||||
|
||||
Note that if you plan to use ESP32-DevKitC, you need to connect an RGB LED to GPIO pins 25, 26 and 27.
|
||||
|
||||
|
||||
## Sample Examples
|
||||
|
||||
* BLE Mesh Node
|
||||
|
||||
This example shows the use of BLE Mesh as a node device having a Configuration Server model and a Generic OnOff Server model. A BLE Mesh provisioner can then provision the node and control a RGB LED representing on/off state.
|
||||
|
||||
* BLE Mesh Client Model
|
||||
|
||||
This example shows how a Generic OnOff Client model within a node works. The node has a Configuration Server model, a Generic OnOff Server model and a Generic OnOff Client model.
|
||||
|
||||
* BLE Mesh Provisioner
|
||||
|
||||
This example shows how a device can act as a BLE Mesh provisioner to provision devices. The provisioner has a Configuration Server model, a Configuration Client model and a Generic OnOff Client model.
|
||||
|
||||
|
||||
## Mobile Apps
|
||||
|
||||
ESP BLE Mesh implementation is compatible with a few phone apps, including Silicon Labs BLE Mesh and nRF Mesh. These apps are available on Google Play and App Store. In addition, Espressif offers its own Android app which is currently being actively developed. You can find the latest APK file [here](http://download.espressif.com/BLE_MESH/BLE_Mesh_Tools/BLE_Mesh_App/EspBleMesh-0.9.4.apk).
|
||||
|
||||
Note: The most recent tested version 1.1.0 of Silicon Labs App has a bug, which has been fixed by a workaround on the SDK side. The fix is implemented through a configuration option enabled by default. For other Android/iOS apps, this option needs to be disabled from menuconfig:
|
||||
`make menuconfig -> Example Configuration -> This option fixes the bug of Silicon Lab Android App 1.1.0 when reconnection will cause the sequence number to recount from 0`
|
||||
|
||||
## Building and Flashing
|
||||
|
||||
If you build the application for the first time, the menuconfig screen will pop up. You can choose the board from the Example Configuration option. Additionally, you can modify the serial settings in the Serial flasher config option in accordance with your port configuration.
|
||||
|
||||
BLE Mesh specific configuration options can also be modified through: `make menuconfig -> Component config -> Bluetooth Mesh support`
|
||||
|
||||
You can still change options at any other time using `make menuconfig`.
|
||||
|
||||
```
|
||||
$ export IDF_PATH=/path/to/esp-ble-mesh-sdk-v0.x
|
||||
|
||||
$ cd examples/bluetooth/ble_mesh/<example_name>
|
||||
|
||||
$ make -j8 flash monitor
|
||||
```
|
||||
|
||||
|
||||
# Reporting Issues
|
||||
|
||||
* If you find a bug or have a feature request, go to [the Issues section on GitHub](https://github.com/espressif/esp-idf/issues). Before reporting a new issue, please check the existing issues at the provided link and the FAQs document in the `mesh_docs` folder.
|
||||
* When you submit an issue or a feature request on GitHub, please add the tag "BLE Mesh" in the issue title for our faster reaction.
|
||||
@@ -1 +0,0 @@
|
||||
To be added.
|
||||
@@ -1,50 +0,0 @@
|
||||
# ESP BLE Mesh Framework
|
||||
|
||||
This folder contains all the documents of ESP BLE Mesh.
|
||||
* Note: breaking changes might be introduced into ESP BLE Mesh on [minor IDF versions](https://docs.espressif.com/projects/esp-idf/en/latest/versions.html)
|
||||
|
||||
|
||||
## Demos
|
||||
|
||||
* [Provisioning of BLE Mesh nodes using Smartphone App](http://download.espressif.com/BLE_MESH/Docs4Customers/esp-ble-mesh-demo.mp4)
|
||||
* [Espressif Fast Provisioning using ESP BLE Mesh App](http://download.espressif.com/BLE_MESH/BLE_Mesh_Demo/V0.4_Demo_Fast_Provision/ESP32_BLE_Mesh_Fast_Provision.mp4)
|
||||
* [Espressif BLE Mesh and Wi-Fi Coexistence](http://download.espressif.com/BLE_MESH/BLE_Mesh_Demo/V0.5_Demo_Coexistence/ESP_BLE_MESH_%26_WIFI_Coexistence.mp4)
|
||||
|
||||
## Examples
|
||||
|
||||
* [BLE Mesh Node Example Code](../../../../examples/bluetooth/ble_mesh/ble_mesh_node)
|
||||
* [BLE_Mesh_Node_Example_Walkthrough](../../../../examples/bluetooth/ble_mesh/ble_mesh_node/tutorial/Ble_Mesh_Node_Example_Walkthrough.md)
|
||||
* [BLE Mesh Provisioner Example Code](../../../../examples/bluetooth/ble_mesh/ble_mesh_provisioner)
|
||||
* [BLE_Mesh_Provisioner_Example_Walkthrough](../../../../examples/bluetooth/ble_mesh/ble_mesh_provisioner/tutorial/Ble_Mesh_Provisioner_Example_Walkthrough.md)
|
||||
* [BLE Mesh Client Model Example Code](../../../../examples/bluetooth/ble_mesh/ble_mesh_client_model)
|
||||
* [BLE_Mesh_Client_Model_Example_Walkthrough](../../../../examples/bluetooth/ble_mesh/ble_mesh_client_model/tutorial/ble_mesh_client_model.md)
|
||||
* [BLE Mesh Console Example Code](../../../../examples/bluetooth/ble_mesh/ble_mesh_console)
|
||||
* [BLE Mesh Fast Prov Client Example Code](../../../../examples/bluetooth/ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client)
|
||||
* [BLE_Mesh_Fast_Prov_Client_Example_Walkthrough](../../../../examples/bluetooth/ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/tutorial/ble_mesh_fast_provision_client.md)
|
||||
* [BLE Mesh Fast Prov Server Example Code](../../../../examples/bluetooth/ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server)
|
||||
* [BLE_Mesh_Fast_Prov_Server_Example_Walkthrough](../../../../examples/bluetooth/ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/ble_mesh_fast_provision_server.md)
|
||||
* [BLE Mesh Wifi Coexist Example Code](../../../../examples/bluetooth/ble_mesh/ble_mesh_wifi_coexist)
|
||||
* [BLE_Mesh_Wifi_Coexist_Example_Walkthrough](../../../../examples/bluetooth/ble_mesh/ble_mesh_wifi_coexist/tutorial%20%20%20%20%20%20/ble_mesh_wifi_coexist.md)
|
||||
## Documentation
|
||||
|
||||
### ESP BLE Mesh Development Documentation
|
||||
|
||||
* [Getting started with ESP BLE Mesh](BLE-Mesh_Getting_Started_EN.md)
|
||||
* [ESP BLE Mesh Feature List](BLE-Mesh_Feature_List_EN.md)
|
||||
* [FAQs](BLE-Mesh_FAQs_EN.md)
|
||||
* [Known Issues](BLE-Mesh_Known_Issues_EN.md)
|
||||
|
||||
### BLE Mesh Protocol Documentation
|
||||
|
||||
* [BLE Mesh Core Specification](https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429633)
|
||||
* [BLE Mesh Model Specification](https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429634)
|
||||
* [An Intro to Bluetooth Mesh Part 1](http://blog.bluetooth.com/an-intro-to-bluetooth-mesh-part1)
|
||||
* [An Intro to Bluetooth Mesh Part 2](http://blog.bluetooth.com/an-intro-to-bluetooth-mesh-part2)
|
||||
* [The Fundamental Concepts of Bluetooth Mesh Networking Part 1](http://blog.bluetooth.com/the-fundamental-concepts-of-bluetooth-mesh-networking-part-1)
|
||||
* [The Fundamental Concepts of Bluetooth Mesh Networking, Part 2](http://blog.bluetooth.com/the-fundamental-concepts-of-bluetooth-mesh-networking-part-2)
|
||||
* [Bluetooth Mesh Networking: Friendship](http://blog.bluetooth.com/bluetooth-mesh-networking-series-friendship)
|
||||
* [Management of Devices in a Bluetooth Mesh Network](http://blog.bluetooth.com/management-of-devices-bluetooth-mesh-network)
|
||||
* [Bluetooth Mesh Security Overview](http://blog.bluetooth.com/bluetooth-mesh-security-overview)
|
||||
* [Provisioning a Bluetooth Mesh Network Part 1](http://blog.bluetooth.com/provisioning-a-bluetooth-mesh-network-part-1)
|
||||
* [Provisioning a Bluetooth Mesh Network Part 2](http://blog.bluetooth.com/provisioning-a-bluetooth-mesh-network-part-2)
|
||||
|
||||
Reference in New Issue
Block a user