OpenThread

OpenThread Documentation

Silicon Labs Documentation | Release Notes | Open Source Documentation

What is OpenThread?

OpenThread released by Google is

More information about Thread can be found at threadgroup.org. Thread is a registered trademark of the Thread Group, Inc.

Who supports OpenThread?

Getting started

All end-user documentation and guides are located at openthread.io. If you're looking to do things like...

Learn more about OpenThread features and enhancements Use OpenThread in your products Learn how to build and configure a Thread network Port OpenThread to a new platform Build an application on top of OpenThread Certify a product using OpenThread ...then openthread.io is the place for you.

Note: For users in China, end-user documentation is available at openthread.google.cn.

If you're interested in contributing to OpenThread, read on.

Contributing

We would love for you to contribute to OpenThread and help make it even better than it is today! See our Contributing Guidelines for more information.

Contributors are required to abide by our Code of Conduct and Coding Conventions and Style Guide.

Versioning

OpenThread follows the Semantic Versioning guidelines for release cycle transparency and to maintain backwards compatibility. OpenThread's versioning is independent of the Thread protocol specification version but will clearly indicate which version of the specification it currently supports.

License

OpenThread is released under the BSD 3-Clause license. See the LICENSE file for more information.

Please only use the OpenThread name and marks when accurately referencing this software distribution. Do not use the marks in a way that suggests you are endorsed by or otherwise affiliated with Nest, Google, or The Thread Group.

Need help?

There are numerous avenues for OpenThread support:

Silicon Labs Documentation

Getting Started

Getting Started with Simplicity Studio 5 and the Gecko SDK - Describes downloading development tools and the Gecko SDK, which includes Silicon Labs OpenThread. Introduces the Simplicity Studio 5 interface.

QSG170: Silicon Labs OpenThread Quick Start Guide - Provides basic information on configuring, building, and installing applications using the Silicon Labs OpenThread stack.

UG103.11: Thread Fundamentals - For those new to OpenThread, includes a brief background on the emergence of Thread, provides a technology overview, and describes some key features of Thread to consider when implementing a Thread solution.

UG103.01: Wireless Networking Fundamentals - For those new to wireless networking, introduces some fundamental concepts of wireless networking. These concepts are referred to in other Fundamentals documents.

Developing with OpenThread

AN1256: Using the Silicon Labs RCP with the OpenThread Border Router - Describes using the OpenThread Border Router GitHub repository and the Silicon Labs OpenThread Radio Co-Processor (RCP) application to create a Thread Border Router.

AN1350: Single-Band Proprietary Sub-GHz Support with OpenThread - Describes how to configure OpenThread applications to operate on a proprietary sub-GHz band using the Silicon Labs OpenThread SDK and Simplicity Studio 5 with a compatible mainboard. It also provides details on the proprietary radio PHY supported with this feature.

AN1264: Using OpenThread with Free RTOS - Describes how to build OpenThread applications with FreeRTOS.

AN1351: Using the Co-Processor Communication Daemon (CPCd) - Documents how to configure and run the CPC daemon (CPCd) on Linux. Does not cover how to use the CPC Library to write applications that interact with CPCd.

AN1372: Configuring OpenThread Applications for Thread 1.3 - Provides instructions for configuring OpenThread SoC and Border Router applications to use Thread 1.3 features.

UG162: Simplicity Commander Reference Guide - Describes how and when to use Simplicity Commander's Command-Line Interface.

Multiprotocol

UG103.16: Multiprotocol Fundamentals - Describes the four multiprotocol modes, discusses considerations when selecting protocols for multiprotocol implementations, and reviews the Radio Scheduler, a required component of a dynamic multiprotocol solution.

AN1265: Dynamic Multiprotocol Development with Bluetooth and OpenThread in GSDK v3.x - Provides details on developing Dynamic Multiprotocol applications using Bluetooth and OpenThread.

UG305: Dynamic Multiprotocol User's Guide - Describes how to implement a dynamic multiprotocol solution.

AN1333: Running Zigbee, OpenThread, and Bluetooth Concurrently on a Linux Host with a Multiprotocol RCP - Describes how to run any combination of Zigbee EmberZNet, OpenThread, and Bluetooth networking stacks on a Linux host processor, interfacing with a single EFR32 Radio Coprocessor (RCP) with multiprotocol and multi-PAN support.

Coexistence

UG103.17: Wi-Fi Coexistence Fundamentals - Introduces methods to improve the coexistence of 2.4 GHz IEEE 802.11b/g/n Wi-Fi and other 2.4 GHz radios such as Bluetooth, Bluetooth Mesh, Bluetooth Low Energy, and IEEE 802.15.4-based radios such as Zigbee and OpenThread

AN1017: Zigbee and Thread Coexistence with Wi-Fi - Details the impact of Wi-Fi on Zigbee and Thread, and methods to improve coexistence. First, methods to improve coexistence without direct interaction between Zigbee/Thread and Wi-Fi radios are described. Second, Silicon Labs's Packet Traffic Arbitration (PTA) support to coordinate 2.5 GHz RF traffic for co-located Zigbee/Thread and Wi-Fi radios is described (for the EFR32MG only).

AN1294: Configuring Antenna Diversity for OpenThread - Describes how to use Project Configurator and Component Editor in Simplicity Studio 5 to configure antenna diversity in OpenThread applications.

Security

UG103.05: IoT Endpoint Security Fundamentals - Introduces the security concepts that must be considered when implementing an Internet of Things (IoT) system. Using the ioXt Alliance's eight security principles as a structure, it clearly delineates the solutions Silicon Labs provides to support endpoint security and what you must do outside of the Silicon Labs framework.

AN1329: Using Silicon Labs Secure Vault Features with OpenThread - Describes how Secure Vault features are leveraged in OpenThread applications. It focuses on specific PSA features and emphasizes how these are integrated into the OpenThread stack.

AN1190: Series 2 Secure Debug - Describes how to lock and unlock the debug access of EFR32 Gecko Series 2 devices. Many aspects of the debug access, including the secure debug unlock are described. The Debug Challenge Interface (DCI) and Secure Engine (SE) Mailbox Interface for locking and unlocking debug access are also included.

AN1222: Production Programming of Series 2 Devices - Provides details on programming, provisioning, and configuring Series 2 devices in production environments. Covers Secure Engine Subsystem of Series 2 devices, which runs easily upgradeable Secure Engine (SE) or Virtual Secure Engine (VSE) firmware.

AN1247: Anti-Tamper Protection Configuration and Use - Shows how to program, provision, and configure the anti-tamper module on EFR32 Series 2 devices with Secure Vault.

AN1268: Authenticating Silicon Labs Devices using Device Certificates - How to authenticate an EFR32 Series 2 device with Secure Vault, using secure device certificates and signatures.

AN1271: Secure Key Storage - Explains how to securely "wrap" keys in EFR32 Series 2 devices with Secure Vault, so they can be stored in non-volatile storage.

AN1303: Programming Series 2 Devices Using the Debug Challenge Interface (DCI) and Serial Wire Debug (SWD) - Describes how to provision and configure Series 2 devices through the DCI and SWD.

AN1311: Integrating Crypto Functionality Using PSA Crypto Compared to Mbed TLS - Describes how to integrate crypto functionality into applications using PSA Crypto compared to Mbed TLS.

Bootloading

UG103.06: Bootloader Fundamentals - Introduces bootloading for Silicon Labs networking devices. Discusses the Gecko Bootloader as well as legacy Ember and Bluetooth bootloaders, and describes the file formats used by each.

UG489: Silicon Labs Gecko Bootloader User's Guide for GSDK 4.0 and Higher - Describes the high-level implementation of the Silicon Labs Gecko Bootloader for EFR32 SoCs and NCPs, and provides information on how to get started using the Gecko Bootloader with Silicon Labs wireless protocol stacks in GSDK 4.0 and higher.

AN1326: Transitioning to the Updated Gecko Bootloader in GSDK 4.0 and Higher - Gecko Bootloader v2.x, introduced in GSDK 4.0, contains a number of changes compared to Gecko Bootloader v1.x. This document describes the differences between the versions, including how to configure the new Gecko Bootloader in Simplicity Studio 5.

AN1218: Series 2 Secure Boot with RTSL - Contains detailed information on configuring and using the Secure Boot with hardware Root of Trust and Secure Loader on Series 2 devices, including how to provision the signing key. This is a companion document to UG266: Silicon Labs Gecko Bootloader User's Guide.

Non-Volatile Data Storage

UG103.07: Non-Volatile Data Storage Fundamentals - Introduces non-volatile data storage using flash and the three different storage implementations offered for Silicon Labs microcontrollers and SoCs: Simulated EEPROM, PS Store, and NVM3.

AN1135: Using Third Generation Non-Volatile Memory (NVM3) Data Storage - Explains how NVM3 can be used as non-volatile data storage in various protocol implementations.

Testing

AN718: Manufacturing Test Overview - Provides a high-level description of the different options for integrating RF testing and characterization into standard test flows. It is intended for customers who are moving from the early prototype development stage to the manufacturing production environment and need assistance with manufacturing test.

AN700.1: Manufacturing Test Guidelines for the EFR32 - Details the different options for integrating RF testing and characterization into standard test flows.

Performance

AN1142: Mesh Network Performance Comparison - Reviews the Zigbee, Thread, and Bluetooth mesh networks to evaluate their differences in performance and behavior.

AN1141: Thread Mesh Network Performance - Details methods for testing Thread mesh network performance; results are intended to provide guidance on design practices and principles as well as expected field performance results.