ITead's "Sonoff Zigbee 3.0 USB Dongle Plus" (model "ZBDongle-P") based on Texas Instruments CC2652P +20dBm radio SoC/MCU

FYI, Home Assistant 2022.2 release notes now mention USB discovery of Sonoff Zigbee Dongle Plus:

This adds automatic USB auto-discovery in ZHA if USB dongle has unique custom product description, but this only applies to newer batches of shipped dongles as initial batches is missing an ID in CP2102.

That is, there is an issue with the dongle reporting a unique description, so if you got shipped an early version of the dongle then the fix should be to write the new custom description of its CP210x firmware for the USB-to-Serial Bridge chip, (and not just a simple firmware upgrade of dongle’s CC2652P chip)

If your dongle does not have this unique description then it will be discovered as dongle for Z-Wave JS.


ITead has posted a script/program that should let users themselves update the product description on already shipped dongles to supposedly match the description already written to latest batch of dongles:

Tested it myself on a Windows 10 computer and it did not work for me (it closed without any messages).

So sad that ITead did not release a script tool based on this open-source cp210x-program by VCTLabs:

Again, there is more information about how the automatic USB discovery feature works discussed here:

1 Like

I had the Z-wave issue and the “unknown manufacturer” issue with the Sonoff Zigbee 3.00 also, BUT:
I today have (re-)installed HA with HA OS 7.2 with HA 2022.2.0 and afterwards with HA 2022.2.1.
HA now sees it directly as a Zigbee and after “Configure” I get a message:
CC1352/CC2652 Z-stack 3.30+ (build 20211217) (Texas Instruments) .

NO more Z-wave or “unknown manufacturer” issue, seems resolved.
The Sonoff now works fine under ZHA (can pair all my devices and they work), same as with the manual install before (and ignore z-wave).
The Sonoff does NOT work under Zigbee2MQTT, It installs fine (with change config. Z2M to /dev/ttyUSB0), but cannot pair any device (was also the case with previous versions HA OS, HA and firmware for the Sonoff. No errors/warning in the logs for Z2M. I run on a old X86/64 N3150 motherboard 8GB and an SDD.

Strange that the Dongle works fine under ZHA but cannot pair any device under Zigbee2MQTT on HA.
(I did a total new HA OS/HA install on same hardware, with flash of the Zigbee dongle and then only install for Z2M, when that did not work I removed of all Z2M stuff and installed ZHA without problems and with a working/pairing etc ZHA!)
Any suggestions.

Sharing my experience here.

I got my dongle today.
When I opened it, the PCB reads v1.3, with a date in July 2021, so definitely one of those old batch.
Did the firmware update to CC1352P2_CC2652P_launchpad_coordinator_20211217, went fine. I did have to update the cp210x driver via windows update before I could proceed with the TI Programmer tool.

I ran the name change tool also, using my Win10 laptop. It went fine. The name is now usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxx-port0, instead of Silicon Lab something.

So far so good.

1 Like

Where exactly did you get working name change tool you used? Could you share the source link?

Also, did you run the binary blog (compiled executable) version or the Python script version of it?

Update to the latest Z-Stack firmware and make sure to use a long USB extension cable to get it away from any sources of electromagnetic fields it like most Zigbee adapters are susceptible to interference.

Follow tips here:


If you have Aqara, Xiaomi, or Tuya devices then it is not uncommon to need re-try paring MANY times!

Follow your comment above, to the sonoff facebook page:
SONOFF - :tada:A new update on the current ZigBee 3.0 USB… | Facebook
… and then follow the last link on that page, to an rar file in sonoff’s Synology Drive:
… click the download icon to the right:

… and then unzip, go to the unzipped folder, run this one when your dongle is connected
There is a .docx file in Mandarin (per google). Thanks to google translate I believe the relevant bits are:

… so I did that, the command line window popped with 3 lines. It was instant and I saw the second line saying gpfn28 config success.
Plug the dongle back to my HAOS, and I got this:

Hope this helps.


FYI, seen many reporting that the Sonoff ZBMINI-L does not have Zigbee Router config in its firmware.

But, new Sonoff S26R2ZB is also based on CC2652 so might maybe it works as a good Zigbee Router?

FYI, ITead also updated their tutorial with instruction on how to use their tool to new update description:

Note that is only the parts regarding the "Product Description String” that applies in that tutorial as only that will write new product description to USB chip (and not the part about flashing Z-Stack firmware).

"As the “Product Description String” of the dongle plus’ CP2102N serial chip has been customed to a unique identifier “Sonoff Zigbee 3.0 USB Dongle Plus”, which has been also added to Home Assistant’s whitelist of auto-discovered devices, the configuration of the dongle in Hass can be very simple. Just plug the dongle into your computer, it will be automatically discovered, click “CONFIGURE” to complete the configuration automatically, and then add sub-devices to use.

If your dongle’s descriptor hasn’t been customed, you can use the tool linked below to change it to “Sonoff Zigbee 3.0 USB Dongle Plus”.

If your dongle still can’t be auto-discovered, it may be because your version of Hass hasn’t integrated this feature yet, you can follow the normal configuration steps below."

I can however still not get that to work on my Windows 10 computer with the latest Silabs CP210x drives from (including rebooting Windows after and checking that the USB dongle is discovered as a COM port).

I first tried to run the included ManufacturingTool.exe binary executable after inserting the dongle into a USB port and seeing it discovered, then also tried installing Python for Windows and running the .py Python script provided without any luck with it writing the new product description to the CP2102 chip.

At least I’m not alone:

Again, sad that ITead did not release a script based on this open-source cp210x-program by VCTLabs:

Think would be better if an open-source script was posted in a new ITead GitHub repo instead by them:

Such open-source script could then be repurposed on other Zigbee and Z-Wave dongles with CP210x.

Might be a stupid question here, but do you guys use a separate PC to flash the dongle?

I have HA installed on a Ubuntu OS natively, was wondering if I can just flash it while HA is running ?
I know I should shutdown HA to be safe but cant seem to find the shutdown option, just restart.

Maybe I should just use my windows PC :rofl: :rofl:

Flashing from Linux CLI seems easier to me, but I’m the type that does most of my Windows server management from the CLI.

Disabling/Reenabling the integration/addon that actually talks to the stick is all that is necessary, no need for a full HA shutdown.

1 Like

Yes, I run Home Assistant Operating System on Home Assistant Blue, (could disable ZHA but I usually shutdown the whole host), and update both Zigbee and Z-Wave dongles on a Windows 10 computer.

Yes you can flash serial adapters such as a Zigbee coordiantor while Linux while Hone Assistant is running but you first need to stop the specific application/service/deamon (like the ZHA integration or Zigbee2MQTT) connected to the serial device because serial devices can only have one connection.

If you run Home Assistant Operating System then there is a “SHUTDOWN HOST” option under Host.

1 Like

For what it’s worth, I’m using three Lutron Aurora dimmers with this Sonoff dongle, but with Zigbee2mqtt rather than ZHA.

1 Like

For what it’s worth, I did the above (on Fedora Linux) using cc2538-bsl and the instructions at Supported Adapters | Zigbee2MQTT and it worked fine. I had a bit of a panic as it didn’t come back up and work immediately — not sure exactly why, but after some reboots and restarts and poking (but with no real changes) it suddenly showed up as detected in HA and then everything worked. But other than that — which I think may have just been me not knowing what to expect — it was easy and painless.

1 Like

Thanks guys for the tips. Was trying it today, basically I disabled the ZHA integration then kicked off the flash but I got

harvin@nuc–server:~/update_sonoff/cc2538-bsl-master$ python3 -p /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_841414222e1aec118d6e77e5f01c6278-if00-port0 -evw --bootloader-sonoff-usb CC1352P2_CC2652P_launchpad_coordinator_20211217.hex
ERROR: [Errno 13] could not open port /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_841414222e1aec118d6e77e5f01c6278-if00-port0: [Errno 13] Permission denied: ‘/dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_841414222e1aec118d6e77e5f01c6278-if00-port0’

Seems like disabling the integration didnt actually release the stick :frowning:

Try sudo python3 …

1 Like

[Errno 13] Permission denied” mean that Python don’t have permissions/rights to access file, see:

FYI, there is also more tips from testers here →

For example, try the ttyUSB USB port (example -p /dev/ttyUSB0) instead of device ID path you used.

python -evw -p /dev/ttyUSB0 --bootloader-sonoff-usb CC1352P2_CC2652P_launchpad_coordinator_20211217.hex

Might as well need to use ./ for it to use and firmware in directory are in if file is there.

python ./ -evw -p /dev/ttyUSB0 --bootloader-sonoff-usb ./CC1352P2_CC2652P_launchpad_coordinator_20211217.hex

Also be sure to download cc2538-bsl master from JelmerT’s repository on GitHub or via PyPI via pip:

You have to get latest master from GitHub since there is no release package with the sonoff fix yet (so cc2538 2.1.0 release package and PyPI/pip does not have that fix and not be able to use the new --bootloader-sonoff-usb parameter option for

Once inside folder (either cloned from master or downloaded and unpacked the downloaded file) run:

python install

That from unpacked directory of cc2538-bsl master branch downloaded from GitHub should install/upgrade needed dependencies however might want to pip install/upgrade command(s) to verify:

pip3 install --upgrade pip setuptools wheel pyserial intelhex python-magic

If not running the Home Assistant Operating System then maybe first need to install pip as root or? Ex:

sudo apt update

and then?

sudo apt-get install python3-pip

Then run inside unpacked directory of cc2538-bsl master branch downloaded from GitHub?

sudo python install


sudo pip3 install --upgrade pip setuptools wheel pyserial intelhex python-magic

Disclaimer: Only from google search as I did not actually test commands myself now in any Linux distro.

1 Like

Quick question; can I flash the firmware of this device in future “non-destructively” using Flash Programmer 2 on Windows?

I’ve already updated the firmware of Zigbee 3 dongle to the December firmware and I’m pretty happy with the performance now for 30 or so devices in Zigbee2mqtt. But I’m concerned about needing to re-pair devices if I need to flash a firmware update in future for bug fixes etc. Thanks

You should be OK.

If by “non-destructively” just mean without re-pairing then answer is maybe, so always create backups!

I bought this Dongle recently and in Home Assistant it was seen as a Zwave coordinator. Which I ignored and set it up with Zigbee2Mqtt and it works fine (and worked fine before in ZHA also). But I have noticed the LQI ratings aren’t that brilliant. Even of devices quite close. Functionally I don’t experience any issues.

  • Is there a way for me to see what firmware version is flashed on it?
  • Would flashing newer firmware have a change of improving signal strength?
  • Will flashing newer firmware cause me to have to pair everything again or set the dongle up again in Zigbee2Mqtt?
  • As I’ve never in my life flashed firmware. I see lots of tutorials about how to do this. But they are all Windows based. I’m Mac based. I tried searching for a tutorial there but didn’t find anything. Does anybody know what would be the main differences?