ESP32 Zigbee Coordinator (ZBOSS) ZBOSS
Firmware that turns a stock ESP32-C6 into a full Zigbee coordinator — the ZBOSS NCP protocol for Zigbee2MQTT, over USB or UART.
Version v1.5.77 runs on: ESP32-C6, ESP32-C5, ESP32-H2
ESP32 Zigbee Coordinator (ZBOSS)
This open source firmware turns a stock ESP32-C6 (or -H2) into a full Zigbee coordinator. It implements the ZBOSS NCP serial protocol, so a host such as Zigbee2MQTT drives the chip as its coordinator over USB or UART. No dedicated dongle is needed — a plain development board works, tested among others on the Seeed XIAO ESP32-C6.
This fork (tostmann/esp-coordinator) is the actively maintained line; the original andryblack/esp-coordinator repository is archived.
Features
- Up to 200 direct children — the firmware uses the 512 KB of SRAM on the ESP32-C6 and is configured for 200 direct children, against the 20–40 of older chips such as the TI CC2531.
- Transmit power up to +20 dBm — the ESP32-C6 has an integrated power amplifier; no external PA required.
- Wi-Fi 6 and Zigbee on one chip — both radio layers on-die.
- Native NVRAM backup and restore — the complete network state (PAN, extended PAN, channel, network key, frame counters, neighbour table) as a backup. Replace a dead chip, restore the backup, and the paired devices come back without re-pairing.
- USB and UART in parallel — the NCP frame stream is available on USB-Serial/JTAG and on a hardware UART at the same time (default TX = GPIO22, RX = GPIO23, 115200 8N1). That lets the coordinator hang directly off a host’s TTL header — an OpenWRT router, a Raspberry Pi header, ser2net.
- ZBOSS stack — a commercial, certified stack.
Flashing
- Web installer (recommended): ESP-Coordinator web flasher — straight from the browser (Chrome / Edge / Opera), nothing to install.
- CLI:
esptool.py --chip esp32c6 write_flash 0x0 binaries/factory.bin
Zigbee2MQTT
The firmware works with stock Zigbee2MQTT (adapter: zboss). For automatic NVRAM snapshots and smooth hardware migration, the adapted Docker image ghcr.io/tostmann/zigbee2mqtt-esp32:latest is the better fit.
serial: port: /dev/serial/by-id/usb-Espressif_USB_JTAG_serial_debug_unit_... adapter: zbossadvanced: transmit_power: 20Details, UART wiring and the migration guide are in the documentation and the GitHub README.
Experimental
- Native Wi-Fi (coexistence): a separate build lets the coordinator join a WLAN itself and offer the NCP over TCP, with no USB host at all. Wi-Fi coex flasher. Single-radio coexistence — a test setup, not production.
- Home Assistant ZHA: through the
tostmann/zha-zboss-espcomponent (zigpy-zboss). For production use the Zigbee2MQTT path remains the recommended one.
Availability
The firmware is open source and runs on off-the-shelf ESP32-C6 boards — no dedicated hardware required. As of this page, no busware hardware for it is listed in the shop.
Discussion
Questions, experiences, bug reports? Discussion happens in GitHub Discussions : Open the discussion on GitHub ↗