* initial commit of cc2650 example code * fixed the build order of cc2650 files The ccfg struct was not being placed at the end of flash, this caused the devices to become locked when reset after being programmed or flashed with FlashProgrammer 2. * Texas Instruments is not a subsidairy of Qualcomm * added build instructions for the cc2650 platform * moved to using 'VerifyOrExit' in cc2650 platform layer to match the rest of the codebase * fixed build error from using the VerifyOrExit macro * Using prebuilt gcc lib * Moved cc26xxware to `thrid_party` * Using directory based includes * fixed driverlib name extension error * refactored cc2650 radio module to use interrupts The use of volatile structs was being ignored by gcc's size optomization flag. Refactored the recieve, transmit, and setup functions to use the LAST_COMMAND_DONE and LAST_FG_COMMAND_DONE interrupts * updated function declarations to specify void parameters * added doxygen comments to the platform layer cc2650 * fixed spelling issue * Migrated mbedtls to use the hardware AES engine and ROM SHA code for the cc2650 platform * Add Minimal Thread Device to build. * Merge pull request #10 in TIOP/openthread from feature/TIOP-10-use-the-ack-reception-functionality to master TIOP-10 | ack reception. Squashed commit of the following: commit 48e7c0f72089b5e670b25d70d3e86929ec5a9a26 Author: Seth Rickard <s-rickard@ti.com> Date: Wed Jan 4 14:41:57 2017 -0800 Added RX ACK command Added the IEEE_RX_ACK command as the next operation after a transmit for the CC2650 platform. This allows the Radio Core to handle all ACK reception instead of the Main Core * Merge pull request #11 in TIOP/openthread from bugfix/TIOP-16-jenkins-support-v1 to master TIOP-16 | Jenkins Support Squashed commit of the following: commit acb2fa06aa4316adaf077c3bf9d2e260d74b0af4 Author: Duane Ellis <d-ellis@ti.com> Date: Wed Jan 4 15:54:28 2017 -0800 TIOP-16 | fix tabs and sh-bang commit 82679dc01414155058e9794a0c1b51139706e771 Author: Duane Ellis <d-ellis@ti.com> Date: Wed Jan 4 15:07:48 2017 -0800 TIOP-16 | jenkins support * Merge pull request #12 in TIOP/openthread from feature/TIOP-9-use-csma-ca-functionality-of-the-cm0 to master TIOP-9 | using CSMA-CA radio instruction to implement optional radio layer functionality. Squashed commit of the following: commit 85d7dbd7eba90d198577aa86c220688f1075f02d Author: Seth Rickard <s-rickard@ti.com> Date: Thu Jan 5 16:26:01 2017 -0800 Added Retry mechanism commit 425d8a0bbcaaa025b4ae40c7a5926ccf78e00f21 Merge: 276eec8 d318ac8 Author: Seth Rickard <s-rickard@ti.com> Date: Wed Jan 4 16:10:27 2017 -0800 Merge changes from adding rx ack command for the cc2650 commit 276eec82a6cbcfdfc45cdd9bd30a7413137059be Author: Seth Rickard <s-rickard@ti.com> Date: Tue Jan 3 15:54:44 2017 -0800 added CM0 CSMA-CA functionality * Merge pull request #13 in TIOP/openthread from feature/TIOP-17-astyle-code-style-update to master Squashed commit of the following: commit cbe96d89d3326395f086de2644ee86d8010d8bfb Author: Seth Rickard <s-rickard@ti.com> Date: Mon Jan 9 15:55:36 2017 -0800 ran astyle for cc2650 platform added logic to cli and ncp Makefile.am's to ignore configuration files in cc26xxware * updated TI licenses * Merge pull request #15 in TIOP/openthread from feature/TIOP-19-support-energy-detect-scans to master TIOP-19 | support energy detect scans on cc2650 Squashed commit of the following: commit dace7ec3d3214947af9363aaf348ab45da263d8e Merge: a8f982b d5c4746 Author: Seth Rickard <s-rickard@ti.com> Date: Wed Jan 11 16:08:50 2017 -0800 Merge changes from master commit a8f982bbbe31a2fba1a514b29dde5947da75e19d Author: Seth Rickard <s-rickard@ti.com> Date: Wed Jan 11 12:56:58 2017 -0800 added ieee energy detect command * Merge pull request #14 in TIOP/openthread from bugfix/TIOP-18-fix-source-matching-structure to master TIOP-18 | Fixed issue with the cc2650 RX command's source match structure. This was used in the autopend functionality Squashed commit of the following: commit 081b1e37a7b2c0d64260aa904819a9a2b84b11d6 Merge: bea5ecd d5c4746 Author: Seth Rickard <s-rickard@ti.com> Date: Wed Jan 11 15:57:28 2017 -0800 Merge updates from master commit bea5ecd727a5c01fd5c735c37d92496d0e4e2454 Author: Seth Rickard <s-rickard@ti.com> Date: Tue Jan 10 18:03:11 2017 -0800 structure cleanup and implementation of maxRssi commit fadc29dd178d087fe0d567dcdd22a658d5f3b2a0 Author: Seth Rickard <s-rickard@ti.com> Date: Tue Jan 10 16:37:33 2017 -0800 fixed structure definitions * Merge pull request #16 in TIOP/openthread from feature/TIOP-21-match-function-and-variable-naming to master TIOP-21 | match function and variable naming conventions of OpenThread Squashed commit of the following: commit 743206f20a63c225fee12d4d9493600d9c2d89ad Author: Seth Rickard <s-rickard@ti.com> Date: Thu Jan 26 15:25:37 2017 -0800 added static keyword to static vars fixed typo changed variables `interrupts_disabled` to `interruptsWereDisabled` to increase clarity commit ff4562352f01a2f199351edb11ece713ba07df22 Author: Seth Rickard <s-rickard@ti.com> Date: Tue Jan 24 18:13:38 2017 -0800 fixed interrupts_disable early return error commit 96170fda2c8179425ed57d5135b8ce2ad78770d1 Author: Seth Rickard <s-rickard@ti.com> Date: Tue Jan 24 18:08:24 2017 -0800 ran astyle commit 48ee9923804a898a2a0847ee5504190a183ccb4e Author: Seth Rickard <s-rickard@ti.com> Date: Tue Jan 24 17:57:36 2017 -0800 removed enabling state refactored the functions to syncronously wait for the RAT Start and Radio Setup commands to return. commit 8c709bd912c33cb20f0e8ebead37251c4cc542c8 Author: Seth Rickard <s-rickard@ti.com> Date: Tue Jan 24 17:20:02 2017 -0800 rolled state global booleans into cc2650 state enum commit 5332494a233eb518399df459791d184533664d3e Author: Seth Rickard <s-rickard@ti.com> Date: Mon Jan 23 18:12:58 2017 -0800 moved #define to enum commit cc2dbf184a0df84b930ca2cfc3a771f5eab06eae Author: Seth Rickard <s-rickard@ti.com> Date: Mon Jan 23 16:39:17 2017 -0800 changed function names and static variables to Hungarian Notation * Updated license information for cc2650 Chaned author of cc2650 platform adaptation layer to `The OpenThread Authors` Moved cc26xxware to ti third_party subfolder and added README.md for cc26xxware * Reverted the travis script changes Removed support for jenkins running travis scripts * updated licenses and build flow * updated code style * removed cc26xxware doccumentation * added constant assignment structures for radio commands changed #if styling to match ot conventions * added cc2650 target in travis scripts * disabled gcc4.9 build for cc2650 * updated readme to reflect recommended toolchain
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.
The Thread 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.
Features
- Highly portable: OS and platform agnostic with a radio abstraction layer
- Implements the End Device, Router, Leader and Border Router roles
- Small memory footprint
OpenThread implements all Thread networking layers including IPv6, 6LoWPAN, IEEE 802.15.4 with MAC security, Mesh Link Establishment, and Mesh Routing.
Who is supporting OpenThread
Nest, along with ARM, Atmel, a subsidiary of Microchip Technology, Dialog Semiconductor, Microsoft Corporation, Nordic Semiconductor, Qualcomm Technologies, Inc. (a subsidiary of Qualcomm Incorporated), and Texas Instruments Incorporated are contributing to the ongoing development of OpenThread.
Getting started
The easiest way to get started is to run the CLI example in
/examples/apps/cli. See the
CLI example README
for more details.
What's included
In the repo you'll find the following directories and files:
| File/Folder | Provides |
|---|---|
doc |
Code and protocol docs |
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 |
Documentation
The Doxygen reference docs are hosted online and generated as part of the build.
Getting help
Submit bugs and feature requests to issue tracker. Usage
questions? Post your questions to Stack Overflow using the
openthread tag. We also use Google Groups for discussion
and announcements:
- openthread-announce - subscribe for release notes and new updates on OpenThread
- openthread-users - the best place for users to discuss OpenThread and interact with the OpenThread team
- openthread-devel - team members discuss the on-going development of OpenThread
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.
Contributing
See the CONTRIBUTING.md file for more information.
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.

