How to Upgrade the SONOFF Zigbee 3.0 USB Dongle Plus Firmware
If you’re using the SONOFF Zigbee 3.0 USB Dongle Plus and want to keep things running smoothly, updating the firmware can make a difference. Here’s how I did it on my Manjaro system, with all the steps and troubleshooting included.
Step 1: Locating the Right Firmware
First, I needed the correct firmware file for my dongle. I found it on Koenkk’s Z-Stack firmware repository: Koenkk’s Z-Stack firmware repository. The README in the repository helped me identify the firmware file: CC1352P2_CC2652P_launchpad_*.zip
.
Step 2: Preparing to Flash
For flashing, I used JelmerT’s cc2538-bsl tool. A handy feature is that you can toggle the bootloader mode without opening the dongle case by using the --bootloader-sonoff-usb
flag in the command.
Step 3: Checking the Current Firmware Version
To confirm the firmware update later, I checked my current dongle version in Zigbee2MQTT’s About section, where the Coordinator revision showed 20211217
.
Step 4: Flashing the Firmware
To be safe, I turned off Zigbee2MQTT before starting the firmware update. Here’s what I did on Manjaro:
-
Locate the Serial Port: My dongle was located at
/dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_...-if00-port0
. -
Install Requirements and Run the Flash Command:
I cloned the cc2538-bsl repository and installed necessary Python packages:
git clone https://github.com/JelmerT/cc2538-bsl pip install pyserial intelhex python-magic
-
Run the Flash Command:
python3 cc2538-bsl/cc2538-bsl.py -evw -p /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_... --bootloader-sonoff-usb CC1352P2_CC2652P_launchpad_coordinator_20240710.hex
Step 5: Flashing Process Success
Once the necessary libraries were installed, the flashing process completed without any issues. Here’s what the successful flash output looked like:
Opening port /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_...
Reading data from CC1352P2_CC2652P_launchpad_coordinator_20240710.hex
Performing mass erase
Writing 360448 bytes starting at address 0x00000000
Write done
Verified (match: 0xd9dd0124)
Step 6: Restarting Zigbee2MQTT and Confirming the Update
Finally, I restarted Zigbee2MQTT and went back to the About section. The Coordinator revision now showed 20240710
, confirming that the firmware update was a success!
This firmware update process is straightforward and can help keep your Zigbee network running reliably. Give it a try if you’re looking to update your own SONOFF dongle, and happy flashing!