ITead's "Sonoff Zigbee 3.0 USB Dongle Plus" (model "ZBDongle-P") based on Texas Instruments CC2652P +20dBm radio MCU now sold for $19.99

Initial batch already sold out, however pre-orders for next batch is now available at Itead’s official store.

Koenkk from Zigbee2MQTT got info from ITead/Sonoff that this dongle comes pre-flasded with older “CC1352P2_CC2652P_launchpad_coordinator_20210120” firmware from https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin but specifications around 50 direct children, 100/200 routes, and a maximum of 200 Zigbee 3.0 devices that is listed here should still apply → https://github.com/Koenkk/Z-Stack-firmware/blob/master/coordinator/README.md

FYI, Mat from NotEnoughTech has posted both written and video reviews about this new USB dongle.

Note! Before reading/watching that review, know it is now believed that Mat flashed the wrong firmware image when updating it and that was the reason he was having problems after upgrading the firmware:

https://notenoughtech.com/home-automation/sonoff-zigbee-3-0-usb-dongle-plus/

https://www.youtube.com/watch?v=I5eEAnRWz-g

https://www.reddit.com/r/homeassistant/comments/q3tsh8/review_of_sonoff_zigbee_30_usb_dongle_plus/

https://www.reddit.com/r/Not_Enough_Tech/comments/q2vfq4/getting_started_with_sonoff_zigbee_30_usb_dongle/

https://github.com/Koenkk/zigbee2mqtt/issues/9117

At least no one else appear to be having issues pairing devices like Mat from NotEnoughTech is having.

Mat also tested the range and noted that range performance does not seem to be better than Electrorama’s zzh dongle which is based on CC2652R that is physically only capable of +20 dBm output which is curious since transmission range should be better with CC2652P +20 dbm output.

FYI, Koenkk from the Zigbee2MQTT project most have tested as he now added it to their supported list:

https://www.zigbee2mqtt.io/information/supported_adapters.html

He also added it to his repository of precompiled Z-Stack 3.x.0 Zigbee coordinator firmware images:

https://github.com/Koenkk/Z-Stack-firmware/blob/master/coordinator/Z-Stack_3.x.0/bin/README.md

It has been confirmed to also works as a Zigbee router if flash it with this Z-Stack 3.x.0 router firmware:

https://github.com/Koenkk/Z-Stack-firmware/tree/master/router/Z-Stack_3.x.0/bin

how can we use this device with OH3?

We can currently use Z-Stack 3.x based adapters in Zigbee2MQTT via MQTT in openHAB, see:

https://www.zigbee2mqtt.io/information/supported_adapters.html

In practical terms today check out → “openHAB and zigbee2mqtt Tutorial for Beginners

In the future, can hopefully use these newer adapters directly via openHAB binding for ZigBee, but…

…while openHAB binding for ZigBee (openHAB’s native Zigbee) does support the older Z-Stack Home 1.2 API, it does not yet support the newer Z-Stack 3.x API. Meaning that openHAB binding for ZigBee does support Texas Instruments (TI) adapters based on the old CC253x chips (CC2530/CC2531) with ZNP 1.2 firmware, but it does not support new TI adapters based on the newer CC2652 or CC1352 chips with ZNP 3.x firmware. Note! Other communities like that of Zigbee2MQTT recommend not using CC253x based adapters since the chip is obsolete with does not work well when having more than 20 devices in the network and does no longer get Zigbee stack or firmware updates.

There’s is an issue raised for openHAB binding for ZigBee supporting CC2652 with Z-Stack 3 here:

https://github.com/openhab/org.openhab.binding.zigbee/issues/605

That in turn refers to an issue in com.zsmartsystems.zigbee lib which openHAB’s ZigBee depends on:

https://github.com/zsmartsystems/com.zsmartsystems.zigbee/issues/1226

So until the com.zsmartsystems.zigbee library get extended support for Texas Instruments updated Z-Stack 3 API (a.k.a. ZNP 3) you can not natively use any CC2652/CC1352 based adapters in openHAB.

PS: This means that want to use a modern Zigbee adapter with openHAB binding for ZigBee today then you need to stick with Silicon Labs (a.k.a. Silabs) adapters based on EFR32MG21 or EFR32MG12 (like ex. ITead Zigbee 3.0 Dongle, Elelabs Zigbee USB Adapter or POPP ZB-STICK but that is off-topic).

1 Like

Thanks for the info.
The price, including shipping, is pretty reasonable. I wish the CC2652 was available earlier. I started my Zigbee network around 3 years ago with the CC2531. And it was a lot of hair pulling due to the range limitation. I ended up adding 2 more routers and things are stable then. At the time, the CC2531 was the recommendation. The list of supported adapters are so much richer now. But the supply chain issue is probably causing a lot of delay.

If you are using Zigbee2MQTT then it is today easy to upgrade from any older CC2530 or CC2531 hardware to any newer CC2652 hardware (though recommend doing backup so can restore). See:

https://www.zigbee2mqtt.io/guide/faq/#how-do-i-migrate-from-a-cc2530-cc2531-to-a-more-powerful-coordinator-e-g-zzh

You do not even need to repair your devices:

https://www.zigbee2mqtt.io/guide/faq/#what-does-and-does-not-require-repairing-of-all-devices

As for Zigbee coordinator and network range limitation, these are general tips that I have connected:

Tips on improving Zigbee network range

Both poor signal quality or signal interference can lead to transmission errors and related issues. This section contains fundamental troubleshooting tips on how to improve signal quality plus optimize range and coverage. Improving signal quality and removing sources of signal interference can in most cases maximize range and resolves problems related to transmission errors. Please try to follow at least some of these recommendations before posting on the community forums or reporting issues to developers.

  1. Adding more Zigbee routers between devices far away and the next closest router or your Zigbee coordinator. Zigbee network topology uses a “mesh network” design which means that each device that acts as a Zigbee router will extend the total range and coverage of your Zigbee network as a whole. The solution is to distribute more Zigbee routers in areas with poor reception. Note that while there are exceptions, understand that almost all permanently powered devices will serve as a Zigbee router. Thus adding more permanently powered Zigbee devices will allow greater range better coverage. There are also dedicated Zigbee routers which you can find by doing a community search for “Zigbee signal repeater” or “Zigbee range extender”) (an example being IKEA Tradfri Signal Repeater). Devices that can not act as routers are typically battery-operated and known as “end devices”. There are some exceptions as some end devices (e.g. Xiaomi/Aqara devices) have issues connecting through routers that are not from the same manufacturer.
  2. Use a long USB extension cable with your Zigbee coordinator adapter. This not only enables you to position the Zigbee coordinator adapter for better signal quality, but it also allows you to locate the Zigbee coordinator further away from Wi-Fi access-points/routers or other sources of 2.4GHz signals to avoid signal interference. Optimally in the best area in your home depending on your building’s floorplan. Ideally, you want to place the Zigbee coordinator somewhere in the middle of your house/apartment. Building materials influence signal quality, for example, dense/thick concrete, bricks, masonry, etc. dampen all wireless signals. Place the Zigbee coordinator with some distance from walls, ceilings and floors. Also, try different orientations of your Zigbee antenna (or your whole Zigbee coordinator adapter if it has an internal antenna). Some Antennas have a stronger signal in a certain direction. Simply changing orientation can improve signal quality already. Note: A bad USB extension cable may lead to connection issues between the system and the Zigbee coordinator adapter, symptoms of this are disconnection messages.
  3. Zigbee and Wi-Fi can operate on various channels in the 2.4GHz spectrum. A busy Wi-Fi access-points/routers that are operating in the same frequency range (overlapping channels) as your Zigbee coordinator will drown out the Zigbee traffic, especially if they are located close to each other. To avoid interference between Zigbee and Wi-Fi try to choose channels without overlap. Check the channel your Wi-Fi access-points/routers are using (either by checking on the router’s web interface or using a Wi-Fi analyzer app). Changing the channel of the Zigbee network usually requires reforming it and re-join/re-pair all of your Zigbee devices. It is therefor typically it’s a lot easier to just change the channel used by your Wi-Fi router and/or access-points. See this article for Wi-Fi and Zigbee channels coexistance to avoid using overlapping frequency ranges.
  4. Check if updating the firmware on your Zigbee coordinator adapter and your Zigbee end devices is possible. Note that depending on your hardware the latest Zigbee coordinator firmware might not always be the one recommended by the community so it is advised to ask before upgrading.
  5. If your Zigbee coordinator adapter has a removable antenna (e.g., with an SMA-connector) then you have the option of replacing it with a high-gain antenna. Note that antennas with higher gain usually have directionality: You might have better reception on the same floor, but reception across floors might suffer. In addition, you also have the option to use an antenna extension cable if needed (usually using just a USB extension cable for your Zigbee coordinator adapter is the better alternative). This should really only be needed if you are trying to cover a long distance, like to another building or very dense/thick walls, ceilings and floors.
  6. Buy more powerful Zigbee radio hardware with a better radio range, preferably with an external antenna and based on a newer chip that offers up-to-date firmware. If you are not only experimenting with Zigbee but want a permanently stable and healthy Zigbee mesh network with potentially many devices then you should consider upgrading to a more powerful and newer Zigbee coordinator USB adapter or Ethernet to serial gateway/bridge. Generally, Zigbee adapters with an external antenna will have a better range and offer you more flexibility, therefore you will also want to avoid buying an internal Zigbee adapter unless it has a port for an external antenna.

And related tips are these general best practices for avoiding pairing difficulties with Zigbee devices:

Best practices for avoiding pairing difficulties

  • If possible try to pair your Zigbee devices in their intended final location, (and not pair it next to the Zigbee coordinator and then need to move it after).
    • Pairing a Zigbee device next to the Zigbee coordinator and then moving it later can result in dropped/lost connections or other issues.
      • If the device you want to add is not brand new and as such never paired before then you always have to make sure to first manually reset the device to its factory default settings before you will be able to add/pair it.
  • Some battery-operated Zigbee devices are known to have problems with pairing if they have Low battery voltage.
    • Some people have reported replacing the battery on their newly received Xiaomi/Aqara devices solved pairing issues.
  • Check that you have enough Zigbee router devices (also known as Zigbee signal repeaters or range extenders) and if you do not have any, invest and add some mains-powered devices that will work as Zigbee routers.
    • Aim to start out with mains-powered devices before adding battery-operated devices as a “weak” Zigbee network mesh (e.g., the device is too far from the Zigbee coordinator or a Zigbee router) may prevent some devices from being paired. Zigbee router devices are also needed to increase the maximum of devices that can be connected to your Zigbee mesh network.
    • Note that some Zigbee devices are not fully compatible with all brands of Zigbee router devices. Xiaomi/Aqara devices are for example known not to work with Zigbee router devices from Centralite, General Electrics, Iris, Ledvance/OSRAM/ LIGHTIFY/Sylvania, Orvibo, PEQ, Securifi, and SmartThings/Samsung. Better results can usually be achieved by using mains-powered devices IKEA and Nue/3A Home or dedicated DIY routing devices based on Texas Instruments CC253x/CC26x2 and XBee Series 2/3 Zigbee radios.
  • Be patient as the pairing of some Zigbee devices may require multiple attempts and you may sometimes need to try again and again.
    • Some devices, like example those from Xiaomi/Aqara, are known to not be 100% compliant with the standard Zigbee specifications and may therefore require many paring attempts over 10-20 minutes or longer.

FYI, Koenkk from Zigbee2MQTT now stated that current firmware does not yet support +20 dbm output:

https://github.com/Koenkk/zigbee2mqtt/discussions/8840#discussioncomment-1550449

That means that this CC2652P based Sonoff Zigbee 3.0 USB Dongle Plus adapter with its current firmware version only operate at +5 dBm output, so no wonder it does not perform better when compared to Electrorama’s zzh dongle which is based on CC2652R that physically only capable of +20 dBm output. Thus only once we get a new community firmware with RF switch configured will enabling +20 dBm output in application settings actually work.

chiakikato also manually tested Sonoff Plus dongle hardware and confirms it support +20 dBm output:

https://github.com/Koenkk/zigbee2mqtt/discussions/8840#discussioncomment-1550148

Guess that means that Mat will have to do another test and update his review when get new firmware.

1 Like

FYI, I have now also confirmed that running the attached uartLog.py script from Sonoff docx part from ITead’s HOW TO FLASH FIRMWARE TO CC2652P instructions do indeed make ITead’s Sonoff Zigbee 3.0 Plus Dongle automatically enter bootloader mode and after running that script just to get into BSL mode I could flash it directly using llama-bsl.py and cc2538-bsl.py scripts without having open the enclosure and pressing the BTL button which I too indeed found very convenient.

I first tested with llama-bsl GitHub - electrolama/llama-bsl: Python cross-platform script to upload firmware via the serial boot loader onto the CC13xx, CC2538 and CC26xx SoC.

python llama-bsl.py -p COM5 -evw CC1352P2_CC2652P_launchpad_coordinator_20210708.hex

I then also tested running the uartLog.py script again to test cc2538-bsl GitHub - JelmerT/cc2538-bsl: Python cross-platform script to upload firmware via the serial boot loader onto the CC13xx, CC2538 and CC26xx SoC.

python cc2538-bsl.py -p COM5 -evw CC1352P2_CC2652P_launchpad_coordinator_20210708.hex

Both upgrades worked fine.

You might have to manually install/upgrade a few dependencies if do not installed/upgraded properly:

python -m pip install --upgrade pip setuptools wheelpy gevent llama-bsl

python -m pip install --upgrade pip setuptools wheelpy gevent cc2538

Though it might be better to download latest llama-bsl master branch or cc2538-bsl main branch versions from https://github.com/electrolama/llama-bsl and https://github.com/JelmerT/cc2538-bsl as latest fixes might not be in a release published on PyPi via pip

Other prerequisites is that had already installed CP210x USB to UART Bridge VCP Drivers from Silicon Labs and Python for Windows (Windows Installer 64-bit version)

As mentioned the uartLog.py script also lists all active COM ports on MS Windows (tested on Windows 10) so only have you enter the number of the COM port, but note that the script is currently hardcoded for Windows COM ports so would need to be modified before it can be used under Linux.

PS: Submitted as a feature request for llama-bsl here → Add option for Auto BSL to try both high and low signals to enter bootloader? · Issue #11 · electrolama/llama-bsl · GitHub

Guide for how-to upgrade firmware on Sonoff USB Plus Dongle without openning its enclosure

The main benefit of this method is that don’t need to open the dongles enclosure/casing, (this method could also be made to work across Windows, MacOS and Linux platforms if modify uartLog.py or better yet patch cc2538-bsl with working delays for CP2102N dongle uses).

  1. Install Silabs CP210x drivers (if not already installed/available, at least needed on Windows).
  2. Install Python for Windows (Windows Installer version)
  3. In command-prompt run: python -m pip install --upgrade pip setuptools wheel ​gevent cc2538
  4. Get “uartlog.zip” ZIP file package from either Sonoff docx or cc2538-bsl issue #113, open/unpack “uartLog.py” to ex. “C:\temp” then in command-prompt run: C:\temp\uartLog.py to get option and enter correct number for COM port (note that this step would no longer be needed in the future if and when “Auto BSL” gets patched with working delays for Sonoff USB Plus dongle in the cc2538-bsl script).
  5. Download latest firmware from Z-Stack-firmware/coordinator/Z-Stack_3.x.0/bin at master · Koenkk/Z-Stack-firmware · GitHub and unpack to example “C:\temp” then in command-promt run: python cc2538-bsl.py -p COM5 -evw C:\temp\CC1352P2_CC2652P_launchpad_coordinator_20210708.hex (replacing COM5 with correct COM port and right name/version and location of unpacked firmware file).

Again, this guide could relatively easily be translated to Linux or Mac OS and be further automated via scripting, (the problem there is that the uartLog.py script from Sonoff has been hardcoded for Windows COM ports so the port manager in it needs to be modified).

Tip! cc2538-bsl can be replaced by experimental llama-bsl fork if willing to test it, though it has same “Auto BSL” delay issue with Sonoff USB Plus dongle, but developer of llama-bsl is considering adding several additional features that will make it more user-friendly than cc2538-bsl:

https://github.com/electrolama/llama-bsl/issues

PS: ITead/Sonoff own developers could of course have made this much simpler if they themselves submitted patches to cc2538-bsl script.

1 Like

FYI, Koenkk made a “dev” pre-release of Z-Stack_3.x.0 20211114 community version for this as others:

https://github.com/Koenkk/Z-Stack-firmware/tree/develop/coordinator/Z-Stack_3.x.0

Note! CC1352P2_CC2652P_launchpad_coordinator_20211114 is a pre-releaser so not fully tested yet!

Z-Stack_3.x.0 20211114 community firmware is based on latest SDK which contains many bug-fixes:

https://github.com/Koenkk/Z-Stack-firmware/blob/develop/coordinator/Z-Stack_3.x.0/CHANGELOG.md

https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/5.30.00.56/exports/changelog.html

20 dBm output power still not enabled so CC2652P will perform as 5 dBM CC2652R/CC2652RB, see:

https://github.com/Koenkk/Z-Stack-firmware/issues/323

Also, FYI, there is no real news on community firmware with Hardware Flow Control enabled, see:

https://github.com/Koenkk/Z-Stack-firmware/issues/324

FYI, JelmerT made a “sonoff” patch for cc2538-bsl flashing tool that I confirmed working on Windows:

https://github.com/JelmerT/cc2538-bsl/pull/114

Hopefully, that will get merged as then users only need to use --bootloader-sonoff-usb parameter.

If you test it under other operatingsystem or other condications then report any issues to the PR there.

You can get it to test yourself from here:

https://github.com/JelmerT/cc2538-bsl/tree/feature/ITead_Sonoff_Zigbee-delay

Example:

cc2538-bsl.py -p COM5 -evw --bootloader-sonoff-usb CC1352P2_CC2652P_launchpad_coordinator_20210708.hex

Those interested in Z-Stack 3 support to use CC2652 with openHAB Zigbee Binding should check out:

https://github.com/zsmartsystems/com.zsmartsystems.zigbee/pull/1280

and

https://community.openhab.org/t/discussion-about-ti-z-stack-3-x-and-cc2652-and-cc1352-zigbee-coordinator-adapters-with-openhab-zigbee-binding/129385

Branch is currently only for developers however it could soon become ready for testing by end-users.

1 Like

FYI, ITead now has this Sonoff branded CC2652P based USB dongle is back in stock again:

https://itead.cc/product/sonoff-zigbee-3-0-usb-dongle-plus/

No news on changes but they said before that they at least aimed to change the default “CP2102 USB to UART Bridge Controller” text in the Product Description String value field to “Sonoff Zigbee 3.0 USB Dongle Plus” on the CP2102N USB-to-UART chip EEPROM as custom product description for this USB-adapter as that would allow unique USB discovery support to be added in applications. Ex:

https://community.home-assistant.io/t/community-help-wanted-to-whitelist-all-compatible-zigbee-and-z-wave-usb-adapters-for-automatic-discovery-in-home-assistant-os/344412

ITead also been in contact with Zigbee2MQTT developer about building a +9 dBM firmware for it, see:

Originally posted by @Koenkk in TI SimpleLink CC13xx and CC26xx SDK 5.30 / 5.30.00.56 released with support for newer CC13xx and CC26xx hardware chips · Discussion #9744 · Koenkk/zigbee2mqtt · GitHub

I have had contact with Sonoff about this, they are currently checking whether it is possible to set a default transmit power of 9dbm (to pass certifications), waiting for them to reply

This is what I got from them: As the certifier recommends us to set the default transmit power as 9.61 dbm, which need to lower than 10. You may take this as a reference to adjust your plan?

Originally posted by @Koenkk in "Sonoff Zigbee 3.0 USB Dongle Plus" by ITead based on TI CC2652P can be pre-ordered for $10.99 · Discussion #8840 · Koenkk/zigbee2mqtt · GitHub

No reply yet, I’ve send them a firmware which sets the default dbm to 9, they are currently testing it in their lab.

Help is by the way still wanted testing firmware upgrade(s) with pull request patch for ITead’s Sonoff CC2652P USB dongle with JelmerT cc2538-bsl tool using the new option --bootloader-sonoff-usb

https://github.com/JelmerT/cc2538-bsl/tree/feature/ITead_Sonoff_Zigbee-delay

Please report firmware upgrade issue with it or confirm it working under which operating system here:

https://github.com/JelmerT/cc2538-bsl/pull/114

(There is a related troubleshooting discussion in https://github.com/JelmerT/cc2538-bsl/pull/114 )

FYI, new Z-Stack 3.x.0 20211207 firmware in develop branch is based on SimpleLink SDK 5.30.01.01

https://github.com/Koenkk/Z-Stack-firmware/tree/develop/coordinator/Z-Stack_3.x.0/bin

Those willing to test that newer pre-release firmware version from the develop branch can find it here:

https://github.com/Koenkk/Z-Stack-firmware/blob/develop/coordinator/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_coordinator_20211207.zip

Links to the two related changelogs (for SimpleLink SDK changelog see sections about “TI Z-Stack”):

https://github.com/Koenkk/Z-Stack-firmware/blob/develop/coordinator/Z-Stack_3.x.0/CHANGELOG.md

https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/5.30.01.01/exports/changelog.html

Mostly bug-fixes to TI Z-Stack + increased memory heap, LED on join, and a fix for Xiaomi E1 devices.

1 Like

FYI, Koenkk has now uploaded an experimental firmware for CC2652P/CC1352P with a default set to 9 dBm (and a max of 20 dBm), see/download: https://github.com/Koenkk/Z-Stack-firmware/issues/323

He mentions in https://github.com/Koenkk/zigbee2mqtt/issues/8885 that he does not himself have RF measurement equipment so cannot confirm RF output power is exactly as per config set in software.

I do’nt realy know but If you have a zigbee sniffer or something else to see RSSI and If you rise dB by 10 you should probably see 10dB more RSSI.

Maybe, just the Idea.

FYI, Koenkk now released the mentioned +20 dBm RF power output enabled version as “Z-Stack_3.x.0 20211217” in the develop branch and closed issues as confirmed working with improved LQI as result:

https://github.com/Koenkk/Z-Stack-firmware/tree/develop/coordinator/Z-Stack_3.x.0/bin

https://github.com/Koenkk/Z-Stack-firmware/issues/323

https://github.com/Koenkk/zigbee2mqtt/issues/8885

That firmware has during the weekend been confirmed working by several community members with up to +20 dBM RF power output enabled, (tested in both Zigbee2MQTT as well as ZHA integration in Home Assistant), and according to Koenkk it has also been confirmed working by ITead’s own Sonoff Zigbee engineer using RF analyzer, so I think later if and when proven stable we can expect this version to ship with future batches.

Note that any releases in the develop branch should still be considered experimental until proven stable and any bugs specifically verified related to this firmware version should be reported as new issues to:

https://github.com/Koenkk/Z-Stack-firmware/issues

So time to crank power output up to 11 on these!

3 Likes