We came home from a nice night out and realized that our ceiling lights had just become inaccessible.
Intro
Theyâre zigbee light bulbs and we have a USB zigbee dongle on Home Assistant to connect to them. We previously had an issue where they became inaccessible due to wireless interference, which was a bit of an annoying hassle to reconfigure the network. So as I prepared myself for that outcome, I was surprised to see Home Assistant reporting:
NVRAM is corrupted
Whaattt??? How did that happen! It was working just fine earlier today!
Well anyway. Did you know that DuckDuckGo sucks as a search engine sometimes? It literally had no results for âsonoff zigbee âNVRAM is corruptedââ, whereas Googleâs first result set me on the right path, though not without trouble and confusion.
Tracking it all down
Specifically, this comment by github user sideonshore. Right away I ran into a few issues. First, the Texas Instrument website sucks. Thankfully sideonshore provides an alternate download link for the flashing software, but that software didnât work for me. Nor did the firmware download link they provided, as the SILabs website only offered drivers for XP and Vista. Turns out I had to use Windows Update to get drivers on Windows 11 (and presumably 10). The link to the firmware worked perfectly.
Eventually through some other github threads I was able to track down a python app, and then more usefully, a compiled executable with GUI using said python app: ZigStarGW-MT. And even then there was some weirdness with the process and order of operations⌠đŞ
I also had to scrub through a YOUTUBE video just to determine where the bootloader button was (itâs inside the device) and then which of the two buttons was the bootloader button! Argh!
Okay, so how do you actually fix this though?
Yeah! Letâs make this as easy as possible for anyone else who has this issue:
Assuming Windows 10 or 11:
-
Download and run ZigStarGW-MT as Administrator
-
Plug the dongle unmodified into your Windows computer and open the system Settings application (keyboard shortcut Win+I)

The SONOFF Zigbee 3.0 USB Dongle Plus sitting on a desk. It is a USB device with a black metal chassis that also looks and acts as a heatsink. On the left side is a USB port, on the right is an antenna. -
Navigate to Windows Update > Advanced Options > Optional Updates and look for something that says âSilicon Laboratories Inc. - Ports - $VERSION NUMBERâ, and click install.
-
Download the latest firmware from this repository. It will be called âCC1352P2_CC2652P_launchpad_coordinatorâ
-
Unplug and open up your sonoff zigbee stick by unscrewing the two small screws on the antenna end of the device. Lightly tap it on your work surface to dislodge the back plate if it does not freely come out. The board then just slides out.
-
Connect the stick to your computer while holding down the bootloader button as labeled in the image below. Keep holding that button for about ten seconds after itâs plugged in, just in case.

That same dongle but now naked without chassis. On the left is the USB port and on the right is the antenna connector, sans antenna. Near the USB port are two buttons and a switch. Only the leftmost button is relevant, it is circled in red, that is our âbootloaderâ button. -
Using Device Manager, note down the COM port that it has registered as (mine was COM4).
-
In ZigStar, TYPE in the COM port, do not hit scan. Why? đ¤ˇââď¸
- Select the firmware file you downloaded before. Check all three of (based on the instructions for the TI software):
- Erase
- Write
- Verify
- Press the âStartâ button
Finally tada!
At this point for me, it took a minute or so to write to the device, said it was restarting the device, and then it was done. I plugged it back into Home Assistant, reloaded the Zigbee integration, and my Zigbee network came right back without any further work.
Changelog
- July 11th 2024 - Fix Step 10 to say Start button instead of Write button