IEEE 802.15.4

Introduction

IEEE 802.15.4 is a technical standard which defines the operation of low-rate wireless personal area networks (LR-WPANs). For a more detailed overview of this standard, see the IEEE 802.15.4 Wikipedia article.

The most recent version of the standard is accessible through the IEEE GET Program. You need to create a free IEEE account and can then downloading it.

We’re currently following the IEEE 802.15.4-2020 specification. This version is backwards compatible with IEEE 802.15.4-2015, parts of which are contained in the Thread protocol stack. The 2020 version also includes prior extensions that were accepted into the standard, namely IEEE 802.15.4g (SUN FSK) and IEEE 802.15.4e (TSCH) which are of relevance to industrial IoT and automation. For recent developments in UWB ranging technology, see IEEE 802.15.4z which is not yet integrated into the standard’s mainline.

Whenever sections from the standard are cited in the documentation, they refer to IEEE 802.15.4-2020 section, table and figure numbering - unless otherwise specified.

Zephyr supports both, native IEEE 802.15.4 and Thread, with 6LoWPAN. Zephyr’s Thread protocol implementation is based on OpenThread. The IPv6 header compression in 6LoWPAN is used for native IEEE 802.15.4.

Supported Drivers

Zephyr includes a number of in-tree IEEE 802.15.4 radio drivers for various hardware platforms. The following table provides an overview of all available drivers, their vendors, supported frequency bands, bus interfaces, and the Kconfig option used to enable each driver.

IEEE 802.15.4 In-Tree Radio Drivers

Driver

Vendor

Compatible

Frequency Band

Bus

CC1200

Texas Instruments

ti,cc1200

Sub-GHz

SPI

CC13xx/CC26xx

Texas Instruments

ti,cc13xx-cc26xx-ieee802154

2.4 GHz

On-chip

CC13xx/CC26xx Sub-GHz

Texas Instruments

ti,cc13xx-cc26xx-ieee802154-subghz

Sub-GHz

On-chip

CC2520

Texas Instruments

ti,cc2520

2.4 GHz

SPI

DW1000

Decawave (Qorvo)

decawave,dw1000

UWB (3.5–6.5 GHz)

SPI

ESP32

Espressif

espressif,esp32-ieee802154

2.4 GHz

On-chip

KW41Z

NXP

nxp,kw41z-ieee802154

2.4 GHz

On-chip

MCR20A

NXP

nxp,mcr20a

2.4 GHz

SPI

MCXW

NXP

nxp,mcxw-ieee802154

2.4 GHz

On-chip

nRF5

Nordic Semiconductor

nordic,nrf-ieee802154

2.4 GHz

On-chip

RF2XX (AT86RF2xx)

Atmel (Microchip)

atmel,rf2xx

2.4 GHz / Sub-GHz

SPI

STM32WBA

STMicroelectronics

st,stm32wba-ieee802154

2.4 GHz

On-chip

Telink B91

Telink Semiconductor

telink,b91-zb

2.4 GHz

On-chip

UART Pipe

Virtual (QEMU)

zephyr,ieee802154-uart-pipe

N/A (emulated)

UART

Note

The UART Pipe driver is a virtual driver used for testing IEEE 802.15.4 networking in QEMU environments. It is not intended for use with real radio hardware.

For detailed configuration options of each driver, refer to the corresponding Kconfig file in drivers/ieee802154/.

API Reference

IEEE 802.15.4 API Overview

Gives an introduction and overview over the whole IEEE 802.15.4 subsystem and all of its APIs, configuration and user interfaces for all audiences.

IEEE 802.15.4 and Thread APIs

IEEE 802.15.4 Management API

This is the main subsystem-specific API of interest to IEEE 802.15.4 application developers as it allows to configure the IEEE 802.15.4 subsystem at runtime. Other relevant interfaces for application developers are the typical shell, socket, Kconfig and devicetree APIs that can be accessed through Zephyr’s generic subsystem-independent documentation. Look out for IEEE802154/ieee802154 prefixes there.

IEEE 802.15.4 Net Management

IEEE 802.15.4 Driver API

This is the main API of interest to IEEE 802.15.4 driver developers.

IEEE 802.15.4 Drivers

IEEE 802.15.4 L2 / Native Stack API

This documents the IEEE 802.15.4 L2 native stack, which neither applications nor drivers will ever access directly. It is called internally by Zephyr’s upper network layers (L3+), its socket and network context abstractions. This API is therefore of interest to IEEE 802.15.4 subsystem contributors only.

IEEE 802.15.4 L2

OpenThread L2 Adaptation Layer API

Zephyr’s OpenThread L2 platform adaptation layer glues the external OpenThread stack together with Zephyr’s IEEE 802.15.4 protocol agnostic driver API. This API is of interest to OpenThread L2 subsystem contributors only.

The OpenThread API is part of the Thread protocol subsystem and documented there.