Skip to main content

Command Palette

Search for a command to run...

Trying to use a former Zigbee Coordinator as a Repeater

Updated
2 min read

Ran into an issue when trying to reuse a Sonoff ZBDongle-E Zigbee dongle as a repeater ("router" in Zigbee terms) and am sharing my findings here.

Context

This dongle was previously used as the actual central coordinator for my Zigbee mesh, but I upgraded to a different coordinator. To keep the network as-is, I had the new coordinator clone the IEEE address of this dongle so everything would think they're still communicating with the same coordinator.

However, I wanted to use the dongle as a router because the existing mains-powered devices were quite bad at being routers. Since the new coordinator cloned the dongle's IEEE address, the dongle's own address now must change to something new.

The official router firmware is hosted on their GitHub, and there are steps available to edit the IEEE address. Usually the process is:

  1. While still on the coordinator firmware (NCP), use one of various tools (such as universal-silabs-flasher) to write a new IEEE address to the dongle. The address can only be changed while on the NCP firmware.

  2. Flash the Router firmware onto the dongle.

  3. Add the dongle to your Zigbee network.

Easy, right? Well...

The instructions we can find are inadequate. The router firmware ignores the new address and continues using the factory-original address. Reports of needing to use the "Force" option did not help.

Even ChatGPT gave up:

Most reliable conclusion: this ZBDongle-E cannot safely be used as a router in the same mesh where the replacement coordinator cloned its factory IEEE.

Some deduction

The key observation to make is that in the repo, the router firmware is 4 years old while the NCP firmware has been updated as recently as last year.

This gave me the hunch: What if the newer NCP firmware handles address-edits differently? Perhaps they store the changed address in a different location that they would know to read from, but that the 4 year old router firmware is unaware?

Would the 4 year old NCP firmware write the changed address to the location that the 4 year old router firmware checks? As it turns out, YES!

Solution

The trick is you have to flash the original NCP firmware onto the dongle before you write the new IEEE address, then the Router firmware will actually see the change.

Hopefully this helps someone save an hour of banging your head!