OpenThread SDK Version 2.7.1 (July 21, 2025) - Release Notes#
Simplicity SDK Version 2025.6.1
Thread is a secure, reliable, scalable, and upgradeable wireless IPv6 mesh networking protocol. It provides low-cost bridging to other IP networks while optimized for low-power / battery-backed operation. The Thread stack is designed specifically for Connected Home applications where IP-based networking is desired, and a variety of application layers may be required.
OpenThread released by Google is an open-source implementation of Thread. Google has released OpenThread to accelerate the development of products for the connected home and commercial buildings. With a narrow platform abstraction layer and a small memory footprint, OpenThread is highly portable. It supports system-on-chip (SoC), network co-processor (NCP), and radio co-processor (RCP) designs.
Silicon Labs has developed an OpenThread-based SDK tailored to work with Silicon Labs hardware. The Silicon Labs OpenThread SDK is a fully tested enhanced version of the GitHub source. It supports a broader range of hardware than does the GitHub version, and includes documentation and example applications not available on GitHub.
Click here for earlier releases.
Release Summary#
Key Features | API Changes | Bug Fixes | Chip Enablement
Key Features#
Added in 2.7.1#
None.
Added in 2.7.0#
Thread 1.4 compliance for Border Router.
OpenThread Border Router in NCP mode.
Power Calibration Module support.
Application Initialization Utilizing sl_main.
GCC Link Time Optimization (LTO).
API Changes#
Changed in 2.7.1#
None.
Changed in 2.7.0#
Refer to API changes as documented here starting with the changes on December 6, 2024 and ending with the changes on May 14, 2025.
Bug Fixes#
Fixes in 2.7.1#
Targeted quality improvements and bug fixes.
Fixes in 2.7.0#
CSL Improvements.
Host/RCP SPI Improvements.
Targeted quality improvements and bug fixes.
Chip Enablement#
None.
Key Features#
New Features | Enhancements | Removed Features | Deprecated Features
New Features#
Added in 2.7.1#
None.
Added in 2.7.0#
Thread 1.4 compliance for Border Router
Thread 1.4 specification introduces the following mandatory features for the Border Router:
Thread Credential Sharing
Provides a standard protocol to allow Administrator access to Thread Border Routers.
Enables authentication via a short one-time / ephemeral “Thread Administrator Passcode”.
Diagnostics: Network Management and Troubleshooting
With Mesh devices having transient roles and difficult to troubleshoot, this feature:
Enables enumeration of network participants & means to recreate network state at any time.
Disambiguates distinctions between various network layers.
Helps classify network diagnostic information for user purposes.
Thread over Infrastructure aka TREL
Allows Thread to utilize Wi-Fi/Ethernet links in the Thread mesh topology.
Enables merging of Thread Partitions over Wi-Fi/Ethernet.
Public Internet Connectivity IPv4 / IPv6 support
DHCPv6 prefix delegation – To support IPv6 prefix delegation and distribute prefixes in the interior network. Also enables DHCPv6-PD client support in the external IPv6 network.
Outbound IPv4 connectivity
To support stateful NAT64 as a solution for IPv6/IPv4 translation.
DNS Recursive Resolver
Allows subscriptions over TLS/TCP (where TCP is preferred over UDP because service lists can lead to quite large packets).
TCP (Bulk Transfer Protocol)
Support for TCP as a standard component/protocol on Thread stacks to remedy throughput shortcomings for Bulk Transfer.
OpenThread Border Router in NCP mode
This feature adds support for Low-Power Thread border routers by utilizing the Network Co-Processor (NCP) architecture. With this solution the high-power host can sleep while the low-power NCP device remains active maintaining connectivity on the Thread mesh network.
In addition, the ot-ncp-ftd and ot-ncp-mtp sample apps have been moved from experimental quality to production and two new sample applications have been added. The two new apps are ot-ncp-ftd-cpc and ot-ncp-mtd-cpc, which are the same apps as the ot-ncp-ftd and ot-ncp-mtp apps but use Co-Processor Communication (CPC) as the communication medium between the host and the NCP.
Power Calibration Module support
This release introduces Power Calibration support to the OpenThread Platform Abstraction Layer (PAL). The Power Calibration feature allows precise configuration and fine-tuning of the radio's transmit power to ensure optimal performance and regulatory compliance. The macro OPENTHREAD_CONFIG_POWER_CALIBRATION_ENABLE enables this feature on the RCP and we can use the build switch -DOT_PLATFORM_POWER_CALIBRATION=1 to enable this feature.
When this feature is enabled, the host reads the configuration file specified by OPENTHREAD_POSIX_CONFIG_PRODUCT_CONFIG_FILE to retrieve channel-specific power settings. These settings are then used to configure the power table on the Radio Co-Processor (RCP). The format of this configuration file is demonstrated in the example file located at: util/third_party/openthread/src/posix/platform/openthread.conf.example.
This file allows users to define raw power settings for the radio, including:
Radio Transmit Power.
Optional Front-End Module (FEM) configurations for fine-tuning the transmit power. On the RCP, raw power values read from the power calibration table are passed to the PAL, where the radio power and FEM settings are applied.
Notes
Weak Implementation for Parsing Raw Power Settings:
The function sl_parse_raw_power_calibration_cb provides a weak implementation for parsing raw power values.
Expected Format: A uint16_t value where:
Lower 8 bits represent the Power Amplifier (PA) configuration.
Higher 8 bits represent the FEM settings.
This function can be overridden with a strong implementation to support custom formats for raw power settings, allowing flexibility to meet specific requirements.
Callback for FEM Configuration:
A callback, sl_configure_fem_cb is provided for configuring the FEM. The default implementation ignores FEM settings.
Users can override this callback to apply specific FEM configurations.
Application Initialization Utilizing sl_main
sl_system is deprecated in the sisdk-2025.6.0 and has been replaced with sl_main. This means the existing main.c files are not compatible with the new sl_main component. It is recommended that customer make the following changes:
Make the calls in main.c compatible with sl_main component (look at the provided example by sl_main component itself, or generating a new project).
Enforce using the their main.c by requiring sl_main_custom_main in their project.
GCC Link Time Optimization (LTO)
Overview:
Link Time Optimization (LTO) is now enabled for Openthread SoC applications in this release for GCC compiler. LTO is a powerful compiler optimization technique that allows the compiler to perform whole-program analysis and optimization at link time, resulting in improved code performance and, in some cases, reduced binary size.
Usage:
Installing the toolchain component toolchain_gcc_lto brings in the desired compiler and linker flags in a project. In sisdk-2025.6.1 release, the Openthread gcc SoC FTD and MTD certification libraries are built with desired compiler options (i.e -flto and -ffat-lto-objects) to be compatible with the linker to perform LTO at the final linking stage. The gcc linker flag -flto gets added to the linker options when toolchain_gcc_lto is installed in a SoC project and when it is not installed the -fno-lto flags will be required to be added. The SLC cli or Studio project generation automatically updates (generated or updated) the gcc makefile. User maintained makefile must consider these flags to be forward compatible.
Key Benefits:
Improved Performance: LTO enables more aggressive inlining and cross-module optimizations, which can lead to faster execution of Openthread stack and application code. Potential Code Size Reduction: By eliminating redundant code and optimizing across module boundaries, LTO may reduce the overall firmware size in some scenarios. Better Optimization Opportunities: The compiler can optimize function calls and data usage across all source files, not just within individual files.
Considerations:
Increased Stack and Heap Usage: Due to more aggressive inlining and function merging, LTO may increase stack and heap requirements.Stack sizes have been reviewed and updated in .slcp configuration files to ensure reliable operation under LTO. Build Time: Enabling LTO may increase build times, as the linker performs more complex analysis and optimization. Debugging: Debugging LTO-optimized binaries can be more challenging, as function boundaries and variable locations may change due to optimization.
Configuration Changes:
The toolchain_gcc_lto component is now included in Openthread SoC projects. Stack size (SL_STACK_SIZE) and heap size ( configTOTAL_HEAP_SIZE for FreeRTOS RTOS) configuration entries in .slcp files have been updated to ensure sufficient memory allocation for all combinations of LTO and RTOS usage.
Recommended Actions:
Review and test your application for stack overflows or memory issues, especially if you have custom code or third-party libraries. If you encounter issues related to stack or heap usage, consider adjusting the SL_STACK_SIZE and heap configuration values as needed. For projects not installed with the toolchain_gcc_lto component, the -fno-lto flags MUST BE added for forward compatibility.
Summary:
LTO is now part of the default build configuration for Openthread applications, providing enhanced optimization and performance. Please review the updated stack size settings and test your applications accordingly to ensure a smooth transition.
Enhancements#
Added in 2.7.1#
None.
Added in 2.7.0#
Backchannel Logging Support
In this release, log messages can now be directed to the debug backchannel and are visible using Simplicity Studio's Network Analyzer. Simply include the "Backchannel Logger" (id: ot_backchannel_log) component when generating your project.
Application Sleep Improvements
The default efr32AllowSleepCallback implementation has been updated to allow sleep. This callback is used to check if is safe to go into a low energy sleep mode. Applications can still override this default response by implementing the efr32AllowSleepCallback function and returning an appropriate response based on the application needs.
OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT is now enabled by default for all sample apps so that children can supervise loss of a parent link as specified in the Thread standard.
ot_reset_utils component
Added new component ot_reset_utils to handle application includes of src/lib/platform/reset_util.h from the OpenThread stack. As a result, OpenThread example projects no longer copy this file directly into the project's root directory during generation.
OTBR Improvements to host / RCP communication
The default OTBR agent is now configured to work at 460800 baud rate, so default ot-rcp sample app is also configured to work at the same baud rate. Make sure to match whatever baud rate you set between the OTBR radio URL and the RCP configuration. Please note that this doesn’t affect CPC RCP apps as CPC defines its own baud rate setting.
Removed Features#
None.
Deprecated Features#
None.
API Changes#
Changed in 2.7.1#
None.
Changed in 2.7.0#
Refer to API changes as documented here starting with the changes on December 6, 2024 and ending with the changes on May 14, 2025.
Bug Fixes#
Fixed in 2.7.1#
ID | Issue Description | GitHub / Salesforce Reference (if any) | Affected Software Variants, Hardware, Modes, Host Interfaces |
---|---|---|---|
1475769 | Addressed an issue where the txpower cli command would report the power as a negative number when the txpower was set at or above 13dBm. | None |
|
1476240 | For Debian bookworm-based installations, when installing the ot-br-posix debian file, make sure the dhcpcd package on your target system is higher than the recommended bookworm version of 9.4.1-24, which has a known issue. The bookworm-backports apt source provides version 10.1.0 which is highly recommended. If not, we recommend updating your dhcpcd package version to at least 9.5.1. | None |
|
Fixed in 2.7.0#
ID | Issue Description | GitHub / Salesforce Reference (if any) | Affected Software Variants, Hardware, Modes, Host Interfaces |
---|---|---|---|
1286531, 1408409 | Addressed a CSL race condition that occurred when scheduling receive and transmit requests which could periodically affect the transmit state machine and outgoing packets. | SF: 00299203 |
|
1295725 | Fixed an issue where SSED device was running out of message buffers. | None |
|
1338008, 1392800 | Removed upgrade rule to change uart component instances for Thread apps | None |
|
1356462 | Addressed OTBR crash during RCP recovery with updated openthread stack included with the GSDK. | SF: 00307975 |
|
1360675 |
Fixed failing SRP issue. While adding a service from the SRP client (MTD) to the SRP server (FTD), the SRP registering onto the server outputs an error as shown below from the logs on the FTD: [W] SrpServer-----: Failed to verify message signature: NotCapable [W] SrpServer-----: Failed to process DNS Additional section: NotCapable [W] SrpServer-----: Send fail response: 5 |
None |
|
1363723, 1420021 | Invalid SPI headers will no longer result in a RCP reset. | SF: 00307975 |
|
1377923 | Fixed an issue where a coex-enabled 15.4 RCP device could sometimes run into an assert if an OpenThread ongoing TX ACK flag was never cleared. | None |
|
1385889 | Increased default stack size for baremetal non-rcp projects to account for observed stack issues with thread joiner operations. | SF: 00307975 |
|
1390396 | Addressed a failing Network Diagnostics test for MTDs in 1.4 certification by enabling the uptime feature OPENTHREAD_CONFIG_UPTIME_ENABLE. | None |
|
1400642 | Fixed a bug in flash driver, where on non-PSA enabled devices some NVM settings were not cleared. Updated the flash abstraction to cycle through and delete all Openthread related keys from the device on Factory Reset. | SF: 00319399 |
|
1405795 | Addressed an issue where old package specific version numbers and git hash commits defined in sl_openthread_generic_config.h are copied from an old project to a new project during the upgrade process making it appear as if the new project was still associated with the previous SDK. In this release we have moved these definitions from sl_openthread_generic_config.h and placed them in a new include file in the SDK (platform-abstraction/efr32/package-info.h) thus deprecating sl_openthread_generic_config.h. Note: after and upgrade please manually remove sl_openthread_generic_config.h from the new /config directory. | SF: 00325156 |
|
1412533 | Fixed invalid project context error when selecting a new OpenThread trustzone workspace from the Studio new project wizard. | None |
|
1413049 | Fixed a warning in spinel_driver.hpp when lto is enabled. | None |
|
1434673 |
Fixed an undefined reference to efr32UartIsDataReady linking error that would show up when trying to replace the ot_uart component with another component implementing the underlying UART interfaces. In addition, the ot_uart component previously provided the "ot_uart_implemention" feature. In this release the feature has been renamed to "ot_uart_implementation" to fix the typo in the name. If a component was created implementing the "ot_uart_implemention" feature with the intention of replacing the ot_uart component with the other component then that component will also need to change to provide the corrected feature name, "ot_uart_implementation". |
SF: 00326574 |
|
Chip Enablement#
None.
Application Example Changes#
New Examples | Modified Examples | Removed Examples | Deprecated Examples
New Examples#
Added in 2.7.1#
None.
Added in 2.7.0#
Example Name | Description | Supported Software Variants (if applicable) | Supported Modes | Supported OPNs / Boards / OPN Combinations | Supported Host Interfaces |
---|---|---|---|---|---|
ot-ncp-ftd-cpc See README. |
This is a simple OpenThread Full Thread Device NCP application with CPC. This is equivalent to the ot-ncp-ftd application in the OpenThread GitHub repo. | Full Thread Device |
|
|
UART, SPI |
ot-ncp-mtd-cpc See README. |
This is a simple OpenThread Minimal Thread Device NCP application. This is equivalent to the ot-ncp-mtd application in the OpenThread GitHub repo. | Minimal Thread Device |
|
|
UART, SPI |
Modified Examples#
None.
Removed Examples#
None.
Deprecated Examples#
None.
Known Issues and Limitations#
Issues in bold were added since the previous release.
ID | Issue or Limitation Description | GitHub / Salesforce Reference (if any) | Workaround (if any) | Affected Software Variants, Hardware, Modes, Host Interfaces |
---|---|---|---|---|
1362023 | When building a Matter app and adding the Mikroe IOStream USART component, the openthread file, iostream_uart.c, is added to the project, leading to the build errors. | None | Add a component that provides ot_uart_implemention. |
|
1431916, 1443257 | When the source match table in spinel on the host is larger than the source match tables on the radio (RCP) an error of "NoBufs" can be returned by the RCP after an RCP reset and during the restoration process of the source match table. This is because the host has more entries than the RCP tables can hold. | None | To fix the issue ensure that the OPENTHREAD_CONFIG_MLE_MAX_CHILDREN on the host and the RCP. |
|