Silicon Labs Bluetooth® LE SDK 9.1.1.0 GA

Simplicity SDK Suite 2024.12.3

August 6, 2025

Silicon Labs is a leading vendor in Bluetooth hardware and software technologies, used in products such as sports and fitness, consumer electronics, beacons, and smart home applications. The core SDK is an advanced Bluetooth 5.4-compliant stack that provides all of the core functionality along with multiple API to simplify development. The core functionality offers both standalone mode, allowing a developer to create and run their application directly on the SoC, or in NCP mode allowing for the use of an external host MCU.

These release notes cover SDK version(s):

KEY FEATURES

Bluetooth

  • GA release of Periodic Advertisement BGAPI event
  • BT LE Connection Subrating
  • Accept List Based Auto-connect
  • BT Atlanta (v6.0) LL and Host Qualification
  • Channel Sounding sparse channel map support
  • Channel Sounding antenna switching support
  • CBAP - CPMS integration

Multiprotocol

  • ZigbeeD and OTBR support on OpenWRT - GA
  • DMP BLE + CMP ZB & Matter/OT with Concurrent Listening on MG26 for SoC - GA
  • 802.15.4 Unified radio scheduler priority component
  • Debian packaging support for MP host applications - Alpha

Compatibility and Use Notices

For information about security updates and notices, see the Security chapter of the Platform Release Notes installed with this SDK or on the TECH DOCS tab on https://www.silabs.com/developers/bluetooth-low-energy. Silicon Labs also strongly recommends that you subscribe to Security Advisories for up-to-date information. For instructions as well as notes on using Secure Vault features, or if you are new to the Silicon Labs Bluetooth SDK, see Using This Release.

Compatible Compilers:

1 New Items

1.1 New Features

Added in release 9.1.0.0

Added in release 9.0.0.0

1.2 New APIs

Added in release 9.0.0.0

2 Improvements

2.1 Changed Items

Changed in release 9.0.0.0

ID # Description
1233899 Selected Bluetooth host stack libraries are compiled with LTO options (-flto -ffat-lto-objects) for allowing better dead code elimination in applications.
1234000 Certificate fields have been updated for Certificate Based Authentication and Pairing. Database added for issued certificates.
1298645 Changed returned error codes to use the actual values from NVM3 when accessing it using BGAPI.
1318468 Certificate Based Authentication and Pairing is now supported on xG22 devices.
1321901 Object tracking mode 'stationary object tracking' can now be selected in bt_cs_host.
1329672 Released the CBAP library source. CBAP refactoring enabled. Connection handling improved.
1332939 A bonding confirmation event is sent even when the connection has already been encrypted and pairing request is received from the central device.
1334523 BLE host stack can now operate without the presence of NVM3. To drop NVM3 from a Bluetooth application, the application must not use bluetooth_feature_builtin_bonding_database, bluetooth_feature_nvm, or bluetooth_feature_sm components.
1324517 Added link layer configuration flag to report number of transmitted packets in direct test modes.

2.2 Changed APIs

Changed in release 9.0.0.0

None.

2.3 Intended Behavior

Changed in release 9.0.0.0

None.

3 Fixed Issues

Fixed in release 9.1.1.0

ID # Description
1311673 Fixed a rare issue in connection establishment on secondary channel where device might get stuck.
1429396 Fixed potential memory corruption issues that could occur in the ESL library during timeouts for various reasons.
1458635 The bonding on a new connection in the host stack would fail if the local device used privacy as the central role and scanning had been enabled before initiating the new connection. This has been fixed. If you are unable to update to the latest version, the workaround is to disable and enable the privacy again before initiating a new connection creation.

Fixed in release 9.1.0.0

ID # Description
1404920 Fixed an issue where a macro to reset the terminal colors was defined but not used. _app_log_reset_color was defined but not used in app_log.h This fix adds it to the end of macros that use _app_log_print_color.
1405476 Fixed an issue that prevented the NCP from initializing properly when BGAPI message encryption is enabled.
1417581 Fixed init time issue when one advertising handle is used by both legacy and extended advertisements. This caused a race condition which stopped the advertiser prematurely.

Fixed in release 9.0.1.0

ID # Description
1381647 In Channel Sounding (CS) multi-connection use case, where the reflector is running CS procedures with more than one initiator, the reflector sometimes selected parameters that would lead to procedures overlap. This has been fixed.
1355908 Periodic Advertisement did not work properly in dynamic multiprotocol with Open Thread. This has been fixed.
1383315 Unused bluetooth_feature_extended_scanner component was removed from ESL AP NCP.
1388519 Fixed a regression in the built-in battery level measurement of the ESL Tag that was preventing the correct value from being measured.
1393811 Fixed a regression in the QR code generator for the ESL demo that was introduced with Pillow v11.x Python module update.

Fixed in release 9.0.0.0

ID # Description
845506 The adaptivity of AFH can be disabled or enabled with command sl_bt_system_linklayer_configure() and key sl_bt_system_linklayer_config_key_set_channelmap_flags.
1082103, 1141041, 1212061 Using TX power higher than 10 dBm in low power mode is supported in NCP and SoC modes. The power limits in low power mode can be configured using sl_bt_system_linklayer_configure() key sl_bt_system_linklayer_config_key_low_power_mode_power_limit.
1284611 Clarified in the API documentation that starting a DTM transmitter or receiver test while other Bluetooth activities are active will either result in an error response or will cause functionality issues. The API documentation now suggests that the application should make sure other Bluetooth activities are stopped when performing a test.
1328923 Fixed an issue in dynamic GATT database feature that, after adding a new descriptor to a GATT characteristic that has been enabled to be visible to remote GATT clients, the remote GATT client cannot see the new descriptor.
1335919 Make bluetooth_feature_advertiser component configurable on Simplicity Studio component browser GUI.
1349058 Fixed an issue which allowed security properties to downgrade during re-pairing. Now the security properties must match or exceed ones used during previous pairing.
1356037 sl_bt_nvm_save(), sl_bt_nvm_load(), and sl_bt_nvm_erase() now properly validate that a specified NVM3 key is in the range assigned for user data. The key range for user data stored in the Bluetooth region of NVM3 is extended to 0x4000 - 0x5fff.
1371005 Fixed an issue in the Bluetooth LE linklayer, where an advertising device that is sending out connectable extended advertisements replies to an AUX_CONN_REQ with an invalid AUX_CONN_RSP. This issue happened when the user set a random address to the extended advertising set only.
1362681 Fixed PAwR subevent_start. It was not incrementing correctly.
1336266 Fixed an issue with sl_bt_advertiser_set_timing() not working properly with higher than 16000 (10sec). Interval_max.
1330263 Fixed an issue in the Bluetooth LE link-layer that caused the PAwR advertiser to stop accepting subevent data setting from the host.

4 Known Issues in the Current Release

Issues in bold were added since the previous release. If you have missed a release, recent release notes are available on https://www.silabs.com/developers/bluetooth-low-energy in the Tech Docs tab.

ID # Description Workaround
361592 The sync_data event does not report TX power. None
368403 If setting CTE interval to 1, a CTE request should be sent in every connection interval. But it is sent only in every second connection interval. None
641122 The Bluetooth stack component does not provide a configuration for RF antenna path. This is an issue specifically for BGM210P. One workaround is to manually update the configuration in sl_bluetooth_config.h in text edit mode.
682198 The Bluetooth stack has an interoperability issue on the 2M PHY with a Windows PC. No workaround exists. For application development and testing, the disconnection can be avoided by disabling 2M PHY with sl_bt_connection_set_preferred_phy() or sl_bt_connection_set_default_preferred_phy().
756253 The RSSI value on a Bluetooth connection returned by the Bluetooth API is incorrect on EFR32M21 devices. It is about 8~10 dBm higher than the actual value, according to a measurement. Install the "RAIL Utility, RSSI" component in the application project. This component provides a default RSSI offset for the chip that is applied at the RAIL level and can help to achieve more accurate RSSI measurements.
1031031 Changing the configuration in the bt_aoa_host_locator application results in the application crashing. None
1334418, 1335263 Channel sounding minor jitter issue when transmitting RTT sync packets on the initiators side. This might be visible when doing channel sounding to some other vendor devices. None
1373310 RTOS Priorities are not set correctly in SoC/NCP case if not using dynamic multiprotocol. This might cause radio priorities to be blocked by less important priorities. Radio priorities need to set radio priorities in the application software.
1383864 Scan event may contain additional garbage bytes in a noisy environment, where lots of BLE devices advertise at the same time. None
1397074 In the Channel Sounding use case, if the unsupported Free-Running mode is selected in the configuration header file, some connections will be closed by the application and re-established. Set the maximum procedure count to 0.
1399177 In case of Channel Sounding multi-connection scenario, where the reflector is connected to more than one initiator, some connections may close due to operation timeout. None
1491950 Occasionally, a byte is dropped on UART in case of Series 2 devices running Channel Sounding examples. Set the Peripheral Clock Divider in the project to 2. Do this by setting the value of 'SL_CLOCK_MANAGER_PCLK_DIVIDER' to 'CMU_SYSCLKCTRL_PCLKPRESC_DIV2'.

5 Deprecated Items

Deprecated in release 9.0.0.0

Overriding the HFXO CTUNE with a value in the NVM3 Bluetooth region is deprecated. By default, CTUNE override using NVM3 Bluetooth region is disabled. Enable it with the SL_BT_CONFIG_SET_CTUNE_FROM_NVM3 configuration. Since the Simplicity SDK 2024.12.1 release, the alternative of CTUNE override is to use the platform component clock_manager_oscillator_calibration_override. This platform component supports both the HFXO and LFXO CTUNE overrides.

6 Removed Items

Removed from release 9.0.1.0

ID # Description
1382948 Bluetooth RTOS examples are no longer supported on xG22 devices.

Removed from release 9.0.0.0

7 Multiprotocol Gateway and RCP

7.1 New Items

Added in release 9.1.0.0

The zigbee_throughput plugin start command now includes an optional uint8_t argument "plugin throughput start 0" which will not clear the stack counters before a throughput test begins. This is intended for testing purposes. If no additional arugment is included and/or not 0, the current behavior remains the same and will clear the device counters when a throughput test begins.

Added in release 9.0.0.0

7.2 Improvements

Changed in release 9.1.0.0

The Zigbee-NCP + Open Thread-RCP (UART & SPI) samples, as well as the Zigbee-NCP + BLE-NCP (UART & SPI) samples, are now only allowed for generation on parts with sufficient RAM (>=96kB).

Changed in release 9.0.1.0

The Zigbee BLE - DynamicMultiprotocolLightSed sample project can now be built for boards with only one LED if the LED1 component is excluded from the project.

This revision has the following improvements for multi-protocol applications when, for example, running Zigbee or Open Thread for the custom use-case of running one protocol at a time:

Changed in release 9.0.0.0

7.3 Fixed Issues

Fixed in 9.1.1.0

ID # Description
1375724 Fixed a race condition on the multipan RCP that resulted in a transmit complete message not being returned to the host, causing a 5 second pause in further transmissions prior to recovering. (Other ref: 1454196, 1454198, 1454200)

Fixed in release 9.1.0.0

ID # Description
1392015 SL_OPENTHREAD_ENABLE_SERIAL_TASK is now set to 0 by default to reduce the task memory size which is not required for RCP applications. (Other ref: 1424440)
1393057 Fixed an issue where the Zigbee-NCP + Open Thread-RCP (UART & SPI) samples, as well as the Zigbee-NCP + BLE-NCP (UART & SPI) samples, were allowed for generation on parts with insufficient RAM.
1399687 Fixed an issue where the Zigbee-BLE DMP Light app may fail to go to EM2 sleep.
1420018 Fixed an issue where a CPC message from an RTOS-enabled RCP to host could be waiting in a send queue until something woke up the serial task.

Fixed in release 9.0.1.0

ID # Description
1363050 Zigbee stack initialization no longer activates the radio (or RCP for host stacks) prior to stack APIs being called by the application. This prevents unwanted multi-PAN operation on Channel 11 (the default channel) when using a multi-PAN-capable RCP configuration. (Other ref: 1390724)
1378298 Fixed an issue that caused a crash when entering "keys print" on an DMP Light app with LTO enabled.
1381165 Fixed an issue on Zigbee-NCP + OT-RCP, when disabling PTA would have caused NCP/RCP reset.

Fixed in release 9.0.0.0

ID # Description
1275378 Fixed an issue where calling sl_802154_radio_set_scheduler_priorities() prior to sli_mac_lower_mac_init() could result in a crash.
1300848 Fixed an issue where Z3Gateway in OpenWRT environment couldn't start EZSP communication caused by mismatching termios control characters running on OpenWRT and other environments.
1332330 Fixed an issue where a 15.4+BLE RCP operating in an environment with heavy network traffic could occasionally encounter a race condition that would leave it unable to send messages up to CPCd until rebooting the device.
1337101 Incomplete 15.4 transmit operations (Tx waiting for an ack, Tx an ack in response to a message, etc) are no longer prematurely considered as failed upon radio interruption due to DMP. This allows said operation to be given a chance to be rescheduled after the interruption or permanently failed by RAIL (scheduler status error events).
1337228 In Zigbeed the halCommonGetInt32uMillisecondTick() tick API is now updated to use MONOTONIC clock, so that it does not get affected by the NTP in a host system.
1337295 The DMP CLI command "plugin ble gap print-connections" will now print "No BLE connections" if the connection table is empty, instead of providing no response.
1346785 Fixed a race condition which could cause concurrent listening to be disabled on the 802.15.4 RCP when both protocols were transmitting simultaneously.
1346849 Adding the rail_mux components to a project will now cause it to automatically build with the associated stack library variants.
1365665 Fixed an issue where the host would report receiving a packet with an invalid checksum on end-point 12.

7.4 Known Issues in the Current Release

ID # Description Workaround
937562 Bluetoothctl 'advertise on' command fails with rcp-uart-802154-blehci app on Raspberry Pi OS 11. Use btmgmt app instead of bluetoothctl.
1074205 The CMP RCP does not support two networks on the same PAN id. Use different PAN ids for each network. Support is planned in a future release.
1122723 In a busy environment, the CLI may become unresponsive in the z3-light_ot-ftd_soc app. No known workaround.
1209958 The ZB/OT/BLE RCP using concurrent listening on MG24 and MG21 may stop working in endurance test (lasts ~2 hours) with constant and concurrent traffic on all 3 stacks. Disable concurrent listening in use cases involving constant and concurrent traffic across all 3 protocols.
1221299 Mfglib RSSI readings differ between RCP and NCP. Will be addressed in a future release.
1356052 Coex-enabled RCP may still occasionally transmit TX ACK after losing the Grant even when Acking is disabled and TX Abort is enabled. Will be addressed in a future release.
1385486 TX from RCP may infrequently happen without the request after turning on the non-802.15.4 compliant MAC Holdoff coex option. Will be addressed in a future release.

7.5 Deprecated Items

The "Multiprotocol Container" which is currently available on DockerHub (siliconlabsinc/multiprotocol) will be deprecated in an upcoming release. The container will no longer be updated and able to be pulled from DockerHub. The Debian-based packages for cpcd, zigbeed, and ot-br-posix, along with natively generated and compiled projects, will replace the functionality lost with the removal of the container.

7.6 Removed Items

Removed in release 9.0.1.0

Removed in release 9.0.0.0

None.

8 Using This Release

This release contains the following:

For more information about the Bluetooth SDK see https://docs.silabs.com/bluetooth/latest/. If you are new to Bluetooth see UG103.14: Bluetooth LE Fundamentals.

8.1 Installation and Use

The Bluetooth SDK is provided as part of the Simplicity SDK, the suite of Silicon Labs SDKs. To quickly get started with the Simplicity SDK, 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, Simplicity SDK may be installed manually by downloading or cloning the latest from GitHub. See https://github.com/SiliconLabs/simplicity_sdk for more information.

Simplicity Studio installs the Simplicity by default in:

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/.

8.2 Security Information

Secure Vault Integration

When deployed to Secure Vault High devices, sensitive keys such as the Long Term Key (LTK) are protected using the Secure Vault Key Management functionality. The table below shows the protected keys and their storage protection characteristics.

Wrapped Key Exportable / Non-Exportable Notes
Remote Long Term Key (LTK) Non-Exportable
Local Long Term Key (legacy only) Non-Exportable
Remote Identity Resolving Key (IRK) Exportable Must be Exportable for future compatibility reasons
Local Identity Resolving Key Exportable Must be Exportable because the key is shared with other devices.

Wrapped keys that are marked as "Non-Exportable" can be used but cannot be viewed or shared at runtime.

Wrapped 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.

8.3 Support

Development Kit customers are eligible for training and technical support. Use the Silicon Labs Bluetooth LE web page to obtain information about all Silicon Labs Bluetooth products and services, and to sign up for product support.

You can contact Silicon Laboratories support at http://www.silabs.com/support.

8.4 SDK Release and Maintenance Policy

For details, see SDK Release and Maintenance Policy.

PDF preview unavailable. Download the PDF instead.

bt-software-release-notes-9.1.1.0 Silicon Labs Adobe PDF Library 25.1.97

Related Documents

Preview Silicon Labs Bluetooth SDK 2.12.4.0 GA Release Notes
Detailed release notes for Silicon Labs Bluetooth SDK version 2.12.4.0 GA, part of the 19Q2 Gecko SDK Suite. Covers new features, API changes, fixed issues, known issues, deprecated items, and usage instructions for developers.
Preview Silicon Labs Bluetooth® LE SDK 7.3.0.0 GA and Gecko SDK Suite 4.4 Release Notes
Release notes for Silicon Labs' Bluetooth® LE SDK 7.3.0.0 GA and Gecko SDK Suite 4.4, detailing new features, improvements, fixed issues, known issues, deprecated, and removed items for developers.
Preview Silicon Labs RAIL SDK 2.18.3.0 GA Release Notes
Release notes for the Silicon Labs RAIL SDK 2.18.3.0 GA, part of the Simplicity SDK Suite 2024.12.3. This document details new features, improvements, fixed issues, known issues, deprecated items, and removed items for the RAIL SDK.
Preview Silicon Labs OpenThread SDK 2.6.3.0 Release Notes
Release notes for Silicon Labs OpenThread SDK version 2.6.3.0 GA, detailing new features, improvements, fixed issues, and known issues for Thread and Multiprotocol development.
Preview Connect SDK 4.0.2.0 GA Release Notes - Silicon Labs
Release notes for Silicon Labs Connect SDK version 4.0.2.0 GA, detailing new features, improvements, fixed issues, known issues, deprecated items, and removed items for the Simplicity SDK Suite. Includes compatibility information and installation guidance.
Preview Silicon Labs Bluetooth Mesh SDK 7.0.3.0 GA Release Notes
Release notes for Silicon Labs Bluetooth Mesh SDK version 7.0.3.0 GA, detailing new features, improvements, fixed issues, known issues, deprecated items, and removed items for the Simplicity SDK Suite 2024.6.3.
Preview Connect SDK 4.0.0.0 GA Release Notes - Silicon Labs
Comprehensive release notes for Silicon Labs Connect SDK version 4.0.0.0 GA, detailing new features, improvements, fixed issues, known issues, and compatibility information for proprietary wireless applications using IEEE 802.15.4.
Preview Proprietary Flex SDK 3.8.1.0 GA & Simplicity SDK Suite 2024.6.1 Release Notes | Silicon Labs
Official release notes for Silicon Labs Proprietary Flex SDK version 3.8.1.0 GA and Simplicity SDK Suite 2024.6.1, detailing new features, improvements, fixed issues, and known issues for wireless development.