Copying the ieee address of an adapter
When migrating from one stick to another it is important that the new stick uses the same ieee address as the old stick. Some devices lookup the coordinator by its ieee address, this fails when the ieee address of the coordinator changes. There are various tools which can do this.
First you have to determine the ieee address of your old stick, there are 2 ways to do this:
- Open the frontend, go to "Settings" -> "About" -> "Coordinator IEEE Address"
- Open the
data/database.db; on the first line you will find the coordinator ieee address:
{"id":1,"type":"Coordinator","ieeeAddr":"0x00124b000e89686d","nwkAddr":0...
Note that the primary ieee address will remain the same and these instructions only change the secondary ieee address. The tools below generally only show the primary ieee address, so it can appear that the changes aren't taking effect. Setting the secondary ieee address via the instructions below is sufficient to avoid the problem mentioned above.
XZG Multi-Tool
Supports: CC2652, CC1352, CC2538, EFR32-based coordinators
- Open XZG Multi-tool, select your coordinator's chip family and click
Choose Serial - After successful connection, you should see bootloader and firmware versions. For TI adapters, the primary (fixed) IEEE address will also be displayed in the
Device Infosection - Scroll to the IEEE section and click
Readto retrieve the current IEEE address of your coordinator (secondary for TI, primary for EFR32-based adapters) - Enter the new IEEE address in the corresponding field and click
Write
Warning
If you're using an EFR32-based adapter and receive an error when attempting to write a new IEEE address, this indicates that your device's firmware doesn't support NV3 tokens. You can still write a new IEEE address to the MFG_CUSTOM_EUI_64 field, but this is a ONE-TIME write operation and cannot be changed afterward! If you're certain you want to proceed, check the Force checkbox and click Write again.
Force option performs a ONE-TIME write that cannot be reversed!
ZigStar Multi Tool
Supports: CC2652, CC1352, CC2538
- Download and run the tool
- Plug in your adapter and put it in BSL mode, consult your adapters manual on how to put it in BSL mode
- Click refresh icon and select your adapter
- Fill in the old coordinators ieee address under "IEEE" (first
0xcan be skipped) - Check "Write IEEE" and click "Write IEEE"
- Reflash the firmware on your stick (this is important, otherwise the coordinator will not use the new ieee address)
cc2538-bsl
Supports: CC2652, CC1352, CC2538
- Download the tool
- Plug in your adapter and put it in BSL mode, consult your adapters manual on how to put it in BSL mode (if necessary, some adapters have an autobootloader, e.g. this one)
- Run
./cc2538-bsl.py -evw --ieee-address 00:12:4b:aa:bb:cc:dd:ee -p /dev/tty.usbserial-10 ./fw.hex, replace:00:12:4b:aa:bb:cc:dd:eewith your coordinator ieee address (first0xcan be skipped)/dev/tty.usbserial-10with the path to your adapter (for Sonoff Zigbee USB Dongle Plus--bootloader-sonoff-usbis needed as well)./fw.hexwith the path to your adapters firmware.
FLASH-PROGRAMMER-2
Supports: CC2652, CC1352, CC2538
- Download the tool
- Plug in your adapter and put it in BSL mode, consult your adapters manual on how to put it in BSL mode
- Select your adapter, go to "MAC address"
- Fill the old coordinator ieee address into "Secondary Address" -> "IEEE 802.15.4 MAC address" (first
0xcan be skipped) - Press "Write"
- Reflash the firmware on your stick - in the right corner under Secondary MAC check "Retain secondary IEEE" (this is important, otherwise the coordinator will not use the new ieee address)
Universal Silicon Labs Flasher
Supports: EFR32-based coordinators
- Install the tool
- Plug in your adapter
- Run
universal-silabs-flasher --device /dev/ttyACM0 write-ieee --ieee 0011223344556677- Replace
/dev/ttyACM0with the path to your new adapter - Replace
0011223344556677with your coordinator's IEEE address. Note that there is no hex prefix (0x)
- Replace
