2020-11-25 01:52 AM
Hello All;
I would like to know about mesh network with STM32wb. Now I know about relay node, friend node, low power node, proxy node but I don't know about provisioner node. I can't make my project with example in firmware 1.10.0. It's unsuccessful. Could you please advice me?
regard.
2020-11-25 05:31 AM
Hi,
Can you give more informations about the trouble concerning the provisioner node ?
What is your project ?
How many STM32wb boards are in your mesh network ?
What are the MESH configuration of each Node to provision ?
Best regards.
2020-11-25 06:42 PM
Hi @EMECH ;
Can you give more informations about the trouble concerning the provisioner node ?
What is your project ?
How many STM32wb boards are in your mesh network ?
What are the MESH configuration of each Node to provision ?
Could you please advice me about MESH Example code with CubeMX and STM32CubeIDE for my project measure temperature and humidity for my building?
Best regards.
2020-11-25 11:36 PM
Hi,
Embedded provisioning idea is to use a nucleo board as provisioner instead of a smartphone or other mobile computing device.
The board used as provisioner does not need to be provisioned as it creates itself the network parameters.
The board will then be able to scan all unprovisioned devices around and provision them.
First you have to open the project in an appropriate IDE and check the features enabled in mesh_cfg_usr.h:
Manually configured provisioner
Refer to the sample code below:
#define EANBLE_RELAY_FEATURE
#define EANBLE_PROXY_FEATURE
#define EANBLE_FRIEND_FEATURE
//#define EANBLE_PROVISIONER_FEATURE
#define DYNAMIC_PROVISIONER
If the DYNAMIC_PROVISIONER is selected, the provisioner configuration will have to be done manually following
the steps below:
Next NVM Address 080c7000
Unprovisioned device
[…]
BLE-Mesh Lighting Demo v1.12.008
BLE-Mesh Library v01.12.008
BLE Stack v1.6.0 Branch=0 Type=3
FUS v1.0.2
BD_MAC Address = [c0]:[e1]:[26]:[07]:[f3]:[90]
UUID Address = [f8] [1d] [4f] [ae] [7d] [ec] [4b] [53] [a1] [54] [90] [f3] [07] [26] [e1] [c0]
ATEP ROOT (case insensitive).
This performs the model binding and configuration.
ATEP SCAN (case insensitive).
The log on terminal will indicate unprovisioned devices with their corresponding UUIDs:
Device-0 -> F81D4FAE7DEC4B53A15490F30726E1C0
Device-1 -> F81D4FAE7DEC4B53A1542B350826E1C0
Test command executed successfully
Here two devices (device-0 and device-1) are unprovisioned in the network
ATEP PRVN-0 (case insensitive)
The log will appear on terminal indicating the device-0 has been provisioned by the provisioner by making
the PB-ADV connection link:
Test command executed successfully
PB-ADV Link opened successfully
Device Key: 46 82 e9 3e 20 […]
App Key: e6 bd d2 95 2d 81 85 7c a4 2e […]
Device is provisioned by provisioner
The log in the provisioned node terminal indicates that the node is provisioned by the provisioner.
Best regards.
2020-11-26 12:20 AM
Hi @EMECH ;
Thank you for your advice. I have done on provisioner. I would like to know more if I set below.
#define EANBLE_RELAY_FEATURE
#define EANBLE_PROXY_FEATURE
#define EANBLE_FRIEND_FEATURE
#define EANBLE_PROVISIONER_FEATURE
//#define DYNAMIC_PROVISIONER
My devices will sync mesh network(FN, RN, PRN), right? . How do I send parameter temperature and humdity to FN-->RN-->PRN? Could you please advice me?
Best regards.
2020-11-26 08:00 AM
Hi,
The Provisioner is autmotically self provisioned and configured at the initialisation (no ATEP ROOT command).
Dynamic Provisioner after initialisation is seen as unprovisioned device that can be provision by a smartphone, a provisioner or byself.
As you can seen in the mesh_cfg_usr.h file of each project (Low Power Node, Proxy Relay Friend Node or Provisioner Node) the Node contains the following Models and elements enabled :
Means that the first element of the Node is set with Generic OnOff Server model.
Means that the first element of the Node is set with Light Lightness Server model.
Means that the Node have only one element
Means that the Node can have up to 4 Bluetooth SIG models per element
Means that the Node can have up to 1 Vendor model per element
In the case of your application you only need Sensor models.
Depending of the use case, it could be a Sensor Model with 2 sensors or 2 Sensor Models with one sensor embedded in 1 or 2 Nodes.
For a Node with a Sensor Model you have to uncomment the mesh_cf_usr.h following lines:
And modify if necessary the number of sensor.
Configuration of your sensor is defined in the file sensor_cfg_usr.h.
Please have a look to the Bluetooth SIG Mesh Model specification version 1.0.1 for more details on the sensor model.
Actually we are under implementation of a project demo involving sensor model and other models.
We will go back to you when this demo will be finalized.
Best regards.
2020-11-26 09:45 PM
Hi @EMECH ;
Thank you for your advice. How do I config provisioner on the same network ? ( I don't would like to use mobile to adjust provisioner. In use case with endnode more than 500 devices )
Best regards.
2020-11-26 11:26 PM
Since the ST provisioner is using PB-ADV the provisioner needs to be in radio range of the all the 500 nodes that are being provisioned, or you need to walk around provisioning the end nodes with the provisioner board. The provisioner is like a god node, the god node has all the encryption keys (per device key, application key and network key), the addresses that were assigned to the end node etc.
After you provision the network you will need to set up the publishers and subscribers for the 500 end nodes, this is called the configuration stage.
The mobile app will usually help you do both the provisioning and configuring. Typically you either go for the provisioner running on an embedded board or a mobile app.
It is possible for the provisioner board to also do configuration but that is likely to be sub optimal for an actual production situation. You can can do the configuration if publisher role and subscriber roles are well defined , but it is a bit of work.
Additionally if you want to reconfigure the mesh network and the provisioner board was accidentally destroyed or lost, you lose the keys to the entire network, this means you will need to backup the provisioning info and the configuration info to be able to re-create the provisioner node again.
It is indeed possible to do the able, but just be prepared for a lot of additional code for the embedded provisioner.
2020-11-27 01:43 AM
Hi @DEdwi.1 ;
Thank you for your advice. I get it now.
Best regards.
2020-11-27 02:02 AM
Hi,
Provisioning and Configuration of the provisioner is done by the ATEP ROOT command.
For the use case of 500 endnodes, do not forget that endnodes by definition are not able to Relay Advertising messages.
In this use case you need to have a mix of Relay Nodes and Simple Nodes or endnodes.
Here are different types of nodes:
• Proxy nodes which expose the interface for a smartphone or a tablet to interact with a mesh network.
• Simple nodes are leaf nodes which cannot and do not relay messages. These are usually legacy nodes or
resource constrained devices.
• Relay nodes retransmit received messages, and they enable multiple “hops�? in the network.
• Low-power nodes are battery operated devices that primarily send but rarely receive messages, and so do
not need a 100% duty cycle.
• Friend nodes are devices that store messages for low-power nodes (LPN) and deliver them whenever the
LPNs wake up.
Low-power and Friend nodes are very important for enabling low power consumption of the mesh network. A
typical BLE mesh topology is illustrated in the figure below.
The BT SIG MESH Profile1.1.0 Remote Provisioning feature (not yet released by the BT SIG) will allow adding unprovisioned devices to a Bluetooth mesh network when the Provisioner is beyond immediate radio range of the unprovisioned device.
Best regards.