Porting OpenThread to New Hardware Platforms

View source on GitHub

Porting the OpenThread stack to a new hardware platform consists of a few steps:

  1. Set up the build environment
  2. Define CMake Rules
  3. Implement Platform Abstraction Layer APIs
  4. Implement advanced features (Hardware Abstraction Layer)
  5. Validate the port
  6. Certification and README

Hardware platform requirements

OpenThread requires the following platform services:

  • IEEE 802.15.4-2006 2.4 GHz radio
    • Send and receive IEEE 802.15.4 frames
    • Generate IEEE 802.15.4 Acknowledgment frames
    • Provide Received Signal Strength Indicator (RSSI) measurements on received frames
  • A millisecond-resolution free-running timer with alarm
  • Non-volatile storage for storing network configuration settings
  • A true random number generator (TRNG)

Example builds

Several example builds are provided in the OpenThread repository. For more information, see Platforms.

For examples of a few working ports, see ot-cc2538, ot-efr32, and ot-nrf528xx. ot-cc2538 might be a good place to start as it only implements a single platform. ot-efr32 and ot-nrf528xx are a bit more complicated as they implement support for multiple platforms.