OpenThread is...
...an open-source implementation of the Thread networking protocol. 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.
...a Thread Certified Component, implementing all features defined in the Thread 1.1.1 specification. This specification defines an IPv6-based reliable, secure and low-power wireless device-to-device communication protocol for home applications.
More information about Thread can be found on threadgroup.org.
Want to try OpenThread? The quickest way to get started is to run through our Simulation Codelab, which covers all the basics, without the need for test hardware. Using VirtualBox and Vagrant on a Mac or Linux machine, you will learn:
wpantund
to manage a simulated Thread network featuring an NCPThe Codelab shows you how easy it is use to OpenThread to simulate a Thread network. Once complete:
OpenThread implements 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.
OpenThread supports both system-on-chip (SoC) and network co-processor (NCP) designs. Other features and enhancements include:
wpantund
- user-space NCP network interface driver/daemonwpantund
The development of OpenThread is ongoing to provide additional features not available in the standard. Check back regularly for new updates, or visit the openthread-announce Google Group.
Led by Nest, the following companies are contributing to the ongoing development of OpenThread:
OpenThread has been ported to several devices and platforms by both the OpenThread team and the community. Build examples for all supported platforms are included in the OpenThread project.
See the Wiki Platform page for more detailed information on supported platforms.
Desktop platforms can also be used to control and interface with a Thread network using OpenThread:
wpantund
provides an interface to an NCPIf you are interested in porting OpenThread to a new platform, see the Porting Guide for hardware requirements and detailed porting instructions.
A Border Router connects a Thread network to networks at different layers, such as WiFi or Ethernet. OpenThread Border Router provides end-to-end IP via routing between Thread devices and other external IP networks, as well as external Thread Commissioning.
Certification testing is done with the GRL Thread Test Harness software, available for download to Thread member companies.
Additional tools that extend the Test Harness are included in the OpenThread project:
OpenThread also provides a sniffer on the NCP build. The sniffer is exposed by the Spinel protocol and features:
wpantund
Explore the OpenThread Wiki for more in-depth documentation on building, testing, automation and tools.
There are numerous avenues for OpenThread support:
openthread
tagThe OpenThread repository is structured as follows:
Folder | Contents |
---|---|
doc | Spinel docs and Doxygen build file |
etc | Configuration files for other build systems (e.g. Visual Studio) |
examples | Sample applications and platforms demonstrating OpenThread |
include | Public API header files |
src | Core implementation of the Thread standard and related add-ons |
tests | Unit and Thread conformance tests |
third_party | Third-party code used by OpenThread |
tools | Helpful utilities related to the OpenThread project |
We would love for you to contribute to OpenThread and help make it even better than it is today! See the CONTRIBUTING.md
file for more information.
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.
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.