ITead’s “Sonoff Zigbee 3.0 USB Dongle Plus V2” (model "ZBDongle-E") based on Silicon Labs EFR32MG21 radio SoC/MCU

FYI, for those wanting to experiment with Multi-PAN RCP firmware for OpenThread/Thread on ITead’s Sonoff ZBDongle-E USB dongle you should know that user skgsergio on GitHub has compiled and published unofficial SiLabs Multi-PAN RPC firmware images for ZB-GW04 USB dongle (competing Zigbee Coordinator USB radio adapter from EasyIoT / eWeSmart Store) which used the same EFR32MG21 SoC and has a board that is pin-compatible so theoretically if flashed to Sonoff Dongle-E it should enable you to use Thread/OpenThread with the Home Assistant’s Silicon Labs Multiprotocol Addon, and while not optimized for the antenna used on the ITead’s Sonoff ZBDongle-E USB dongle board it should at least on paper technically work for a lab if want to test it. Check out → [REQUEST] ZDongle-E Silicon Labs RCP (Radio Co-Processor) firmware concurrent multiprotocol Zigbee and OpenThread · Issue #5 · itead/Sonoff_Zigbee_Dongle_Firmware · GitHub

More specifically read post 5 there → https://github.com/itead/Sonoff_Zigbee_Dongle_Firmware/issues/5#issuecomment-1457943670

Disclaimer for this is that I have not tested this myself, and keep in mind that unofficial firmware and use case is of course all highly experimental so use at your own risk and do not expect anything around Thread/OpenThread or Matter and HomeKit devices that uses Thread to work out-of-the-box even with the right type of firmware. To look at native Thread support in Home Assistant right now at this time you really need to be willing to go down the rabbit hole. For diving deeper see:

https://www.home-assistant.io/blog/2023/02/08/state-of-matter-and-thread/

and

https://github.com/zigpy/zigpy/discussions/894

Hello,

I am struggling to get the router firmware flashed on my Dongle-E. I have managed to flash coordinator firmware with no problems (v6.10.3) using secureCRT. with the file downloaded from ITEAD git for the router i get nowhere though (it gets stuck on transferring)

I ended up trying to use ELELABS utility to get a better log here is what i get back:

C:\elelabs>py Elelabs_EzspFwUtility.py flash -f Z3RouterUSBDonlge_EZNet6.10.3_V1.0.0.gbl -p COM3
2023/03/09 16:44:49 Elelabs_EzspFwUtility:   EZSP adapter in bootloader mode detected:
2023/03/09 16:44:49 Elelabs_EzspFwUtility:   Gecko Bootloader v1.12.00
2023/03/09 16:44:49 Elelabs_EzspFwUtility:   Allready in bootloader mode. No need to restart
2023/03/09 16:44:50 Elelabs_EzspFwUtility:   Successfully restarted into X-MODEM mode! Starting upload of the new firmware... DO NOT INTERRUPT(!)
send error: expected ACK; got b'\x18' for block 1
send error: expected ACK; got b'\x18' for block 1
send error: expected ACK; got b'\x18' for block 1
send error: expected ACK; got b'\r' for block 1
send error: expected ACK; got b'\n' for block 1
send error: expected ACK; got b'S' for block 1
send error: expected ACK; got b'e' for block 1
send error: expected ACK; got b'r' for block 1
send error: expected ACK; got b'i' for block 1
send error: expected ACK; got b'a' for block 1
send error: expected ACK; got b'l' for block 1
send error: expected ACK; got b' ' for block 1
send error: expected ACK; got b'u' for block 1
send error: expected ACK; got b'p' for block 1
send error: expected ACK; got b'l' for block 1
send error: expected ACK; got b'o' for block 1
send error: expected ACK; got b'a' for block 1
send error: NAK received 17 times, aborting.

2023/03/09 16:44:57 Elelabs_EzspFwUtility:   Firmware upload failed. Please try a correct firmware image or restart in normal mode.

I’m guessing that the firmware version is not correct for my device although i have downloaded this from the ITEAD git. Any help appreciated…

All recommendations I read online suggest to connect these ZigBee dongles to USB 2 ports, however, my server is equipped only with 3.0 USBs. Therefore, I used a USB 2 extension cable. Is this supposed to work and fix the interference?

It does, but even better is also connecting a powered USB 2.0 hub as that will practicate convert the port to USB 2.0 has less interference, read → Guide for Zigbee interference avoidance and network range/coverage optimization

3 Likes

The technical specs of ZBDongle-E specify the power required to run the device is 100mA:

By definition usb 2 supplies 100mA so not sure why powered usb is suggested. Do you know?

I covered the reason for that here → https://community.home-assistant.io/t/guide-for-zigbee-interference-avoidance-and-network-range-coverage-optimization/515752

To summerize it is easier to just recommend a powered USB 2.0 hub over a unpowered USB 2.0 hub because many users commonly use a single-board computers with a power-supply that is just barley has enough power to power the single-board computer itself, without any pheriphials, then they normally connect an unpowered harddrive + radio dongles (all of which adds to the total amount of power needed) and then it very common to get get intermittent issues which the root cause turn put to be power related problems.

Simply put, if you use a powered USB 2.0 hub then you have at least secured powered to the radio dongle so any issues you might still get should not have to due with that radio dongle not getting enough power.

3 Likes

I see.
I’m using Intel Nuc server with 4 usb 3 ports and it has enough power so I guess in my case powered hub is not needed.
Last question - does it really needs to be a hub? Can i
I just connect the dongle to a usb 2.0 extension cable? Why use a hub at all?

Again see this other thread which is more ontopic since interference for Zigbee is not specfic to this dongle → https://community.home-assistant.io/t/guide-for-zigbee-interference-avoidance-and-network-range-coverage-optimization/515752

There are several links to references there and more. Short answer is that all USB 3.0 ports and devices emit interference that seriously affect Zigbee.

Yes, but if I use long usb extension cable doesn’t this effectively make the connection usb2?

How about this - you can try the long usb 2.0 (not usb 3.0) cable, and see if that works for you.
If there is still strange behavior happening to your setup, maybe 1 or 3 or 6 or 60 months down the road, then you know what to do.

What Hedda said is still true.
And no, plugging a USB 2 cable to a USB 3 port does not “effectively make the connection usb2”. There will still be interference.
But, sure, it does not hurt to try - everything is relative… so who knows… maybe you will find the interference relatively acceptable.

1 Like

Yes, that is the whole point. The device is nothing more than a Serial to USB adapter that operates at a speed of 115,200kbps, far below the speed of even USB 1.0 speeds of 1.5mbps.

Again, I think that it would be much better if the interference discussion could be moved to that other thread since that i not specific to this dongle as it applies to all Zigbee dongles and devices, and would be better if questions and feedback on the suggested best practice in that guide were collected here instead → Guide for Zigbee interference avoidance and network range/coverage optimization

But for reference read this whitepaper PDF from Intel on usb.orghttps://www.usb.org/sites/default/files/327216.pdf as see this video (that is posted there) about how extremely sensitive Zigbee really is, and understand that just because it works does not mean that it works well, as for example battery powered devices will draw much more battery if they have to resend messages due to interference, so a common symptom of interference a “seemingly working” Zigbee setup is that batteries last only for weeks or months instead of for years:

Thank you so much for your clear instructions. Got Dongle E working as a router connected to my Dongle P coordinator within 5 mins after finding your post. I did get stuck with the boot button part as my led did not flash no matter how many times I tried, I read further and checked my device manager for the correct com port. I had to use COM5 and then it worked straight away. Would have saved some time if you had put check com port before connecting to device but we got there so all good :+1:

1 Like

Hi. What firmware did you use to make your E dongle to work as router please? I have been trying to flash the Z3RouterUSBDonlge_EZNet6.10.3_V1.0.0.gbl with SecureCRT but it gets stuck when starting to load. I only manage to flash the coordinator firmware without any problems… however router firmware not at all. Nothing… (also tried Com5 but nothing) Thanks

https://github.com/itead/Sonoff_Zigbee_Dongle_Firmware/tree/master/Dongle-E/Router

Try flashing with other tools:

Oki, I give up. Thanks for all the suggestions but sorry, not helping me at all. I’ve manage to achieve loads of stuff in my days considering my low level of knowledge in programming and computing. This is only for peeps with very good knowledge and experience. This is way to complicated and time-consuming.
Yes that is the firmware I’ve used and tried to flash. I have tried with Python, used several guides, followed step by step on Youtube… I’ve looked at your suggestions and tried to proceed with two of them. I will scrap the E-dongles and maybe consider to get the P-dongles instead. Look like more people are more successful with these…Seems to be working for others (at least cost less considering all the hours I spent on this). Good luck to everyone.

@kidnor I think the most common problem/solution is using/trying different baud rate speeds. When talking to the bootloader for flashing firmware then a baudrate speed of 9600 is more commonly used, while a higher baud rate speed like 115200 is used when actually using the application firmware. So try manually enter baudrate speed of 9600.

Then I believe the second most common problem/solution is installing good device drivers for the USB-to-Serial converter/bridge chip, which is not the same on ZBDongle-E and ZBDongle-P, as the ZBDongle-E board uses the WCH CH340 chip and the ZBDongle-P board uses Silicon Labs CP2102 or CP2102N chips. For WCH CH340 see → http://www.wch-ic.com/downloads/category/30.html

Third, I would generally suggest trying to flash from an other computer and/or other operating systems if you are having that many issues with trying to flash when using your existing computer and operating system. So if you are having problems using a Linux OS then try on a Windows OS, or vice versa.

1 Like

Hello, does anyone know how to reset the paired mode of ZBDongle-E using router firmware?

I had to change coordinators and re-pair all my devices, but can’t seem to get the ZBDongle-E unpaired from the previous dongle.

I tried flashing it back to coordinator firmware, and then flashing it into router firmware again - that didn’t work either.

Not sure if its been asked here (its a long thread…)

I ended up accidentally flashing my Dongle-E with 6.10.3 hw version of the firmware, and it seems to be working fine.

According to this page, there are some variants of the Dongle-E that do support the hw version of the firmware:

Note the comment lower down on that page:

  • hw = hardware flow control (RTS/CTS flow control - Only supported by ZB-GW04 V1.2)

I presume, because my coordinator is still working fine after flashing, that it supports the hw version. But just to be safe, how do I tell if its based on the ZB-GW04 V1.2 ?

I bought the coordinator in Nov 22 from Aliexpress here:

https://www.aliexpress.com/item/1005004119292740.html?spm=a2g0o.order_list.order_list_main.112.21ef1802dG9Ov7

UPDATE: After a little more research i realised that the ZB-GW04 V1.2 is not an updated version of the Dongle-E, but a totally different stick, so I’m unclear why my Dongle_E is still working, given I flashed it with the hw version of the firmware. At least the mystery is solved and I’ll flash it back to the sw version.

Has this been successful for you? Or do you have any other documented recommendations to share that actually work for flashing these devices with the router firmware?

I’ve tried every baud rate up to the documented 115200 on both Windows and Mac devices to try to flash these dongles with the router firmware using SecureCRT and I’m seeing the same results no matter which OS or even device I try to flash (I purchased 3). In most instances, I get to the exact same thing that @kidnor screenshot and then nothing else happens. I only get there when I do the following:

  1. Hold Bootloader button (inner button) while connecting USB cable to computer
  2. Start preconfigured session in SecureCRT
  3. Press 1 on Windows, Mac didn’t require this and would let me skip to step 4
  4. While still holding the Bootloader Button, press the reset button (outter button) on device
  5. Gecko Bootloader screenshows up, so let go of the Bootloader button.
  6. Press 1 and select file
  7. Get the same thing previous shared, it shows Transferring, but no status.

If I then hit Ctrl+c and then 1 again, I sometimes will get more text under “Transferring” showing the transfer speed, but it’s 0 and no time counting. No matter how long I let it set there, it just does nothing.

This is the same for all device combos. And I’ve looking into the other flashing methods, but I’m not well versed in the tools required for those methods, so I’m really looking to make the method recommended by the manufacturer to work. Any other suggestions?