cancel
Showing results for 
Search instead for 
Did you mean: 

Could you please advice me with mesh network ?

Gz
Senior

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.

14 REPLIES 14
EMECH
ST Employee

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.

Hi @EMECH​ ;

Can you give more informations about the trouble concerning the provisioner node ?

  • Yes, I can. I would like to ENABLE_PROVISIONER_FEATURE to chooce FN Mode, LPN Mode, RN Mode and PRN Mode automatic for easy install. Could you please advice me this painpoint? .

What is your project ?

  • I have a project measure temperature and humidity for my building. There are 40 floors. I thaink my mesh network has device more than 500 devices.

How many STM32wb boards are in your mesh network ?

  • I have 4 board for NUCLEO-WB55. ( EVK board for develop before design )

What are the MESH configuration of each Node to provision ?

  • I don't change config from example code.

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.

EMECH
ST Employee

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:

  • Build and flash the project into your provisioner board
  • The following welcome message is displayed on the board serial terminal :

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]

  • Write the following instruction in the serial terminal to define one node as the ROOT node for networkcreation:

ATEP ROOT (case insensitive).

This performs the model binding and configuration.

  • Write the following instruction in serial terminal to scan unprovisioned devices in range:

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

  • Write the following instruction to start provisioning of device-0:

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.

  • Finally the PB-ADV connection link is closed and device-0 is configured and models bound.

Best regards.

Gz
Senior

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.

EMECH
ST Employee

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 :

  • #define ENABLE_GENERIC_MODEL_SERVER_ONOFF                  (1)

Means that the first element of the Node is set with Generic OnOff Server model.

  • #define ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS                 (1)

Means that the first element of the Node is set with Light Lightness Server model.

  • #define APPLICATION_NUMBER_OF_ELEMENTS                     1

Means that the Node have only one element

  • #define USER_SIG_MODELS_MAX_COUNT                       4

Means that the Node can have up to 4 Bluetooth SIG models per element

  • #define USER_VENDOR_MODELS_MAX_COUNT                      1

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:

  • //#define ENABLE_SENSOR_MODEL_SERVER                      (1)
  • //#define NUMBER_OF_SENSOR                            1

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.

Gz
Senior

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.

DEdwi.1
Associate II

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.

Gz
Senior

Hi @DEdwi.1​ ;

Thank you for your advice. I get it now.

Best regards.

EMECH
ST Employee

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.