Skip to content
MCU Atlas
ESP32ESP32

XZG: ESP32 network Zigbee coordinator firmware

Firmware for ESP32 + CC2652 boards that turns them into Ethernet or Wi-Fi Zigbee coordinators for Zigbee2MQTT and ZHA.

Difficulty:IntermediateCost:Source available

Key Facts

  • Chip: ESP32
  • Radio: TI CC2652P/CC2652P7
  • Uplink: Ethernet (LAN8720) or Wi-Fi
  • Software: Zigbee2MQTT, ZHA

About This Project

XZG unifies earlier community Zigbee gateway projects into one firmware for ESP32 boards paired with a TI CC2652 radio. The ESP32 bridges the radio's serial port over Ethernet or Wi-Fi so Home Assistant (ZHA) or Zigbee2MQTT can use it remotely, letting you place the coordinator centrally in the house. A web UI handles radio firmware updates and settings.

Source & Attribution

Source: GitHub
License: GPL-3.0
Last verified: 10/16/2026
XZG: ESP32 network Zigbee coordinator firmware

Illustration

How to Build It
XZG is firmware for ESP32-based network Zigbee coordinators with a TI CC2652P or CC2652P7 radio. It exposes the radio over Ethernet or Wi-Fi, so Zigbee2MQTT or ZHA can use it from anywhere on your network, and adds a web UI for updates and settings.

Parts Needed

  • ESP32 coordinator board with a CC2652P/P7 module (e.g. SLZB or ZigStar-style)
  • LAN8720 Ethernet (recommended) or Wi-Fi
  • Network cable / PoE if supported
  • Home Assistant with ZHA or Zigbee2MQTT

Steps

  1. 1

    Flash XZG

    Open the XZG Web Flasher, connect the ESP32 over USB and install the build for your hardware. Follow the guide for your device model.

  2. 2

    Connect to the network

    Plug in Ethernet (preferred for stability), or join the setup hotspot to configure Wi-Fi.

  3. 3

    Open the web UI

    Browse to the coordinator's IP to update the Zigbee radio firmware and set network options. Note the TCP port (6638 by default).

  4. 4

    Point your Zigbee stack at it

    In Zigbee2MQTT set serial port to tcp://IP:6638, or in ZHA choose a socket connection to the same address.

  5. 5

    Build from source (optional)

    Install Python, npm and PlatformIO, then run pio run (add -e env_name -t upload to build one environment and flash it).

Parts List (BOM)
Parts list inferred by MCU Atlas — check the original
inferred
PartQtyRoleEst. PriceBuy
1main board$5–$10View
1radio$10–$20View
1ethernet$3–$6View
Estimated Total$15–$30 USD

Not included: 3D-printed case, wire, solder, USB cable

Download CSV

Related Projects

Watchy: open-source ESP32 e-ink smartwatch
Illustration
ESP32
An open-source smartwatch with a 1.54in e-paper screen and ESP32, hackable watch faces in Arduino.
Beginner·Under $15·Code
2 parts listed
Low-power ESP32 e-paper weather display (7.5in)
Illustration
ESP32
A wall-mounted 7.5in e-paper weather display on an ESP32 that runs for months on one battery charge.
Intermediate·Cost varies·Code
5 parts listed
OpenEPaperLink: reuse e-ink shelf labels with an ESP32 access point
Illustration
ESP32ESP32-S3
Turns cheap second-hand electronic shelf labels into a Wi-Fi-managed e-ink display fleet via an ESP32 access point.
Advanced·Under $15·Code
3 parts listed