STSW-BNRG-Mesh is our first software pack enabling developers to create Bluetooth mesh solutions. It works in conjunction with the BlueNRG-Mesh apps for iOS and , which is highly symbolic since it’s the first time someone ports Bluetooth mesh libraries to these operating systems. The new standard, introduced in 2017, uses Bluetooth Low Energy (LE) to create a mesh network of up to 32,000 devices. It compares in some ways to 6LoWPAN as data travels the mesh to reach a gateway with a connection to the Internet. We ensured that the creation of a 6LoWPAN network would be straightforward, and we are now doing the same with Bluetooth mesh. Furthermore, our BlueNRG–1 and BlueNRG–2 Systems-on-Chip (SoC), the ready-to-use Bluetooth LE module, and BlueNRG-MS (with at least an STM32L152RE as host) just need a firmware update to take advantage of this new technology.
Hence, Bluetooth mesh becomes very attractive, especially to companies that already use our SoC and network processors, because creating a network doesn’t necessarily require additional controllers or expensive solutions. Bluetooth LE is ubiquitous and creating a mesh can be more cost-effective for companies already invested in this technology. As a result, the Bluetooth Special Interest Group (SIG) anticipates that the first applications relying on Bluetooth mesh will be industrial, since a majority of smart factories and professional environments already use the wireless network to connect sensors or lights, for instance. With this new topology, customers are much less constrained by range or the number of nodes in a network.
Bluetooth Mesh in Everything
Our STSW-BNRG-Mesh pack takes the form of an executable with a wizard to help you install the SDK (Software Development Kit) on your PC. It provides libraries, source code, and demo applications to assist developers. For instance, one pre-compiled binary ensures a smartphone can communicate to a node through unicast or broadcast addressing or even implement node-to-node communication. The demo uses the serial number of the controllers to generate a MAC address and create a network that could simulate a smart lighting system, among other things.
The software pack is also remarkable because it optimized the library to fit on ultra-low-power devices. Overcoming the memory and computational constraints meant we could offer a firmware update for the vast majority of products using our BlueNRG components. Our software stack also takes advantage of our hardware to accelerate certain cryptographic operations. Security is essential, and some will choose Bluetooth mesh because of their familiarity with its cryptographic scheme. Having an optimized stack means applications perform faster and systems consume less energy. However, despite customizing the code to our processors, another fundamental aspect of the STSW-BNRG-Mesh is its use of a fully standardized and interoperable implementation.
Fully Compliant and Future-proof
Indeed, our software implementation is fully compliant with the Bluetooth SIG specifications, which is just not the case with many other actors in the industry since they offer proprietary solutions. What this means is that only a fully compliant solution can work will all the Bluetooth LE compatible smartphones or smart devices on the market today and tomorrow. Custom implementations require a lot more maintenance and don’t offer the same level of interoperability, robustness or security. ST will officially be fully certified with an ID number from the Bluetooth SIG by the end of June, but anyone using STSW-BNRG-Mesh already has the assurance that it only takes flashing our firmware to be fully compliant with the Bluetooth mesh standard.
It also means that it’ll be easier to implement new features and the STSW-BNRG-Mesh is a way to future-proof devices. For instance, we will release at a later date a low-power mode, an optional feature in the Bluetooth mesh standard that shortens the time the radio receiver is active to reduce power consumption. Low-Power Nodes (LPN) will require the creation of friendships with a Friend node. A Friend is a device that stores messages for one or more LPN and only transmits them when the LPN request them, thus increasing efficiency. Nodes using sensors will most likely be LPN since they spend much more time sending data than receiving information, and transmissions are often infrequent, usually taking place when a specific event triggers a wake-up function. Keeping these nodes on continuously would thus be too wasteful.
The ST Advantage
Bluetooth mesh gives specific guidelines when it comes to provisioning, meaning adding a new node to the network. To protect against hackers, there are stringent security considerations to take into account before a device can communicate with those already on the network. However, the challenge is that all these safety measures can drag operations and vastly worsen the user’s experience who ends up waiting a really long time for the process to come to completion. We thus took it upon ourselves to improve provisioning times significantly on iOS and Android to guarantee a great user experience, and developers can quickly use the source code to implement it in their own applications.
Furthermore, to make prototyping even more practical, we offer the ability to transfer the database of a provisioned node to another device by simply using email. Hence, if developers want to use another smartphone as a provisioner (even one with a different operating system, as long as it’s either iOS or Android), we offer the ability to send an email attachment that will transfer the database of provisioned nodes to a new mobile terminal.
The best and most cost-effective way to start developing your Bluetooth mesh application is to use one of our evaluation board. The STEVAL-IDB008V2 integrates a BlueNRG–2 SoC, whereas the STEVAL-IDB007V2 uses a BlueNRG–1 and the NUCLEO-L152RE development board with the X-NUCLEO-IDB05A1 expansion board will help you experiment with a BlueNRG network processor. The STSW-BNRG-Mesh comes with pre-compiled binaries for these systems so starting a demo application is merely a matter of dragging and dropping a file in the board’s volume. This dramatically enhances the prototyping phase so teams can quickly start creating their solutions and move to their custom PCB.