OpenThread
OpenThread Documentation
Silicon Labs Documentation | Release Notes | Open Source Documentation
What is OpenThread?
OpenThread released by Google is
-
an open-source implementation of the Thread networking protocol.** Google Nest has released OpenThread to make the technology used in Nest products more broadly available to developers to accelerate the development of products for the connected home.
-
OS and platform agnostic**, with a narrow platform abstraction layer and a small memory footprint, making it highly portable. It supports both system-on-chip (SoC) and network co-processor (NCP) designs.
-
a Thread Certified Component**, implementing all features defined in the Thread 1.1.1 specification, including all Thread networking layers (IPv6, 6LoWPAN, IEEE 802.15.4 with MAC security, Mesh Link Establishment, Mesh Routing) and device roles, as well as Border Router support.
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:
- Bugs and feature requests — submit to the Issue Tracker
- Stack Overflow — post questions using the openthread tag
- Google Groups — discussion and announcements at openthread-users
- The openthread-users Google Group is the recommended place for users to discuss OpenThread and interact directly with the OpenThread team.
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.
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 Co-Processor - 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 Co-processor (RCP) with multiprotocol and multi-PAN support, as well as how to run the Zigbee stack on the EFR32 as a network co-processor (NCP) alongside the OpenThread RCP.
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 Results for Multi-PAN RCP for OpenThread and Zigbee - Summarizes the results of simultaneous Thread and Zigbee throughput performance testing for the concurrent multiprotocol / multi-PAN RCP, running both OpenThread and Zigbee on the host processor.
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.