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

UPDATED! The announced TI CC2652P based “Sonoff Zigbee 3.0 USB Dongle Plus” from ITead, later renamed to “ZBDongle-P”, has been released and looks to be great value for a premium hardware package sold for a low price. It is based on Texas Instruments CC2652P radio chip and this “ZBDongle-P” variant is to be sold side-by-side as an alternative to their new “ZBDongle-E” variant that is based on Silicon Labs EFR32MG21 that SoC chips both practically have the same specifications on paper but uses different Zigbee stack firmware which will affect compatibility/support with different Zigbee gateway application implementations.

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

https://sonoff.tech/product/diy-smart-switch/sonoff-dongle-plus/

Sold at a very low price so assume ITead hope to make money on attach rate, so if you are new to Zigbee then recommend also buy some of their other Sonoff branded Zigbee devices as well:

https://itead.cc/?s=zigbee&post_type=product&type_aws=true

I personally recommend Sonoff battery-operated Zigbee door/motions/temperature sensors and button. Suggest reading the articles by NotEnoughTECH if want independent reviews of those Sonoff sensors:

https://notenoughtech.com/featured/sonoff-zigbee-sensors/

Also, I can personally recommend using a few of their USB adapters flashed as Zigbee Routers too.

UPDATES AND TIPS!

  • Price raised again, now from $14.99 to $19.99 in May 2022 due to increased components cost.
  • Price raised from $10.99 to $14.99 in January 2022 due to increased components cost for all.
  • First batch came pre-flashing with older firmware from 20210120 which works out-of-the-box with ZHA and Zigbee2MQTT, however, it is highly recommended to at least upgrade to firmware Z-Stack 3.x.0 build 20211217 or later
    • Other than many bug-fixes the newer firmware offer +9dBm transmission power instead (instead of +5dBm transmission power) as well as the possibility to configure up to +20dBm transmission power via software settings in ZHA integration and Zigbee2MQTT respectively.
  • To avoid EMF interference strongly recommended buy and use → Long USB extension cable
    • Another reason for using a USB extension cable is that the USB-plug design of ITead’s Sonoff Zigbee 3.0 USB Dongle Plus hardware adapter is a little short which makes it harder and sometimes impossible to plug it into some USB ports if the computer enclosure/chassis/casing is to thick around the USB-port as that will physically prevent the USB dongle from actually making a proper connection inside the USB port even if it looks like it is plugged in all the way that is possible.
    • Also follow all the general tips in https://github.com/zigpy/zigpy/wiki/General-tips-on-improving-Zigbee-network-range as all Zigbee Coordinator adapters is very sensitive to EMI/RFI interference (e.g. a noisy radio frequency environment will jam the signal and prevent it from receiving all Zigbee messages to it without errors). Connecting the dongle via a long “shielded” USB extension cable in a USB 2.0 port or USB 2.0 hub (and not a USB 3.0 port) to get it away from EMF sources will usually help a lot if experiencing connection or pairing symptoms/issues.
  • Win/Mac need Silabs drivers → CP210x USB to UART Bridge VCP Drivers - Silicon Labs
  • ITead official FW flashing guide → SONOFF Zigbee 3.0 USB dongle plus firmware flashing
  • Unofficial FW flashing without open case → https://github.com/JelmerT/cc2538-bsl/pull/114
  • Dongle hardware can also be used as Zigbee router (a.k.a. repeater) → flash router firmware

FIRMWARE UPGRADE REQUIREMENTS AND FLASHING SOFTWARE LINKS

New firmware for all popular CC2652 adapters is released relatively regularly by the community, and each release is based on latest upstream SDK from Texas Instruments and contains loads of bug-fixes.

Dongle firmware upgrade prerequisites key points are:

Adapters based on CC1352 or CC2652 chips can be flashed by putting them in the bootloader. After you have done this one of the following tools can be used to flash it. See your adapter manual on how to enable bootloader (boot mode) manually or use software that support automatic BSL mode for it.

Upgrade firmware with one of these (ZigStar GW Multi tool and cc2538-bsl support auto BSL):

https://sonoff.tech/product-review/zigbee-3-0-usb-dongle-plus/

https://sonoff.tech/new-product-coming-soon/?fbclid=IwAR2nyXNbxQ2K0-yIx7ccPtG6OAY_6hJkVG6xHwdnRfU23AYvfXFREDagCjQ

Comparing “ZBDongle-P” vs. “ZBDongle-E” vs. barebone EFR32MG21 dongle

image versus image versus image

Feature/Model ZBDongle-P ZBDongle-E 9888010100045
Radio SoC/MCU chip Texas Instruments CC2652P Silicon Labs EFR32MG21 Silicon Labs EFR32MG21
Zigbee Stack (Serial Interface Protocol API/CLI) Z-Stack v3 (ZNP 3) EmberZNet (EZSP v8) EmberZNet (EZSP v8)
Optional Zigbee Router firmware Yes (9dBm firmware available from Koenkk) Yes (20dBm firmware available from ITead) Yes (20dBm firmware available from ITead)
USB to UART/Serial Converter Chip CP2102 or CP2102N CH9102F CH340
USB EEPROM Product Description ID SONOFF Zigbee 3.0 USB Dongle Plus SONOFF Zigbee 3.0 USB Dongle Plus V2 None (no USB chip EEPROM)
Home Assistant USB Auto Disovery Yes Not yet Not possible
Flow Control None by default (Hardware flow control optional with alternative firmware and flipped dip-switch) Software flow control Software flow control
RF Transmit Output Power 9dBm (firmware hardcoded), Max: 20dBm 20dBm (default) 20dBm (default)
Antenna External (rotatable and tiltable) External (rotatable and tiltable) Onboard circuit board antenna
Enclosure/case Aluminum all-metal shell casing Aluminum all-metal shell casing None
Length 63mm 52mm ?
Packaging Retail-box with manual Retail-box with manual Anti-static bag only
Home Assistant ZHA Supported Supported Supported
Zigbee2MQTT Supported Currently in development by zigbee-herdsman dev, see https://github.com/Koenkk/zigbee-herdsman/issues/319 In development by zigbee-herdsman dev, see https://github.com/Koenkk/zigbee-herdsman/issues/319
IoBroker Supported Currently in development by zigbee-herdsman dev, see https://github.com/Koenkk/zigbee-herdsman/issues/319 In development by zigbee-herdsman dev, see https://github.com/Koenkk/zigbee-herdsman/issues/319
OpenHAB ZigBee Binding Not yet, see request and discussion Supported Supported
Domoticz Zigbee Plugin Supported Supported Supported
Jeedom Zigbee Plugin Supported Supported Supported

Technical overview from the perspective of an end-user and Zigbee enthusiast:

Texas Instruments (TI) CC2652P Zigbee radio chip in this dongle uses TI’s Z-Stack 3.x firmware and ZNP 3.x API which is supported by Zigbee2MQTT (for Zigbee to MQTT in openHAB) but not yet supported by the native openHAB ZigBee Binding (which currently only support TI’s older CC2530/CC2531 chips with Z-Stack Home 1.2.x firmware and ZNP 1.2.x API that is now obsolete as it does not support Zigbee 3.0 and its firmware and SDK no longer maintained by TI).

Texas Instruments CC2652P is together with the competing Silicon Labs EFRMG21 chips at this time the most capable and most powerful multi-protocol MCU with 2.4 GHz radios on the market. CC2652P radio chip is currently also the most popular as a Zigbee Coordinator and Zigbee Router in the DIY Zigbee userbase community because it is newer so the firmware is well maintained and is stable/mature in both Zigbee2MQTT and the built-in ZHA integration for Home Assistant. Just like Silabs EFRMG21, TI’s CC2652P feature an integrated Power Amplifier that is technically capable of +20 dBM amplification (though legally the firmware is probably not allowed to be configured to use more than +10 dBM amplification).

According to their marketing material, it will come pre-flashed with Texas Instruments Z-Stack 3.x.0 coordinator firmware and it should work out-of-the-box with either Zigbee2MQTT (which uses zigbee-herdsman so will probably work with IoBroker too) and Home Assistant ZHA integration (which uses zigpy so will probably work with Jeedom too), but is will however not yet work with OpenHAB’s Zigbee-Binding since the zstack driver for zsmartsystems’s com.zsmartsystems.zigbee library which it relies on does not yet support the new/updated TI Z-Stack 3 (Z-Stack 3.0.x and Z-Stack 3.x.x) serial API commands:

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

Interested developers should note cdjackson did start work on initial Z-Stack 3 driver 2-years ago here:

https://github.com/zsmartsystems/com.zsmartsystems.zigbee/tree/zstack_driver

In addition, ITead specifically mentions that this TI dongle can alternatively function as a Zigbee router (presumably by flashing Zigbee router firmware instead and open access buttons as pressing a button to enable pairing/joining mode is usually required).

I also read that this time they have also added proper electromagnetic shielding to the radio chip and antenna parts onboard the board itself, meaning they must have learned from some of their design flaws in regards to electromagnetic interference and radio signal reception.

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

https://www.facebook.com/iteadstudio/posts/4960944183932977

It is based on Texas Instruments CC2652P (CC2652 with integrated +20 dBm amplifier) Zigbee radio and features a metal casing + an SMA connector with an external antenna. It looks a little on the large side for USB 2.0 Type-A but still recommend using a USB extension cable.

Interestingly it uses a Silabs CP2102N UART-to-USB chip so wonder if it will have unique ITead VID and/or PID strings specific for this adapter so could be added via automatic USB discovery, like in HA:

PS: I understand ITead went with CC2652P instead of Silicon Labs EFR32MG21 for this “Plus” dongle version because of the current silicon chip shortage (which Silabs parts suffered for more than most).

Hopefully, we will also see ITead release a new fixed revision of their cheaper Zigbee 3.0 USB dongle with proper RF shielding and either corrected PCB antenna design or better yet a ceramic chip antenna.

https://community.openhab.org/t/itead-zigbee-3-0-usb-dongle-stick-only-cost-7-and-is-based-on-silicon-labs-efr32mg21/115034

As we know, ITead’s previous ‘non-Plus Zigbee 3.0 USB dongle’ is/was based on Silabs EFR32MG21 SoC which has just as powerful MCU and radio, but sadly was proven that implementation in ITead’s first Zigbee 3.0 USB Dongle PCB board revision had a badly designed integrated PCB antenna with poor tuning and no electromagnetic shielding which caused huge issues in radio reception, and to this date, it has been listed as “out-of-stock” since after the initial batch was sold out. Again, very sad since that could also have been a great Zigbee Coordinator adapter if it had been properly engineered. Hopefully, they will decide to take another stab and redesign that as a new product after the chip shortages as it would be great if they could also offer a Silabs EFR32 based alternative for extended compatibility.

2 Likes

Wondering if this CC2652P serial port will have pins connected for RTS / CTS Hardware Flow Control?

Update: ITead now posted some documentation which states that this hardware donle does support “Hardware Flow Control” but default firmware that it ships with does not so community need to build it:

https://sonoff.tech/product-review/zigbee-3-0-usb-dongle-plus/

The dongle is pre-flashed with the official Zigbee 3.0 coordinator firmware, which does not support software flow control. The dongle supports hardware flow control, if you want to enable it, please set the dip switch to on, and generate the firmware that supports hardware flow control before running, see the following document for details on how to generate the corresponding firmware.

https://sonoff.tech/wp-content/uploads/2021/09/Zigbee-3.0-USB-dongle-plus-firmware-flashing-.docx

Enable hardware flow control and generate firmware (optional) If you need to enable the hardware flow control of the CC2652P USB Dongle, you need to use CCS to import the ZNP project to configure and compile the firmware that supports the hardware flow control.

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.