SILICON LABS 4.2.3.0 GA Bluetooth Mesh SDK User Guide

June 17, 2024
SILICON LABS

SILICON LABS 4.2.3.0 GA Bluetooth Mesh SDK User Guide

SILICON LABS 4.2.3.0 GA Bluetooth Mesh SDK User Guide

Bluetooth mesh is a new topology available for Bluetooth Low Energy (LE) devices that enables many-to-many (m:m) communication. It’s optimized for creating large-scale device networks, and is ideally suited for building automation, sensor networks, and asset tracking. Our software and SDK for Bluetooth development supports Bluetooth Mesh and Bluetooth 5.3 functionality. Developers can add mesh networking communication to LE devices such as connected lights, home automation, and asset tracking systems. The software also supports Bluetooth beaconing, beacon scanning, and GATT connections so Bluetooth mesh can connect to smart phones, tablets, and other Bluetooth LE devices.
This release includes features supported by the Bluetooth mesh specification version 1.1.
These release notes cover SDK versions:

4.2.3.0 released January 24, 2024 (support for EFR32xG21, Revision C and later)
4.2.2.0 released August 16, 2023 (support for EFR32xG21, Revision C and later)
4.2.1.0 released May 3, 2023
4.2.0.0 released March 8, 2023
4.1.0.0-prev released February 1, 2023 (limited access)
4.0.0.0-prev released December 14, 2022 (limited access)
3.0.0.0-prev released June 20, 2022 (limited access)

KEY FEATURES

  • Support for mesh draft specification 1.1:
    • Mesh Protocol
    • Mesh Binary Large Object Transfer Model (MBT)
    • Mesh Device Firmware Update Model (DFU)
  • Reduced project flash consumption by optimizing Mesh stack code size
  • Support added for xGM240P PCB Modules and BG22/BGM220 Explorer Kits
  • Support added for GCC version 10.32021.10 and IAR version 9.20.4

Compatibility and Use Notices
For more information about security updates and notices, see the Security chapter of the Gecko Platform Release notes installed with this SDK or on the Silicon Labs Release Notes page. Silicon Labs also strongly recommends that you subscribe to Security Advisories for up-to-date information. For instructions, or if you are new to the Silicon Labs Bluetooth mesh SDK, see Using This Release.

Specification Compatibility:
This release contains an implementation of the Mesh Protocol 1.1, Mesh Model 1.1, Mesh Binary Large Object Transfer, and Mesh Device Firmware Update specifications. These specifications are not yet adopted Bluetooth SIG specifications, and no Bluetooth qualification program currently exists for these specifications. Therefore, these specifications are not approved for use in commercial production. Any experimental use of the features in these specifications are “AS IS”, and no Bluetooth license rights are granted.

Compatible Compilers:
IAR Embedded Workbench for ARM (IAR-EWARM) version 9.20.4

  • Using wine to build with the IarBuild.exe command line utility or IAR Embedded Workbench GUI on macOS or Linux could result in incorrect files being used due to collisions in wine’s hashing algorithm for generating short file names.

  • Customers on macOS or Linux are advised not to build with IAR outside of Simplicity Studio. Customers who do should carefully verify that the correct files are being used.
    GCC (The GNU Compiler Collection) version 10.3-2021.10, provided with Simplicity Studio.

  • Link-time optimization feature of GCC has been disabled, resulting in a slight increase of image size.

1 New Items

1.1 New Features

Added in release 4.2.1.0 New Hardware: Support for EFR32xG21 Rev C and Rev D

Added in release 4.2.0.0
The default Bluetooth address used for advertising Mesh data and secure network beacons has been changed to be a private address that is periodically reassigned to a new random value. This is because using a public address would not work well with Mesh 1.1 privacy enhancing features, Private Network Beacons and Private GATT Proxy.

Added in release 4.0.0-prev
Support for Bluetooth mesh over advertising extensions (AE) has been added as a proprietary extension. This feature facilitates faster transmission of long messages, compared to the standard Bluetooth Mesh using regular advertisements. For instance, device firmware update using AE can result in greatly reduced transmission times compared to standard operation. Bluetooth Mesh over AE is, however, not compliant with the Bluetooth mesh specification. Products using Mesh over AE are not fully interoperable with products that are strictly compliant with the Bluetooth mesh specification.
Support for choosing the BLE advertising BGAPI the Bluetooth mesh stack uses internally has been added. Previously, the mesh stack used internally only the old BGAPI, which prevented the use of the newer BLE advertising BGAPIs in the application, since the old and the new APIs do not work interoperable. Now the BGAPI the stack uses can be specified by component selection in the project.

Example applications:
IV update is demonstrated through the embedded examples and Bluetooth Mesh ­ Host Provisioner.
Key refresh and key export to Network Analyzer is demonstrated with Bluetooth Mesh ­ Host Provisioner.

Tooling:
NCP Commander is now able to create a new mesh Network, provision and configure nodes into that network, and send mesh packets using the Generic On off Client and Generic Level Client models. This allows testing nodes with Generic Level and Onoff Server models and any other models bound to these.
New Hardware:
Support for xGM240 SIP Modules
Added in release 3.0.0-prev
The support for the following have been added based on specifications that are in Validation status and are not available for qualification. In order to obtain Bluetooth SIG qualification, customers will need to upgrade to a release which will be based on the adopted specification, which will be made available after the adoption.

  1. Mesh Protocol 1.1 with the following features
    · Remote Provisioning (RPR)
    · Certificate Based Provisioning (CBP) · Private Beacons(PRB)

  2. Mesh Binary Large Object Transfer Model (MBT)

  3. Mesh Device Firmware Update Model (DFU)

New Example Applications
Embedded applications:
Bluetooth Mesh ­ SoC DFU Distributor: Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Updating nodes and monitoring the progress of the firmware update.

Bluetooth Mesh – NCP Empty 1.1: NCP mode target application including remote provisioning support. To be used with the BT Mesh Host Provisioned example found in GSDK folder app/bluetooth/example_host/btmesh_host_provisioner
Bluetooth Mesh – SoC Empty with Certificate-Based Provisioning support: Demonstrates the bare minimum needed for a Bluetooth Mesh C application that allows Certificate-Based Provisioning (CBP). The application starts Unprovisioned Device Beaconing after boot waiting to be provisioned to a Mesh Network.
Bluetooth Mesh – SoC CSR Generator: Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority.
NCP Host applications:
Bluetooth Mesh ­ Host Provisioner was extended with Remote Provisioning and Certificate Based Provisioning support.

New Components

  • BLOB Storage: Provides an API for storing binary large objects (BLOB) via the bootloader.

  • BLOB Transfer Client: Provides BT Mesh BLOB (binary large object) Transfer Client functionality, defined in mesh specification.

  • BLOB Transfer Server: Provides BT Mesh BLOB (binary large object) Transfer Server functionality, defined in mesh specification.

  • DFU distributor: Wrapper software component for DFU distributor role in Bluetooth Mesh applications.

  • Firmware Update Client: Provides BT Mesh Firmware Update Client functionality, defined in mesh specification.

  • Firmware Update Server: Provides BT Mesh Firmware Update Server functionality, defined in mesh specification.

  • Firmware Distribution Server: Provides BT Mesh Firmware Distribution Server functionality, defined in mesh specification.

  • Remote Provisioning: Used to support remote provisioning client functionality of provisioning devices into a mesh network by
    interacting with a mesh node that supports the Remote Provisioning Server model.

  • Remote Provisioning Server: Used to support remote provisioning server functionality of provisioning a remote device over the mesh network and to perform the Node Provisioning Protocol Interface procedures.

  • DFU updating node: Wrapper software component for DFU updating node role in Bluetooth Mesh applications.

New Documents

  • QSG183: Bluetooth Mesh SDK Quick-Start Guide for SDK v4.x · AN1319: Bluetooth Mesh Device Firmware Update
  • AN1370: Bluetooth Mesh Device Firmware Update Example Walkthrough
  • AN1368: Bluetooth Mesh Remote Provisioning
  • AN1405: Bluetooth Mesh on Advertising Extensions

Added in release 3.0.0.0
New Development Tools
More user-friendly filtering for Software Examples in Simplicity Studio.
New Hardware Support
Support was added for xGM240P PCB Modules and BG22/BGM220 Explorer Kits.

1.2 New APIs

Added in release 4.2.0.0
Test API has been ameded with a new call, sl_btmesh_test_send_private_beacons, that can be used for sending private network beacons for testing purposes.
Test API has been amended with a new call, sl_btmesh_test_adv_use_random_address, that can be used for setting the type of Bluetooth address used for Mesh advertising.

Added in release 4.1.0-prev
Test API has been ameded with a new call, sl_btmesh_test_update_key_refresh_phase that can be used for testing various key refresh phases locally without a configuration client.

Added in release 4.0.0-prev
Bluetooth mesh over AE adds client and server vendor models using Silicon Labs vendor messages for over-the-air configuration of the feature, as well as the corresponding BGAPI classes sl_btmesh_silabs_config_client and sl_btmesh_silabs_config_server.
Node API has been amended with multiple additions:

  • APIs for saving the proxy solicitation RPL state, and for examining whether saving the RPL is needed, have been added
    (sl_btmesh_node_save_proxy_solicitation_rpl, and sl_btmesh_node_get_proxy_solicitation_rpl_status).

  • APIs for reading and writing unprovisioned device URI data to persistent storage have been added (sl_btmesh_node_set_oob_uri,and sl_btmesh_node_get_oob_uri).

  • An API for locally accessing the Models Metadata page, sl_btmesh_node_get_local_model_metadata_page, and the correspond-ing events, sl_btmesh_node_local_model_metadata_page and sl_btmesh_node_local_model_metadata_page_end.

Provisioner’s control over the key refresh procedure has been improved by additional APIs, sl_btmesh_prov_set_key_refresh_failure, sl_btmesh_prov_phase_timeout_get, and sl_btmesh_prov_phase_timeout_set. Also, the Provisioner can now specify the amount of parallel key refresh configuration requests by setting the configuration variable SL_BTMESH_CONFIG_LIMIT_PROV_CONCURRENT_KR. Note that the value should be less than or equal to the overall number of parallel configuration client requests.
Configuration client’s control over configuration requests has been improved by an additional API sl_btmesh_config_client_set_request_timeout_for_node, and an event sl_btmesh_config_client_obo_ack_received, which is generated when a friend node acknowledges a transport message that has an LPN as the destination.
Health client model API has been amended with explicit initialization and deinitialization, so that health client model code will be pulled into a project only when it is needed: sl_btmesh_health_client_init and sl_btmesh_health_client_deinit.
Test command for adjusting PB-ADV timing paramerers has been provided as sl_btmesh_test_set_adv_provisioning_bearer_timing. Note that the default timing values are those that the specification defines; timings should be adjusted only for debugging purposes.

Added in release 3.0.0-prev
Multiple new BGAPI classes have been added to support the Mesh 1.1 specification release new features. For the details of the added classes please see the API reference; the additions are summarized below.
Support for Mesh binary large object transfer adds BGAPI classes for MBT client model and MBT server model.
Support for Mesh device firmware update adds BGAPI classes for firmware update client model, firmware update server model, firmware distribution client model, firmware distribution server model, and firmware standalone updater model, as well as a supporting BGAPI class for device firmware image cache manipulation.
Support for Mesh 1.1 remote provisioning adds BGAPI classes for remote provisioning client model and remote provisioning server model.
Support for Mesh 1.1 private beacons adds BGAPI classes for private beacon client model and private beacon server model.
Support for Mesh 1.1 minor enhancements adds BGAPI classes for SAR configuration client model, SAR configuration server model, large composition data client model, large composition data server model, on-demand private proxy client model, on-demand private proxy server model, and solicitation PDU RPL configuration client model.
Furthermore, existing BGAPI classes have been amended as listed below.
Mesh 1.1 enhanced provisioning algorithm support adds one command to node BGAPI, sl_btmesh_node_set_provisioning_algorithm(), and defines flag enumeration values for both Mesh 1.0 and 1.1 provisioning algorithms.
Mesh 1.1 certificate-based provisioning support adds one command to node BGAPI, sl_btmesh_node_init_provisioning_records(), and three commands as well as two events to provisioner BGAPI: sl_btmesh_prov_init_provisioning_records(), sl_btmesh_prov_get_provisioning_records_list(), sl_btmesh_prov_get_provisioning_record_data(), sl_btmesh_provisioning_records_list(), and sl_btmesh_provisioning_record_data().
Support for the Node Provisioning Protocol Interface procedures adds two events to the node BGAPI, sl_btmesh_node_address_updated() and sl_btmesh_node_dcd_updated().
Proxy solicitation support adds one new BGAPI command to the proxy BGAPI: sl_btmesh_proxy_send_solicitation().
New BGAPI commands have been added to the test BGAPI to support private beacon testing: sl_btmesh_test_get_private_identity() and sl_btmesh_test_set_private_identity().

2 Improvements

The supported complier versions have been updated. GCC version 10.3-2021.10 and IAR version 9.20.4 are now supported. The flash footprint of the mesh stack implementation has been reduced by optimization of structures and removal of unnecessary dependencies between components. Exact reduction depends on the features used by the project.

3 Fixed Issues

SILICON LABS 4.2.3.0 GA Bluetooth Mesh SDK User Guide - Fixed
Issues SILICON LABS 4.2.3.0
GA Bluetooth Mesh SDK User Guide - Fixed Issues SILICON LABS 4.2.3.0 GA Bluetooth Mesh SDK User Guide -
Fixed Issues SILICON
LABS 4.2.3.0 GA Bluetooth Mesh SDK User Guide - Fixed
Issues

4 Known Issues in the Current Release

Issues in bold were added since the previous release.

SILICON LABS 4.2.3.0 GA Bluetooth Mesh SDK User Guide - Known Issues in the
Current Release

5 Deprecated Items

None

6 Removed Items

Removed in release 3.0.0.0
The deprecated BGAPI command sl_btmesh_node_erase_mesh_nvm() has been removed. Use sl_btmesh_node_reset() instead.

7 Using This Release

This release contains the following

  • Silicon Labs Bluetooth mesh stack library
  • Bluetooth mesh sample applications

If you are a first time user, see QSG176: Silicon Labs Bluetooth Mesh SDK v2.x Quick-Start Guide.

7.1 Installation and Use

The Bluetooth mesh SDK is provided as part of the Gecko SDK (GSDK), the suite of Silicon Labs SDKs. To quickly get started with the GSDK, install Simplicity Studio 5, which will set up your development environment and walk you through GSDK installation. Simplicity Studio 5 includes everything needed for IoT product development with Silicon Labs devices, including a resource and project launcher, software configuration tools, full IDE with GNU toolchain, and analysis tools. Installation instructions are provided in the online Simplicity Studio 5 User’s Guide.

Alternatively, Gecko SDK may be installed manually by downloading or cloning the latest from GitHub. See https://github.com/SiliconLabs/gecko_sdk for more information.
The GSDK default install location has changed with Simplicity Studio 5.3 and higher.

  • Windows: C:UsersSimplicityStudioSDKsgecko_sdk
  • MacOS: /Users//SimplicityStudio/SDKs/gecko_sdk

Documentation specific to the SDK version is installed with the SDK. Additional information can often be found in the knowledge base articles (KBAs). API references and other information about this and earlier releases is available on https://docs.silabs.com/.

7.2 Security Information

Secure Vault Integration
This version of the stack is integrated with Secure Vault Key Management. When deployed to Secure Vault High devices, mesh encryption keys are protected using the Secure Vault Key Management functionality. The table below shows the protected keys and their storage protection characteristics.

SILICON LABS 4.2.3.0 GA Bluetooth Mesh SDK User Guide - Security
Information

Keys that are marked as “Non-Exportable” can be used but cannot be viewed or shared at runtime. Keys that are marked as “Exportable” can be used or shared at runtime but remain encrypted while stored in flash.

For more information on Secure Vault Key Management functionality, see AN1271: Secure Key Storage

Security Advisories
To subscribe to Security Advisories, log in to the Silicon Labs customer portal, then select Account Home. Click HOME to go to the portal home page and then click the Manage Notifications tile. Make sure that `Software/Security Advisory Notices & Product Change Notices (PCNs)’ is checked, and that you are subscribed at minimum for your platform and protocol. Click Save to save any changes.

SILICON LABS 4.2.3.0 GA Bluetooth Mesh SDK User Guide - Security
Advisories

7.3 Support

Development Kit customers are eligible for training and technical support. Use the Silicon Labs Bluetooth mesh web page to obtain information about all Silicon Labs Bluetooth products and services, and to sign up for product support.
Contact Silicon Laboratories support at http://www.silabs.com/support.

SILICON LABS 4.2.3.0 GA Bluetooth Mesh SDK User Guide - Simplicity
Studio

www.silabs.com/IoT
www.silabs.com/simplicity
www.silabs.com/quality
www.silabs.com/community

Disclaimer
Silicon Labs intends to provide customers with the latest, accurate, and in- depth documentation of all peripherals and modules available for system and software implementers using or intending to use the Silicon Labs products. Characterization data, available modules and peripherals, memory sizes and memory addresses refer to each specific device, and “Typical” parameters provided can and do vary in different applications. Application examples described herein are for illustrative purposes only. Silicon Labs reserves the right to make changes without further notice to the product information, specifications, and descriptions herein, and does not give warranties as to the accuracy or completeness of the included information. Without prior notification, Silicon Labs may update product firmware during the manufacturing process for security or reliability reasons. Such changes will not alter the specifications or the performance of the product. Silicon Labs shall have no liability for the consequences of use of the information supplied in this document. This document does not imply or expressly grant any license to design or fabricate any integrated circuits. The products are not designed or authorized to be used within any FDA Class III devices, applications for which FDA premarket approval is required or Life Support Systems without the specific written consent of Silicon Labs. A “Life Support System” is any product or system intended to support or sustain life and/or health, which, if it fails, can be reasonably expected to result in significant personal injury or death. Silicon Labs products are not designed or authorized for military applications. Silicon Labs products shall under no circumstances be used in weapons of mass destruction including (but not limited to) nuclear, biological or chemical weapons, or missiles capable of delivering such weapons. Silicon Labs disclaims all express and implied warranties and shall not be responsible or liable for any injuries or damages related to use of a Silicon Labs product in such unauthorized applications. Note: This content may contain offensive terminology that is now obsolete. Silicon Labs is replacing these terms with inclusive language wherever possible. For more information, visit www.silabs.com/about-us/inclusive- lexicon-project

Trademark Information
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® and the Silicon Labs logo®, Bluegiga®, Bluegiga Logo®, EFM®, EFM32®, EFR, Ember®, Energy Micro, Energy Micro logo and combinations thereof, “the world’s most energy friendly microcontrollers”, Redpine Signals®, WiSeConnect , n-Link, ThreadArch®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, Gecko OS, Gecko OS Studio, Precision32®, Simplicity Studio®, Telegesis, the Telegesis Logo®, USBXpress® , Zentri, the Zentri logo and Zentri DMS, Z-Wave®, and others are trademarks or registered trademarks of Silicon Labs. ARM, CORTEX, Cortex-M3 and THUMB are trademarks or registered trademarks of ARM Holdings. Keil is a registered trademark of ARM Limited. Wi-Fi is a registered trademark of the Wi-Fi Alliance. All other products or brand names mentioned herein are trademarks of their respective holders.

Silicon Laboratories Inc. 400 West Cesar Chavez Austin, TX 78701 USA
www.silabs.com

References

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

SILICON LABS User Manuals

Related Manuals