# Trying to use a former Zigbee Coordinator as a Repeater

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](https://github.com/itead/Sonoff_Zigbee_Dongle_Firmware/tree/master/Dongle-E/Router) 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](https://community.home-assistant.io/t/sonoff-zigbee-dongle-e-with-router-fw-discovered-as-the-existing-coordinator-in-zha/977866/6) 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](https://github.com/itead/Sonoff_Zigbee_Dongle_Firmware/tree/master/Dongle-E), 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](https://github.com/itead/Sonoff_Zigbee_Dongle_Firmware/tree/master/Dongle-E/NCP) 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!
