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

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

Update! Z-Stack 3.x.0 20211217 release has now been copied to master and should be seen as stable:

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

Again, recommend using JelmerT’s sonoff branch here to upgrade firmware without pressing buttons:

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

Hopefully ITead will begin pre-flashing this release to future batches for +9 dBm out-of-the-box support.

PS: This new firmware version is also shipped as standard as part of Zigbee2MQTT 1.22.2 release.

FYI, not confirmed but someone now claims Auto-BSL is also working in the ZigStar GW Multi tool too:

Heads up! The price of this dongle will be increased from $10.99 to $14.99 now on the 25th of January.

Announcement on Facebook state price hike is due to raised cost of material costs (i.e. CC2562P chip):

https://www.facebook.com/SONOFF.official/posts/2957570017887977

https://www.facebook.com/SONOFF.official/posts/2960339344277711

Is there any instruction what is the best way replace my old cc2531 to SONOFF Zigbee 3.0 USB Dongle Plus? - or maybe i can just remove old one and place new and OH3 and z2m automatically starts work?

If you play close attention to the instructions, yes:

2 Likes

Physical USB ports are not directly mapped to same serial port device path so need fix path, however, Zigbee2MQTT developers made it easy to migrate from an older Texas Instruments adapter to newer:

https://www.zigbee2mqtt.io/guide/faq/#how-do-i-migrate-from-one-adapter-to-another

If want to be extra safe then make backups of both Zigbee2MQTT data directory which contain a high-level Zigbee network backup (make sure data/coordinator_backup.json if it exist) as well as do Zigbee coordinator low-level NVRAM to a file with zigpy-znp command line tools to a other offline storage:

https://www.zigbee2mqtt.io/guide/faq/#how-do-i-move-my-zigbee2mqtt-instance-to-a-different-environment

https://github.com/zigpy/zigpy-znp/blob/dev/TOOLS.md#nvram-backup

Again, recommend upgrading the firmware on the new CC2652 based adapter before starting using it.

1 Like

Replying to question post in Support for Z-Stack 3 (Z-Stack 3.0.x and Z-Stack 3.x.x) - Texas Instruments Zigbee 3.0 stack on adapters like CC2652 and CC1352 · Issue #1226 · zsmartsystems/com.zsmartsystems.zigbee · GitHub

That is really off-topic for Support for Z-Stack 3 (Z-Stack 3.0.x and Z-Stack 3.x.x) - Texas Instruments Zigbee 3.0 stack on adapters like CC2652 and CC1352 · Issue #1226 · zsmartsystems/com.zsmartsystems.zigbee · GitHub but as I wondered the same and have drawn a few conclusions and made some educated guesses based on their history and period product was developed based on when it was finally released. So I posted an answer to that as well as a rant about some related speculations here instead:

First of all, the short answer is that CC2531 USB dongles do not have a separate USB-to-UART Bridge chip (also known as a USB-to-Serial converter chip) but all CC2652 USB does because the CC2531 chip has an integrated circuit for USB-to-UART/Serial conversion and CC2652 chip does not, and neither does CC2530, CC2538, or CC1352 chips, so all those need an external USB-to-UART bridge/converter chip if want to make USB-dongle and not a serial-dongle/adapter. Simple as that.

What I think is probably much interesting story is why does ITead’s Sonoff Zigbee 3-0 USB Dongle Plus have a Silicon Labs USB-to-UART bridge/converter chip on its board and not a USB-to-UART bridge/converter chip from a different manufacturer, as the Silicon Labs CP2102N chip they went with is more expensive than most other alternatives yet does not really offer relative better features on paper.

Well, I think that for starters, the Silicon Labs CC210x is known for being very stable and already had mature device drivers on all operating systems at the point when they were developing the product. So from that point of view, the CC2102/CC2102N chip they use is an excellent choice, but otherwise, the only noticeable feature of CP2102N USB-to-UART Bridge got a writable on-chip EEPROM so they can write a custom product description. To get that same feature with a writable onboard EEPROM they could have alternatively gone with for example WCH CH340B or FTDI FT231 series which are less expensive USB-to-UART Bridge/Converter chips also has onboard EEPROM with similar features.

The benefit of choosing a USB-to-UART Bridge with a writable EEPROM is that it enables the manufacturer to write a custom product description string to the USB chip which is seen by the operating system, (you can even change the PID and VID if you like but that is often not wanted since require registering and releasing your own unique drovers). And that having a custom product description string to the USB chip allows applications to add automatic USB discovery which can give a more streamlined user experience for new users. So that is a small feature that can make the initial setup much more user-friendly. See example → Community help wanted to whitelist all compatible Zigbee and Z-Wave dongles/adapters for automatic USB Discovery in Home Assistant - Home Assistant OS - Home Assistant Community

However we know that ITead’s first Zigbee 3.0 USB Dongle (and also there Sonoff ZBBridge Zigbee Bridge/Gateway) was based on the excellent Silicon Labs EFR32MG21 (Silabs EFR32 Mighty Gecko Series 2) chip, but since that dongle was sold very barebone and basic without an enclosure or retail packaging, (it seemed more like an experiment to gauge the DIY market interest in a Zigbee USB dongle than a real attempt to market a new product category), so my guess is that even though it had design issues it was still very successful and sold well so they must have wanted to make a new nicer premium version of a Zigbee USB dongle for the retail market using knowledge from the lessons learned from that previous dongle model and feedback/input from buyers and the DIY home automation communities.

Anyway, I therefore simply assume that ITead probably initially planned to use Silabs reference hardware design with Silicon Labs Zigbee MCU chip and a Silicon Labs USB-to-UART Bridge chip combination in it until the world was hit with the current worldwide chip shortage and especially stock of that EFR32MG21 became very scarce globally. EFR32MG21 has almost been impossible to get in larger quantities during the last two years, (though ITead is still using EFR32MG21 its Sonoff ZBBridge Zigbee Bridge/Gateway) product). Hence they probably switched from Silicon Labs EFR32MG21 Zigbee chip to Texas Instruments chip in the middle of the development cycle and did not bother to also replace the Silicon Labs USB-to-UART Bridge chip with some other USB-to-Serial converter chip.

PS: Mentioned before that as the ITead’s "Sonoff Zigbee 3.0 USB Dongle Plus sold at a low price yet contain premium components I assume that ITead hope to make money on attach rate sales instead of simply sales of this Ziglee USB dongle alone, so recommend those new to Zigbee to also check out some of their other Sonoff branded Zigbee devices as well → https://itead.cc/?s=zigbee&post_type=product&type_aws=true

1 Like

Heads-up! ITead has posted that they will raise the price from $14.99 to $19.99 (US-dollar) tomorrow:

Due to the price increase in the chip of Zigbee 3.0 Dongle Plus, we plan to raise the price in response to the rising raw material costs to ensure you still have an excellent experience in the use. The new price will be effective from May 3, 2022.

In their defence, is a fact that there is still a global chip shortage as well as an ongoing worldwide shipping-container freight crisis which are together causing havoc on the whole global supply chain, which the COVID-19 pandemic only made worse. So prices on many components will keep rising until all that is resolved, and that whole perfect storm situation is currently are not expected to get better until 2024 at the earliest.

https://en.wikipedia.org/wiki/2020%E2%80%93present_global_chip_shortage

https://en.wikipedia.org/wiki/2021%E2%80%932022_global_supply_chain_crisis