SILICON-LOGO

SILICON LABS 2.5.2.0 Open Thread SDK

SILICON-LABS-2-5-2-0-Open-Thread-SDK-product

FAQs

Q: What are the key features of the Silicon Labs OpenThread SDK?

A: The SDK offers compatibility with a range of hardware, enhanced documentation, and example applications not found in the GitHub version.

Q: How can I stay informed about security updates related to the SDK?

A: Refer to the Security chapter of the Platform Release Notes or visit https://www.silabs.com/developers/thread for security updates. Subscribe to Security Advisories for real-time information.

PRODUCT INFORMATION

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), net- work 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. These release notes cover SDK version(s):
  • 2.5.2.0 GA released on September 18, 2024
  • 2.5.1.0 GA released on July 24, 2024
  • 2.5.0.0 GA released on June 5, 2024

KEY FEATURES

OpenThread

  • Thread 1.3.0 certification compliance with Thread Test Harness v59.0 for SoC and Host-RCP architectures
  • Thread 1.4 features – Alpha / Experi-mental
  • Coex Metrics enhancements
  • OpenThread Mesh Performance Results (AN1408)
  • New Part support:
  • MG26 support – Alpha
  • Removed support for Series 0/1

Multi-Protocol

  • ZigbeeD and OTBR support on Open-WRT – Alpha
  • DMP BLE + CMP ZB & Matter/OT – Alpha
  • Removed support for Series 0/1

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/thread. Silicon Labs also strongly recommends that you subscribe to Security Advisories for up-to-date information. For instructions, or if you are new to the Silicon Labs OpenThread SDK, see Using This Release.

Compatible Compilers:

  • GCC (The GNU Compiler Collection) version 12.2.1, provided with Simplicity Studio

New Items

SDK is an embedded software development platform for building IoT products based on our Series 2 and Series 3 wireless and MCU devices. It integrates wireless protocol stacks, middleware, peripheral drivers, a bootloader, and application examples – a solid framework for building power-optimized and secure IoT devices. The Simplicity SDK offers powerful features such as ultra-low power consumption, strong network reliability, support for a large number of nodes, and abstraction of complex requirements like multiprotocol and pre-certification. Additionally, Silicon Labs provides over-the-air (OTA) software and security updates to remotely update devices, minimize maintenance costs, and enhance the end-user product experience. Simplicity SDK is a follow-on from our popular Gecko SDK, which will continue to be available providing long-term support for our Series 0 and Series 1 devices. For additional information on the Series 0 and Series 1 devices please reference: Series 0 and Series 1 EFM32/EZR32/EFR32 device (silabs.com).

New Components

Added in release 2.5.0.0

  • • ot_core_vendor_extension – This component implements the ot::Extension::ExtensionBase interface for EFR32. When used with the OT Crash Handler component, crash info will be printed after the OpenThread instance is initialized.

New Features

Added in release 2.5.0.0

  • The versions of OpenThread and the OpenThread Border Router have been updated. See sections 8.2 and 8.3.
  • Libraries and sample applications in this SDK default to Thread 1.3. Thread 1.4 version and features, including credential sharing and ephemeral key support, are supported but are not ready for certification and still have ongoing development.
  • Optimization to the OpenThread API to allow for thread-safe access to the OpenThread stack in a multi-threaded RTOS environment.
  • A new platform component, Clock Manager, is integrated into all the open-thread sample applications for clock configuration.
  • A new platform component, Memory Manager, is integrated into all the open-thread sample applications for dynamic memory management.
  • OTBR on OpenWRT. A new multiprotocol open-thread-br ipk package has been added for use in the OpenWRT host environment.
  • Support for OpenThread Coex metrics

New APIs

Added in release 2.5.0.0

  • Support for OpenThread diag channel and transmit power API and CLI commands: otPlatDiagTxPowerSet() and otPlatDiagChan-nelSet().

New Radio Board Support

Added in release 2.5.0.0

Support has been added for the following radio boards:

  • BRD4116A – EFR32MG26B410F3200IM48-A

Improvements

  • Changed in release 2.5.0.0
  • The ot_rcp_gp_interface component has been renamed to ot_gp_interface.
  • The open thread API includes all changes up to and including the updates described here: https://openthread.io/reference/api-up-dates#may_17_2024.
  • The set of prebuilt demo sample applications has been updated as follows:
  • ot-ble-dump – (brd2703a, brd4116a, brd4180a, brd4186c)
  • ot-ble-dmp-no-buttons – (brd2703a, brd4116a, brd4180a, brd4186c)
  • ot-cli-ftd – (brd2703a, brd4116a, brd4180a, brd4186c)
  • ot-cli-mtd – (brd2703a, brd4116a, brd4180a, brd4186c)
  • ot-rcp – (brd2703a, brd4116a, brd4180a, brd4180b, brd4186c)
  • rcp-spi-802154 – (brd4116a, brd4180a, brd4180b, brd4186c)
  • rcp-spi-802154-blehci – (brd4116a, brd4180a, brd4180b, brd4186c)
  • rcp-uarti-802154 – (brd2703a, brd4116a, brd4180a, brd4180b, brd4186c)
  • rcp-uart-802154-blehci – (brd2703a, brd4116a, brd4180a, brd4180b, brd4186c)
  • sleepy-demo-ftd – (brd2703a, brd4116a, brd4180a, brd4186c)
  • sleepy-demo-mtd – (brd2703a, brd4116a, brd4180a, brd4186c)
  • sleepy-demo-used – (brd2703a, brd4116a, brd4180a, brd4186c)
  • Increased OPENTHREAD_CONFIG_CSL_RECEIVE_TIME_AHEAD to 750 us. for default FTD and MTD certification libraries for use with devices under test using library-based certification.
  • For older project files (.slcps) the default config value of CIRCULAR_QUEUE_LEN_MAX must be greater than or equal to SL_OPENTHREAD_RADIO_RX_BUFFER_COUNT (i.e. 16). Otherwise, the validation script will fail the project generation. This can be done by adding the config value entry in the .slcp directly or from Simplicity Studio: go to the ‘Circular Queue’ component, then go to configuration, and set the max length as per SL_OPENTHREAD_RADIO_RX_BUFFER_COUNT.
  • For multiple RCP applications, replace existing app.c with <GSDK_DIR>/protocol/openthread/sample-apps/ot-ncp/app.c in existing project or port changes from <GSDK_DIR>/protocol/openthread/sample-apps/ot-ncp/app.c to custom app.c if you have one.

Fixed Issues

Fixed in release 2.5.2.0

ID # Description
1238120 /

1334227

In a multiprotocol RCP environment, certain incoming packets were wrongly interpreted as Zigbee Green Power packets triggering a random outgoing packet. The issue is fixed by strengthening the Zigbee Green Power packet detection on the RCP.
1289835 /

1334618

Fixed issue with the Openthread border router dropping more packets than expected when running within a docker container and under duress.
1295848 /

1334987

Fixed occasional occurrence of duplicate header bytes that were causing RCP resets in busy networks with a lot of traffic over SPI. Also, it is recommended to use a higher spi-bus speed (such as 4Mhz – depending on the network traffic) with a reduced debug logging level to have stable communication between the host and rcp. Higher spi speed on OTBR can be set in radio-URL as the ‘spi-speed=<>’ argument.
1327029 /

1337439

Added support for uartdrv_eusart:vcom instance in OpenThread applications.
1329286 /

1334038

Removed the “-Werror=unused-parameter” GCC compiler option so that applications that have unused parameters can be built.

Fixed in release 2.5.1.0

ID # Description
1295833 The following was added to NCP README to better reflect the actual status of the NCP sample apps. “Note that the NCP design model is not supported or tested, although experimental support is available with the OpenThread stack.”

Fixed in release 2.5.0.0

ID # Description
1208578 Added support for linking the CPC library to Posix host apps by using provided paths, and by using pkg-config.
1235923 Fixed a wrapping bug in calls to otPlatAlarmMilliStartAt and otPlatAlarmMicroStartAt.
1238120 In a multiprotocol RCP environment, certain incoming packets were wrongly interpreted as Zigbee Green Power packets, triggering a random outgoing packet. The issue is fixed by strengthening the Zigbee Green Power packet detection on the RCP.
1243597 Removed extra ot-ble-dmp-no-buttons sample apps from the demos folder.
1249346

1255247

Addressed an issue where the RCP could incorrectly dequeue packets destined for the host, resulting in a parse error in the OTBR and unexpected termination.
1249492 The dBus FactoryReset command no longer causes the open thread border router to terminate.
1251926 When using the crash handler feature in a Host / RCP environment, the RCP was attempting to send the crash info to the Host too early after reboot, causing the info to be dropped prior to logging. This issue is addressed by introducing a new spinel property to the upstream open thread stack. The property allows the Host to request crash logs from the RCP once the Host is ready for them. See https://github.com/openthread/openthread/pull/10061 for more information on the new spinel property.
1251952 Fixed undefined reference to otInstanceResetToBootloader when building with ot_cert_libs and bootloader_interface.
1255595 Fix a type promotion issue when handling large values in otPlatAlarm APIs
1263222 Fixed coax metric “Average Request To Grant Time”.
1277790 Fixed coax metric “Grant Immediate”.
1287331 The ot-ble-dmp sample application is now only supported on parts with at least 768k of flash.

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.si-labs.com/developers/thread in the Tech Docs tab.

ID # Description Workaround
482915

495241

1295252

A known limitation with the UART driver can cause characters to be lost on CLI input or output. This can happen during particularly long critical sections that may disable interrupts, so it can be alleviated by repeating the CLI or waiting long enough for state changes. No known workaround
815275 Ability to modify the Radio CCA Modes at compile-time using a configuration option in Simplicity Studio is currently not supported. Use the SL_OPENTHREAD_RADIO_CCA_MODE configuration option defined in openthread-core-efr32-config.h header file included with your project.
1286531

1295725

CSL/SSED instability. Adjust settings of CSL-related configuration macros.

Deprecated Items

Deprecated in release 2.5.0.0

None.

Removed Items

Removed in release 2.5.0.0

  • Support for Series 0 and Series 1 parts
  • Support for Proprietary Sub-GHz Support

Multiprotocol Gateway and RCP

New Items

Added in release 2.5.0.0

OpenWRT alpha support has been added for Zigbee, OTBR, and Z3Gateway applications. Zigbeed and OTBR are now provided in IPK package format as well. See AN1333: Running Zigbee, OpenThread, and Bluetooth Concurrently on a Linux Host with a Multiprotocol Co-Processor for details.

Improvements

Changed in release 2.5.2.0

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.

Changed in release 2.5.1.0

The zb_ble_dmp_print_ble_connections() API is defined in the zigbee_ble_event_handler component and referenced in the zigbee_ble_dmp_cli component. For applications that use the zigbee_ble_dmp_cli component, but NOT the zigbee_ble_event_handler, you will need to add an empty stub for this function in your app. c file as follows: void zb_ble_dmp_print_ble_connections(void) { }

Changed in release 2.5.0.0

None.

Fixed Issues

Fixed in release 2.5.2.0

ID # Description
 

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.

(Other ref: 1333150)

 

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.

(Other ref: 1346711)

Fixed in release 2.5.1.0

ID # Description
1300848 An issue was fixed where Z3Gateway in the OpenWRT environment couldn’t start EZSP communication caused by mismatching termios control characters running on OpenWRT and other environments.

Fixed in release 2.5.0.0

ID # Description
1231021 Fixed an issue to avoid an OTBR assert by recovering the RCP rather than passing unhandled transmit errors to the sub-mac.
1242948 Removed spurious test asserts from ZigBee.
1244459 Fixed issue where MAC-retried Indirect transmissions via RCP can result in a source match table entry for child being removed despite messages pending.
1245988 Fixed an issue where Zigbeed did not restart when performing a Trust Center Backup and Restore Reset Node action.
1282264 Fixed an issue that could have interrupted radio transmit operations by clearing the transmit fifo prematurely, causing underflow.
1288653 Zigbee/OT/BLE SOC app will now print connection info upon receiving the CLI command “plugin ble gap print- connections”.
1292537 The Zigbee/BLE NCP application is now properly showing up in Simplicity Studio UI.
1252365 Added Coexistence plugin back into Zigbee NCP/OpenThread RCP sample application.
1293853 Reduced RAM footprint for zigbee_ncp-ot_rcp-spi and zigbee_ncp-ot_rcp_uart on MG21.
1124140 Fixed an issue where setting SL_OPENTHREAD_RADIO_RX_BUFFER_COUNT to a value other than 1 caused z3- light_ot-ftd_soc to not send Zigbee beacons after the OpenThread network is up.

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.si-labs.com/developers/simplicity-software-development-kit.

ID # Description Workaround
937562 Bluetoothctl ‘advertise on’ command fails with rcp-uart- 802154-blah 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 on MG24 and MG21 can stop working after a few minutes when running all three protocols.  

This will be addressed in a future release.

1221299 Mfglib RSSI readings differ between RCP and NCP. Will be addressed in a future release.

Deprecated Items

None.

Removed Items

Removed in release 2.5.0.0

None.

Using This Release

  • This release contains the following
  • Silicon Labs OpenThread stack
  • Silicon Labs OpenThread sample applications
  • Silicon Labs OpenThread border router

For more information about the OpenThread SDK see QSG170: Silicon Labs OpenThread QuickStart Guide. If you are new to Thread see UG103.11: Thread Fundamentals.

Installation and Use

The OpenThread SDK is part of the Simplicity SDK, the suite of Silicon Labs SDKs. To quickly get started with OpenThread and the Simplicity SDK, start by installing Simplicity Studio 5, which will set up your development environment and walk you through Simplicity SDK 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/Sili-conLabs/simplicity_sdk for more information. The GSDK default installation location has changed beginning with Simplicity Studio 5.3.

  • Windows: C:\Users\<NAME>\SimplicityStudio\SDKs\simplicity_sdk
  • MacOS: /Users/<NAME>/SimplicityStudio/SDKs/simplicity_sdk
  • Documentation specific to the SDK version is installed with the SDK. API references and other information about this release are available on https://docs.silabs.com/openthread/latest/. Select your SDK version in the upper right.

OpenThread GitHub Repository

The Silicon Labs OpenThread SDK includes all changes from the OpenThread GitHub repo (https://github.com/openthread/openthread) up to and including commit 1fceb225b. An enhanced version of the OpenThread repo can be found in the following Simplicity Studio 5 GSDK location: <GSDK Installation Location>\util\third_party\openthread

OpenThread Border Router GitHub Repository

The Silicon Labs OpenThread SDK includes all changes from the OpenThread border router GitHub repo (https://github.com/openthread/ot-br-posix) up to and including commit e56c02006. An enhanced version of the OpenThread border router repo can be = found in the following Simplicity Studio 5 GSDK location: <GSDK Installation Location>\util\third_party\ot-br-posix

Using the Border Router

For ease of use, Silicon Labs recommends the use of a Docker container for your OpenThread border router. Refer to AN1256: Using the Silicon Labs RCP with the OpenThread Border Router for details on how to set up the correct version of OpenThread border router Docker container. It is available at https://hub.docker.com/r/siliconlabsinc/openthread-border-router. If you are manually installing a border router, using the copies provided with the Silicon Labs OpenThread SDK, refer to AN1256: Using the Silicon Labs RCP with the OpenThread Border Router for more details. Although updating the border router environment to a later GitHub version is supported on the OpenThread website, it may make the border router incompatible with the OpenThread RCP stack in the SDK.

NCP/RCP Support

The OpenThread NCP support is included with OpenThread SDK but any use of this support should be considered experimental. The OpenThread RCP is fully implemented and supported.

Security Information

Secure Vault Integration

When deployed to Secure Vault High devices, sensitive keys are protected using the Secure Vault Key Management functionality. The following table shows the protected keys and their storage protection characteristics.

Wrapped Key Exportable / Non-Exportable Notes
Thread Master Key Exportable Must be exportable to form the TLVs
PSKc Exportable Must be exportable to form the TLVs
Key Encryption Key Exportable Must be exportable to form the TLVs
MLE Key Non-Exportable
Temporary MLE Key Non-Exportable
MAC Previous Key Non-Exportable
MAC Current Key Non-Exportable
MAC Next Key Non-Exportable

 

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.

Security Advisories

To subscribe to Security Advisories, log in to the Silicon Labs customer portal, then select Account Home. Click HOME to go to the portal home page and then click the Manage Notifications tile. Make sure that ‘Software/Security Advisory Notices & Product Change Notices (PCNs)’ is checked, and that you are subscribed at minimum for your platform and protocol. Click Save to save any changes. The following figure is an example:SILICON-LABS-2.5.2.0-Open-Thread-SDK-FIG-1

Support

Development Kit customers are eligible for training and technical support. Use the Silicon Laboratories Thread web page to obtain infor-mation about all Silicon Labs OpenThread products and services, and to sign up for product support.
You can contact Silicon Laboratories support at http://www.silabs.com/support.

Thread Certification

This release has been qualified for Thread 1.3.0 with Thread Test Harness v60.0 (Member Release). For Thread Product certifications tied to this major release and associated patch releases (with no OpenThread stack updates), Silicon Labs recommends using the above TH version for qualification. Also included with this release is a set of OpenThread stack and PAL libraries that may be used for Thread certification by inheritance.SILICON-LABS-2.5.2.0-Open-Thread-SDK-FIG-2

IoT Portfolio

SW/HW

Quality

Support & Community

Disclaimer

Silicon Labs intends to provide customers with the latest, accurate, and in-depth documentation of all peripherals and modules available for system and software implementers using or intending to use Silicon Labs products. Characterization data, available modules and peripherals, memory sizes, and memory addresses refer to each specific device, and “Typical” parameters provided can and do vary in different applications. Application examples described herein are for illustrative purposes only. Silicon Labs reserves the right to make changes without further notice to the product information, specifications, and descriptions herein, and does not give warranties as to the accuracy or completeness of the included information. Without prior notification, Silicon Labs may update product firmware during the manufacturing process for security or reliability reasons. Such changes will not alter the specifications or the performance of the product. Silicon Labs shall have no liability for the consequences of the use of the information supplied in this document. This document does not imply or expressly grant any license to design or fabricate any integrated circuits. The products are not designed or authorized to be used within any FDA Class III devices, applications for which FDA premarket approval is required or Life Support Systems without the specific written consent of Silicon Labs. A “Life Support System” is any product or system intended to support or sustain life and/or health, which, if it fails, can be reasonably expected to result in significant personal injury or death. Silicon Labs products are not designed or authorized for military applications. Silicon Labs products shall under no circumstances be used in weapons of mass destruction including (but not limited to) nuclear, biological, or chemical weapons, or missiles capable of delivering such weapons. Silicon Labs disclaims all express and implied warranties and shall not be responsible or liable for any injuries or damages related to the use of a Silicon Labs product in such unauthorized applications.

Trademark Information

Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs®, and the Silicon Labs logo®, Bluegiga®, Bluegiga Logo®, EFM®, EFM32®, EFR, Ember®, Energy Micro, Energy Micro logo and combinations thereof, “the world’s most energy friendly microcontrollers”, Redpine Signals®, WiSeConnect, n-Link, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, Gecko OS, Gecko OS Studio, Precision32®, Simplicity Studio®, Telegesis, the Telegesis Logo®, USBXpress®, Zentri, the Zentri logo and Zentri DMS, Z-Wave®, and others are trademarks or registered trademarks of Silicon Labs. ARM, CORTEX, Cortex-M3, and THUMB are trademarks or registered trademarks of ARM Holdings. Keil is a registered trademark of ARM Limited. Wi-Fi is a registered trademark of the Wi-Fi Alliance. All other products or brand names mentioned herein are trademarks of their respective holders.

  • Silicon Laboratories Inc. 400 West Cesar Chavez Austin, TX 78701

USA

Documents / Resources

SILICON LABS 2.5.2.0 Open Thread SDK [pdf] Instructions
2.5.2.0 Open Thread SDK, Open Thread SDK, Thread SDK, SDK

References

Leave a comment

Your email address will not be published. Required fields are marked *