OpenThread SDK Version 3.1.0 - Release Notes (Jun 23, 2026)#

OpenThread Version 3.1.0

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 Thread 1.4 qualification support for OTBR in NCP mode

  • Continued Thread 1.4 qualification support for SoC and OTBR in RCP mode

  • Added Thread - SoC Empty sample applications

  • Added NAT64 and TREL support for Host / NCP configurations

  • Added OTBR Android 15 support with CPC spinel proxy support

  • Standardized Simplicity SDK example app titles and descriptions

  • Silicon Labs standard logger integration

API Changes#

Refer to API changes as documented here, starting with the changes on November 11, 2025 and ending with the changes on April 29, 2026.

Bug Fixes#

Targeted quality improvements and bug fixes

Chip Enablement#

None.

Key Features#

New Features | Enhancements | Removed Features | Deprecated Features

New Features#

Thread - SoC Empty sample applications#

This release adds two new OpenThread SoC Empty sample applications:

  • ot-soc-empty - OpenThread - SoC Empty FTD

  • ot-soc-empty-freertos - OpenThread - SoC Empty FTD FreeRTOS

These sample applications provide minimal Full Thread Device (FTD) reference projects for baremetal and FreeRTOS environments. They are intended as starting points for developing Thread applications and include configurable default dataset values for form / join workflows.

OpenThread - SoC Empty FTD is a bare-metal application compatible with series 2 devices, while OpenThread - SoC Empty FTD FreeRTOS utilizes RTOS and is compatible with both series 2 and series 3 devices. Both applications contain only the essential elements required for a functional Thread application, and thus can serve as a base from which to build out OpenThread applications. The pre-made application code in SoC Empty provides basic out-of-the-box functionality to form a Thread network or join an existing one. It does so using dataset parameters that can be configured after project generation using the Simplicity Studio UI to configure the default Dataset Values component, or by modifying the application code directly.

Enhancements#

  • Thread 1.4 qualification coverage: This release extends Border Router qualification to support Thread 1.4 compliance in both RCP and NCP operating modes, while continuing Thread 1.4 compliance support for SoC applications.

  • Host / NCP NAT64 support: This release adds NAT64 support for OpenThread Border Router deployments that use a Host / NCP architecture.

  • Host / NCP TREL support: This release adds TREL peer-discovery and forwarding support for Host / NCP configurations.

  • Android CPC spinel proxy: This release adds the cpc-spinel-proxy application and related CPC transport refactoring to support Android Thread HAL integrations that communicate through a Unix socket, including OTBR deployments on Android 15.

  • Example metadata standardization: Standardized Simplicity SDK OpenThread example titles and descriptions to align naming and presentation across the example catalog.

  • Toolchain and platform integration updates: Added integration with the Silicon Labs standard logger.

  • Runtime initialization of IPv6 external address pools: OpenThread now supports runtime initialization of IPv6 external address pools via otIp6Init(), with CLI support through ifconfig init <ucast-addr-count> <mcast-addr-count>. This is not yet supported in NCP configurations.

    Impacted users: certification library configurations (non-NCP) in this release default to runtime external address pool initialization.

    • For non-NCP certification library users, update application flow to call otIp6Init() before otIp6SetEnabled() (or run ifconfig init ... before ifconfig up in CLI workflows).

    • For (non-NCP) certification source users, runtime behavior is optional: enable OPENTHREAD_CONFIG_IP6_INIT_EXT_ADDR_POOL_ENABLE (and OPENTHREAD_CONFIG_CLI_IFCONFIG_INIT_ENABLE for CLI) to use this API/CLI flow; otherwise continue using compile-time OPENTHREAD_CONFIG_IP6_MAX_EXT_UCAST_ADDRS / OPENTHREAD_CONFIG_IP6_MAX_EXT_MCAST_ADDRS.

  • Upgrade rules: Added project upgrade rules to preserve required NCP CLI support and serial-task stack sizing when upgrading existing projects.

  • Configurable ECDSA dependencies: Added OpenThread crypto component options to allow projects to choose deterministic or non-deterministic ECDSA behavior.

  • Default Dataset Values Component for testing purposes: This release adds a new component for OpenThread called Default Dataset Values. This component provides defines for the basic elements of an OpenThread dataset, those being Channel, PAN ID, and Network Key. Each of these is configurable via the component’s configuration menu in the Simplicity Studio UI. This component should only be used for testing, as utilizing a static default dataset in production applications poses a security risk.

  • OpenThread TrustZone applications: OpenThread TrustZone applications now utilize all available flash and RAM memory.

  • Packaging Updates: The filepaths of .slcc files and code classification headers inside openthread_stack have moved: component to component_stack and include to include/code_classification (but the SLC component interface to use this content in a project is unchanged).

  • Logging improvements: Added a new ot_sl_log component which, when included in an application, utilizes the standard Silicon Labs debug logger.

Removed Features#

None.

Deprecated Features#

None.

API Changes#

Refer to API changes as documented here, starting with the changes on November 11, 2025 and ending with the changes on April 29, 2026.

Impact of Release Changes#

Impact Statements | Migration Guide

Impact Statements#

Multi-instance application upgrades may require manual updates to app.c when migrating from 25Q4 to 26Q2.

Migration Guide#

Multi-instance upgrades:

  • Multi-instance applications require an app.c update only when app-level logging with instance-aware logging is enabled, in which case, implement otPlatLogOutput() and add the #include <stdint.h> and #include <openthread/instance.h> directives.

  • The 25Q4 OpenThread BLE DMP samples were moved to the multiprotocol example set in 26Q2. No manual app.c changes are required for the single-instance sample. The multi-instance sample requires an app.c update only when instance-aware logging is enabled. In that case, implement otPlatLogOutput() and add the required #include <stdint.h> and #include <openthread/instance.h> directives.

Bug Fixes#

ID Issue Description GitHub / Salesforce Reference (if any) Affected Software Variants, Hardware, Modes, Host Interfaces
1224581, 1224586 Updated the Silicon Labs OpenThread platform layer to avoid configuration-dependent Mbed TLS / PSA Crypto ABI mismatches when using precompiled libraries with customized Mbed TLS settings. None Applications using precompiled OpenThread libraries with customized Mbed TLS / PSA Crypto configurations
1485392, 1582132 Fixed issue in which the RTOS stack task would unexpectedly process serial data. None RTOS OpenThread applications using the serial task
1566197 Fixed an issue where certain Thread communications could be disrupted between a pair of devices in which a ble connection is open. None Thread Multiprotocol applications with BLE
1569156 Linking with the “OpenThread certification library” and enabling both “SHA-384 and SHA-512” components will no longer result in a hard fault. 00336033 Applications using the OpenThread certification libraries and customized PSA / MBEDTLS configurations
1589205 Fixed otPlatRadioEnergyScan to return OT_ERROR_BUSY when radio is already performing energy scan, as required by OpenThread platform API contract. None Multi-instance applications
1590627 OTBR Debian packages now install NAT64 and other default OTBR services correctly. None Debian OTBR installations
1569103 Fixed an issue where a disconnected CPC endpoint during frame transmission was incorrectly treated as a successful send, leading to undetected frame loss. None OTBR / NCP CPC configurations
1602474 During the join process for a Synchronized Sleepy End Device (SSED), the NCP support no longer errors out in the MAC when processing enhanced ACKs. This occurred only during the CSL negotiation and not in other cases. None Synchronized Sleepy End Devices (SSEDs)
1605124 Fixed issue in which an assert is occasionally caused by starting an alarm while another alarm is active. 00335311 All OPNs, boards, modes and interfaces
1621998 Corrected the value returned by otPlatRadioGetTransmitPower() so transmit power is reported in dBm. 00340226 All OPNs, boards, modes and interfaces
1635295 Fixed a busfault / hardfault that could occur when building or running OpenThread applications with NDEBUG=1. 00341017 All OPNs, boards, modes and interfaces
1640055 Fixed an issue where openthread was reinitializing the sl_iostream_debug stream causing the system default stream to become sl_iostream_debug. 00341123 All OPNs, boards, modes and interfaces
1633284 Fixed a CSL issue with otbr + rcp by increasing OPENTHREAD_CONFIG_MAC_CSL_REQUEST_AHEAD_US on host. None Host / OTBR configurations using sleepy end devices on Series 3

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

ot-soc-empty

See README.

This is a minimal OpenThread SoC application on a Full Thread Device (FTD), intended as a starting point for developing Thread applications in a baremetal environment. Full Thread Device SoC Series 2 devices None

ot-soc-empty-freertos

See README.

This is a minimal OpenThread SoC application on a Full Thread Device (FTD), intended as a starting point for developing Thread applications in a FreeRTOS environment. Full Thread Device SoC All OPNs and boards that support Thread None

Modified Examples#

  • OpenThread example application titles and descriptions were standardized across the Simplicity SDK example catalog.

  • The OpenThread BLE DMP samples were moved to multiprotocol.

  • Watchdog support has been added to all sample apps.

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
1559163 When running in a Host / NCP architecture and repeatedly sending factory resets to the NCP, after approximately 15 times the host may stop sending messages to the NCP. This is intended behavior and the correct procedure when factory resetting the NCP is to also reset the host at the same time. This will be removed as a known issue in the next release. None The correct procedure when factory resetting the NCP is to also reset the host at the same time. Host / NCP architectures
1625968 Radio may not return to IDLE when CSL is in use in multi-protocol environments. 00339903 Contact customer support for workaround. Multi-protocol environments with CSL enabled
1629296 RxFrame::ProcessReceiveAesCcm() can take more than 5 ms to process on Series 2 platforms. 00340682 Contact customer support for workaround. All Series 2 devices
1634898 Intermittent Ping Failures when using ot-ble-multi-instance app. None No known workaround. All devices
1673927 An intermittent Usage Fault may occur on Series 3 devices during in-band commissioning on the commissioner node when the application is built using the LLVM compiler. None No known workaround. Series 3 devices using LLVM-built
1677527 When OpenThread runs on the NCP (network co-processor), the border router does not forward DNS queries from Thread devices to upstream resolvers on the infrastructure link, so upstream DNS forwarding is not supported in NCP mode. Product flows where the border router must resolve arbitrary Internet names for Thread clients are out of scope for this release. If you need assistance implementing upstream DNS forwarding or integrating a host-side DNS forwarder into an NCP OTBR platform image, please contact Silicon Labs support. None Implement upstream DNS forwarding or integrate a host-side DNS forwarder. OTBR / NCP configurations