The easiest and most reliable is to just use Python (you can use Windows or Linux, does not matter). I used Windows.

  • Get the dongle firmware for the Sonoff Zigbee Dongle Plus here: (read to make sure you download the correct firmware)
  • Download and install Python (on Windows it’s just Next, Next, Next, Finish. Nothing special)
  • Install the following libraries:
    • pip install wheel pyserial intelhex python-magic
  • Download the Windows drivers for the Zigbee Dongle Plus and update them in device manager:
    • https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads
  • Download the bootloader for the Zigbee Dongle Plus here: ((you can download the entire repo)

Now that you have all the prerequisites done, plug in your dongle. No need to open it up and press the button to get it into bootloader mode:

  • Replace COMXXX with your actual COM port number.
  • I suggest renaming the dongle firmware you downloaded to something simpler.
python cc2538-bsl.py -p COMXXX -e -v -w --firmware.hex

You can watch a great video tutorial here: