This tutorial introduces how to use the Module Gateway H2 together with the CoreS3 controller to run the ESP Zigbee Host/NCP example program. ESP Zigbee NCP (Network Co-Processor) is a network co-processor mode that runs the Zigbee protocol stack on a separate processor and communicates with the main processor via a serial port. This architecture allows the main processor to focus on application-layer logic while delegating Zigbee network-related processing to the co-processor. Refer to the tutorial below to flash the ESP Zigbee NCP firmware to the Module Gateway H2 and the ESP Zigbee Host firmware to the CoreS3, thereby creating a Coordinator node.
v5.3.1 for compiling this example.git clone --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
git checkout v5.3.1 # recommend
./install.sh
. ./export.sh clone --recursive to recursively clone the ESP-Zigbee-SDK repositorygit clone --recursive https://github.com/espressif/esp-zigbee-sdk.git
cd esp-zigbee-sdk 


idf.py depend on ESP‑IDF. Before running the commands, execute . ./export.sh in ESP‑IDF to activate the relevant environment variables. For detailed instructions, please refer to the ESP-IDF - Getting Started with ESP32S3 Tutorial.esp32h2.cd examples/esp_zigbee_ncp
idf.py set-target esp32h2
idf.py menuconfig idf.py menuconfig to enter the configuration menu. In menuconfig, configure the device pin settings under:Component config → Zigbee Network Co-processor- Component config → Zigbee Network Co-processor
- UART RX Pin: 23
- UART TX Pin: 24
- Component config → ESP Zigbee → Configure the Zigbee device type
- Zigbee Coordinator or Router device # or Zigbee End Device
idf.py build
idf.py erase_flash
idf.py flash # modify according to your actual port esp32s3.cd examples/esp_zigbee_host
idf.py set-target esp32s3 # for CoreS3
idf.py menuconfig idf.py menuconfig to enter the configuration menu. In menuconfig, configure the device pin settings under:Component config → Zigbee NCP Host- Component config → Zigbee NCP Host
- UART RX Pin: 10
- UART TX Pin: 17
idf.py build
idf.py flash idf.py monitor or other serial debugging tools at 115200bps to view the runtime logs.
Normal runtime log contents: