Bluetooth Mesh SDK Version 10.0.0 - Release Notes (Jan 22, 2026)#

Bluetooth Mesh Version 10.0.0

Simplicity SDK Version 2025.12.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#

  • Added support for GCC LTO (Link-Time Optimization) to enable smaller firmware code size. Note that LTO is now the default choice for Bluetooth Mesh applications..

API Changes#

  • Relaxed LPN polling configuration parameters.

  • Added API call sl_btmesh_config_client_prepare_key_refresh(), replacing deprecated API call sl_btmesh_test_prov_prepare_key_refresh().

  • Added API call sl_btmesh_node_test_proxy_beacon().

  • Unnecessary configuration value SL_BTMESH_CONFIG_MAX_GATT_CONNECTIONS removed. The Bluetooth LE connection count configuration determines how many parallel Mesh GATT connections can be made use of.

Bug Fixes#

  • Removed unnecessary network key: application key bonding check when running a key refresh procedure at an embedded Provisioner.

  • Fixed SAR Segments Threshold state value use in transport layer.

Chip Enablement#

None.

Key Features#

New Features | Enhancements | Removed Features | Deprecated Features

New Features#

Added support for GCC LTO (Link-Time Optimization) to enable smaller firmware code size. Whereas regular compiler optimization can only work on code one compilation unit at a time, LTO covers the whole of the firmware image to be built. This enables optimizations across compilation units and typically results in significant reduction to the firmware size, meaning that the saved flash area can be used for other purposes.

Enhancements#

  • Relaxed the maximum values for limits after which an LPN considers a friendship stale. New limits allow for LPN to try 240 times to poll a friend at a maximum of 60 second intervals. This can be helpful to avoid re-establishing a friendship from scratch in case a Friend node is temporarily overloaded by other traffic.

  • Provided the key refresh customization API in the config client API class. This allows applications to avoid including the test API class while still allowing them to execute finely-tuned key refresh procedures.

  • Provided better functionality for checking GATT proxy service advertisements for known network and node identity validity, whether the advertisements are private or not.

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_node_test_proxy_beacon

N/A

sl_status_t sl_btmesh_config_client_prepare_key_refresh

sl_btmesh_test_prov_prepare_key_refresh

Modified APIs#

As a general note, API calls that do not take any parameters are now explicitly defined as such instead of having no parameter list, e.g., sl_status_t sl_btmesh_node_init(void) instead of sl_status_t sl_btmesh_node_init(). This should have no effect for correctly written applications.

Range of the LPN configuration setting sl_btmesh_lpn_request_retries has been increased from 0..10 to 0..239.

Range of the LPN configuration setting sl_btmesh_lpn_retry_interval has been increased from 0..100 ms to 0..60000 ms.

Removed APIs#

Removed API Name

Was Deprecated?

SL_BTMESH_CONFIG_MAX_GATT_CONNECTIONS

No

Deprecated APIs#

Deprecated API Name

Planned Removal Date

sl_btmesh_test_prov_prepare_key_refresh

Jun 2026

Bug Fixes#

ID Issue Description GitHub / Salesforce Reference (if any) Affected Software Variants, Hardware, Modes, Host Interfaces
1187276 Removed unnecessary network key - application key bonding check when running a key refresh procedure at an embedded Provisioner. Key bindings on a node may differ from key bindings on the Provisioner, so a check is not useful. None All; generic software issue
1485698 Fixed SAR Segments Threshold state value use in transport layer. The state values were configurable but not used properly with segmented message communications. None All; generic software issue

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 - SoC Empty with Common Manufacturing Token Support.

Demonstrates the bare minimum needed for a Bluetooth Mesh C application. The application sets its UUID and OOB provisioning capabilities depending on the manufacturing token used. The application also demonstrates how to use PSA crypto to validate the token signature. Standard SoC
    All
None

Bluetooth Mesh - SoC DFU Target.

Demonstrates the Firmware Update Target role defined in the Mesh Device Firmware Update Model specification. Target node receives firmware image from a Standalone Updater or Distributor node and applies the firmware image. Standard SoC
    All
None

Bootloader - SoC Bluetooth AppLoader OTA DFU Non-Secure part of Bootloader using TrustZone.

TrustZone is used to split into a Secure and Non-Secure bootloader. This is the non-secure part of the bootloader. The secure part of the bootloader, which contains the core functionalities needed to be built separately and used together with the non-secure part of the bootloader. Standard SoC
    All
None

Bootloader - SoC Bluetooth AppLoader OTA DFU Secure part of Bootloader using TrustZone.

TrustZone is used to split into a Secure and Non-Secure bootloader. This is the secure part of the bootloader. The non-secure part of the bootloader, which contains the communication interfaces needed to be built separately and used together with the secure part of the bootloader. Standard SoC
    All
None

Bootloader - SoC Internal Storage (Bluetooth Mesh)

This sample configuration of the Gecko bootloader configures the bootloader to use the internal main flash to store firmware update images. The storage configuration is set up to store a single firmware update image at a time, in a single storage slot. This can be configured on the "Storage" tab.. Standard SoC
    All
None

Bootloader - SoC SPI Flash Storage (single image for Bluetooth Mesh)

This sample configuration of the Gecko bootloader configures the bootloader to use an external SPI flash to store firmware update images. The storage configuration is set up to store a single firmware update image at a time, in a single storage slot. The storage slot is configured to start at address 0x0 of the SPI flash, and have a size of 1 MB. This can be configured on the "Storage" tab. Standard SoC
    All
None

Modified Examples#

Example Name Changes Supported Software Variants if applicable Supported Modes Supported OPNs / Boards / OPN Combinations Supported Host Interfaces

Bluetooth Mesh - SoC DFU Distributor

A workspace was provided to associate a bootloader with the project. N/A SoC
    All
N/A
All embedded examples except: Bluetooth Mesh - SoC DFU Target, Bluetooth Mesh - SoC DFU Distributor, Bluetooth Mesh - SoC Empty with Certificate-Based Provisioning support
  • Bootloader interface was removed from all examples. From now on, all examples run without the need to flash a bootloader.
  • DFU Target Role is not enabled by default. That role has to be manually enabled (in which case a bootloader will be also required).
Standard SoC
    All
N/A
All host examples
  • Before building SLC generation is needed. Please see readme for details.
  • Readme is now available.
Standard NCP Host
  • Boards: All
  • External Hosts: PC
UART

Removed Examples#

None.

Deprecated Examples#

Btmesh_soc_tz_secure_application, btmesh_soc_empty_cbp_tz, and btmesh_soc_csr_generator_tz will disappear as standalone examples as they are to be used from their respective slcw workspaces instead.

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
1565037 Firmware distribution may fail in a large network that has a high proportion of relay nodes. Excessive bandwidth consumption by relay retransmissions may cause too many packet collisions and lead to ineffective or failing firmware distribution. None Reconfigure the network to have a more reasonable number of relay nodes; reconfigure the relay nodes to have a more reasonable retransmission count. All; generic software issue