DeterministicESPAsyncWebServer v6.27.1
Zero-allocation, bounded-execution async HTTP server for ESP32
Loading...
Searching...
No Matches
zigbee.h File Reference

Zigbee EZSP / ASH framing codec (DETWS_ENABLE_ZIGBEE) - Silicon Labs NCP. More...

#include "ServerConfig.h"

Go to the source code of this file.

Detailed Description

Zigbee EZSP / ASH framing codec (DETWS_ENABLE_ZIGBEE) - Silicon Labs NCP.

The ASH (Asynchronous Serial Host, UG101) data-link layer that carries EZSP frames to a Silicon Labs EmberZNet network co-processor over UART - a Zigbee network bridged to the web. Each ASH frame is a control byte + payload + a CRC-16/CCITT, byte-stuffed so the reserved control bytes never appear in the body, and terminated by a Flag byte (0x7E):

[control | payload | CRC16(hi,lo)] –byte-stuffed--> ... | 0x7E

The reserved bytes that get stuffed (as 0x7D followed by byte XOR 0x20) are the Flag 0x7E, the Escape 0x7D, XON 0x11, XOFF 0x13, Substitute 0x18, and Cancel 0x1A.

ash_frame_encode() wraps a control byte + payload into a stuffed, CRC'd, flag-terminated frame; ash_frame_decode() finds the flag, removes the stuffing, and verifies the CRC. ash_crc16() is the shared CRC. The EZSP command the payload carries (version query, an incoming APS message, a network-init) is the application's. Pure - you carry the bytes over your UART - so it is fully host-testable.

Author
Douglas Quigg (dstroy0)
Date
2026

Definition in file zigbee.h.