Bluetooth Mesh SDK Version 9.0.0 (June 16, 2025) - Release Notes#
Simplicity SDK Version 2025.6.0
Bluetooth Mesh is a standards-based, many-to-many communication topology available for Bluetooth Low Energy (LE) devices, optimized for large-scale networks and ideally suited for building automation, sensor networks, and asset tracking.
Click here for earlier releases.
Release Summary#
Key Features | API Changes | Bug Fixes | Chip Enablement
Key Features#
Improved formatting of model configuration data that is stored on the device.
API Changes#
Added API for migrating existing model configuration data to new format that provides more flexibility for DFU.
Fixed API issues for configuration client, proxy solicitation, and scene model deinitialization.
Removed deprecated test APIs.
Bug Fixes#
Corrected a number of remote provisioning issues.
Corrected a number of generic, lighting, and LC model issues.
Fixed API issues for configuration client, proxy solicitation, and scene model deinitialization.
Chip Enablement#
None.
Key Features#
New Features | Enhancements | Removed Features | Deprecated Features
New Features#
None.
Enhancements#
Improved formatting of model configuration data that is stored on the device, using model storage component version 2, is now the default; the new format provides more flexibility for project structure changes. Projects using the legacy model storage must first be converted to use the new storage. A migration component is provided to help in the conversion.
Removed Features#
None.
Deprecated Features#
None.
API Changes#
New APIs | Modified APIs | Removed APIs | Deprecated APIs
New APIs#
New API Signature | Deprecated API replaced by this (if any) |
---|---|
sl_status_t sl_btmesh_model_migration_migrate_models | N/A |
sl_status_t sl_btmesh_node_compare_dcd | N/A |
sl_status_t sl_btmesh_scene_client_deinit | N/A |
sl_status_t sl_btmesh_scene_setup_server_deinit | N/A |
Modified APIs#
Old API | Modified |
---|---|
sl_status_t sl_btmesh_proxy_send_solicitation(uint8_t netkey_index, uint16_t element_index, uint16_t dst) | sl_status_t sl_btmesh_proxy_send_solicitation(uint16_t netkey_index, uint16_t element_index, uint16_t dst) |
sl_status_t sl_btmesh_remote_provisioning_client_open_link(uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index, uint16_t timeout_sec, uint8_t dkri, uuid_128 uuid) | sl_status_t sl_btmesh_remote_provisioning_client_open_link(uint16_t enc_netkey_index, uint16_t server, uint16_t elem_index, uint16_t timeout_sec, enum sl_btmesh_remote_provisioning_client_nppi_operation_t dkri, uuid_128 uuid) |
Removed APIs#
Removed API Name | Was Deprecated? |
---|---|
Yes | |
Yes | |
Yes | |
Yes |
Deprecated APIs#
Deprecated API Name | Planned Removal Date |
---|---|
Dec 2025 |
Bug Fixes#
ID | Issue Description | GitHub / Salesforce Reference (if any) | Affected Software Variants, Hardware, Modes, Host Interfaces |
---|---|---|---|
1384577 | Allow Device Composition Data state change during Node Address Refresh Procedure. | None | All; generic software issue |
1406862 | Fixed an unintended deactivation of LC mode when entering standby mode. | None | All; generic software issue |
1412725 | Corrected parameter value range for sl_btmesh_proxy_send_solicitation API call. | None | All; generic software issue |
1439194, 1453067, 1453189 | Fixed a number of issues in lighting and generic model state updates stemming from using generic level move operation. | 327432 | All; generic software issue |
1442415 | Close remote provisioning link only after Link Close message has been transmitted. | None | All; generic software issue |
1449114 |
Corrected minor issues in Configuration Client BGAPI:
|
None | All; generic software issue |
1450910 | Properly handle provisioning bearer timeout during remote provisioning. | None | All; generic software issue |
1451240 | Send the correct device address during Node Composition Refresh procedure. | None | All; generic software issue |
1451726 | Fixed a problem in restoring generic model state on power up. | None | All; generic software issue |
1426807 | Fixed a problem in Bluetooth Mesh Sensor Client application which can be stuck in UART write loop. | None | All; generic software issue |
1451726 | Missing bootloader for btmesh_soc_nlc_basic_lightness_controller demo. | None | BRD2602A |
Chip Enablement#
None.
Application Example Changes#
New Examples | Modified Examples | Removed Examples | Deprecated Examples
New Examples#
Example Name | Description | Supported Software Variants (if applicable) | Supported Modes | Supported OPNs / Boards / OPN Combinations | Supported Host Interfaces |
---|---|---|---|---|---|
Bluetooth Mesh - NLC Energy Monitor. |
An out-of-the-box Software Demo where the device acts as a mock Energy Monitor in a Networked Lighting Control (NLC) system. | Standard | SoC |
|
None |
Modified Examples#
Example Name | Changes | Supported Software Variants if applicable | Supported Modes | Supported OPNs / Boards / OPN Combinations | Supported Host Interfaces |
---|---|---|---|---|---|
btmesh_host_dfu |
|
N/A | NCP |
|
UART |
All embedded examples |
|
Standard | SoC |
|
N/A |
Removed Examples#
None.
Deprecated Examples#
None.
Known Issues and Limitations#
ID | Issue or Limitation Description | GitHub / Salesforce Reference (if any) | Workaround (if any) | Affected Software Variants, Hardware, Modes, Host Interfaces |
---|---|---|---|---|
401550 | No BGAPI event for segmented message handling failure. | 212392, 214429, 216665 | Application needs to deduce failure from timeout / lack of application layer response; for vendor models, an API has been provided. | All; generic software issue |
454059 | A large number of key refresh state change events are generated at the end of KR process, and that may flood NCP queue. | None | Increase NCP queue length in the project. | NCP interface; generic software issue |
454061 | Slight performance degradation compared to 1.5 in round-trip latency tests was observed. | None | None | All; generic software issue |
624514 | Issue with re-establishing connectable advertising if all connections have been active and GATT proxy is in use. | 235615 | Allocate one more connection than is needed. | All; generic software issue |
841360 | Poor performance of segmented message transmission over GATT bearer. | 283876 | Ensure that the underlying BLE connection’s Connection interval is short; ensure that ATT MTU is large enough to fit a full Mesh PDU; tune the minimum connection event length to allow multiple LL packets to be transmitted per connection event. | All; generic software issue |
1204017 | Distributor is not able to handle parallel self FW Update and FW Upload. | None | Don’t run self FW update and FW upload in parallel. | All; generic software issue |
1226127 | Host provisioner example can be stuck when it starts to provision a second node. | None | Restart the host provisioner app before provisioning the second node. | All; generic software issue |
1412121 | Currently, only one Scheduler Server model is permitted, and it has to be located on the primary element. | None | None | All; generic software issue |
1413864, 1425025, 1452212, 1452213 | DFU distributor server has issues in tracking node state correctly when packet loss or communication timeouts occur, especially in environments with unusually high packet rate. | 325400 | Ensure that the network is not overloaded with traffic; or, update smaller sets of nodes at a time. | All; generic software issue |
1427300 | Mesh BLOB Transfer server model does not complete pull mode transfers correctly | None | None | All; generic software issue |
1434214 | DFU distributor server does not handle all values of SL_BTMESH_CONFIG_APP_TXQ_SIZE correctly | None | Configure SL_BTMESH_CONFIG_APP_TXQ_SIZE to match the expected number of parallel requests | All; generic software issue |
1453059 | If an application uses the btmesh_lighting_server component then Generic level move set with transition this can lead into an infinite update-loop at the end values (0% or 100%) | None | None | All; generic software issue |
1456316 | Device configuration data page 129 is being used instead of page 1 after device firmware update before the new device term starts. Generic and lighting model initialization may then fail due to mismatch in composition and model correspondence data. | None | Avoid initializing models that rely on page 1 data to determine the corresponding model relations before the new device term starts. | All; generic software issue |
1456429 | Migrating an embedded provisioner from SDK version 1.x runs into issues when migrating the provisioning database if there are unused entries in the database. | 329602 |
Fill up the provisioning database with junk entries before
migration; remove the junk entries after migration
completes. Additionally, the number of provisioning bearers must be set to 3 even if remote provisioning is not being used. |
All; generic software issue |
1457535 | Cryptographic operations may fail on MicriumOS due to heap exhaustion on some devices. | None | Either configure SL_MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS to 1 to restrict cryptographic operations' heap usage, or enlarge heap size. | MicriumOS; xG27 devices |