Can't get ITead SONOFF Zigbee 3.0 USB Dongle Plus Model “ZBDongle-E” (EFR32MG21 variant) to work with neither ZHA nor zigbee2mqtt

I have a “ZBDongle-E” (EFR32MG21 variant):

root@odroid:/opt/homeassistant/tmp/elelabs-zigbee-ezsp-utility# python3
Elelabs_EzspFwUtility.py probe -p /dev/ttyACM0
2022/08/21 13:06:44 Elelabs_EzspFwUtility:   Generic Zigbee EZSP adapter
detected:
2022/08/21 13:06:44 Elelabs_EzspFwUtility:   Firmware: 6.10.3-41
2022/08/21 13:06:44 Elelabs_EzspFwUtility:   EZSP v8 

Home assistant is using the newest bellows zigpy library: Release 0.32.0 Release. · zigpy/bellows · GitHub

I can’t get this Zigbee Dongle to work, neither with ZHA nor with zigbee2mqtt. Here are the errors I see in the logs from ZHA

2022-08-21 14:03:48.052 ERROR (MainThread) [homeassistant.components.zha.core.gateway] Couldn't start EZSP = Silicon Labs EmberZNet protocol: Elelabs, HUSBZB-1, Telegesis coordinator
Traceback (most recent call last):
File "/usr/local/lib/python3.10/asyncio/tasks.py", line 456, in wait_for
return fut.result()
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/zha/core/gateway.py", line 170, in async_initialize
self.application_controller = await app_controller_cls.new(
File "/usr/local/lib/python3.10/site-packages/zigpy/application.py", line 119, in new
await app.startup(auto_form=auto_form)
File "/usr/local/lib/python3.10/site-packages/zigpy/application.py", line 66, in startup
await self.connect()
File "/usr/local/lib/python3.10/site-packages/bellows/zigbee/application.py", line 134, in connect
self._ezsp = await bellows.ezsp.EZSP.initialize(self.config)
File "/usr/local/lib/python3.10/site-packages/bellows/ezsp/__init__.py", line 89, in initialize
await ezsp.version()
File "/usr/local/lib/python3.10/site-packages/bellows/ezsp/__init__.py", line 112, in version
ver, stack_type, stack_version = await self._command(
File "/usr/local/lib/python3.10/asyncio/tasks.py", line 458, in wait_for
raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError
2022-08-21 14:03:48.064 WARNING (MainThread) [homeassistant.config_entries] Config entry 'SONOFF Zigbee 3.0 USB Dongle Plus V2, s/n: 20220707200623 - ITEAD' for zha integration not ready yet; Retrying in background
2022-08-21 14:03:49.176 ERROR (SyncWorker_2) [homeassistant] Error doing job: Task was destroyed but it is pending!

Here are some further diagnostics:

root@odroid:/opt/homeassistant/tmp/elelabs-zigbee-ezsp-utility# lsusb
Bus 005 Device 002: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
root@odroid:/opt/homeassistant/tmp/elelabs-zigbee-ezsp-utility# uname -a
Linux odroid 4.19.219-odroid-arm64 #1 SMP Fri, 05 Aug 2022 10:01:20 +0000 aarch64 aarch64 aarch64 GNU/Linux

And the content from homeassistant/config/.storage/core.config_entries
      {
        "entry_id": "f186b6218d9274b7a57f4b141ee5c710",
        "version": 3,
        "domain": "zha",
        "title": "SONOFF Zigbee 3.0 USB Dongle Plus V2, s/n: 20220707200623 - ITEAD",
        "data": {
          "radio_type": "ezsp",
          "device": {
            "path": "/dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20220707200623-if00",
            "baudrate": 115200,
            "flow_control": "software"
          }
        },
        "options": {},
        "pref_disable_new_entities": false,
        "pref_disable_polling": false,
        "source": "user",
        "unique_id": null,
        "disabled_by": null
      }

Any further ideas woudl be very much appreciated!

im getting the same here so would love to hear a solution

Can not see from you log if the dongle have been firmware upgraded. The version should be something like 20220219.

I did not change the firmware, it is still the one as of delivery, but I believe it should be this one here: https://github.com/itead/Sonoff_Zigbee_Dongle_Firmware/tree/master/Dongle-E/NCP, I believe:
ncp-uart-sw_EZNet6.10.3_V1.0.1.gbl

The 6.10.3 would also match the above: Firmware: 6.10.3-41 from the elelabs-zigbee-ezsp-utility.

Look in this thread.

I believe this is the HW you got, right? There are numerous describtions on how to update the FW. Look in first post by Hedda.

Not the same device. Look at the thread title.

No. It is a ZBDongle-E. It is brand new and there are very few artciles about it around yet.
You can find quite a bit of information here: ITead’s “Sonoff Zigbee 3.0 USB Dongle Plus” model “ZBDongle-E” based on Silicon Labs EFR32MG21 +20dBm radio MCU now sold for $19.99 · Discussion #13373 · Koenkk/zigbee2mqtt · GitHub

Was not aware they would make a new dongle on a different chipset, only changing a small part of the name. Then I learned something today. Hope you get it to work.
Im very happy with my Texas-chip version

Sonoff ”ZBDongle-E” (EFR32MG21 variant) discussion on Home Assistant community forum is found here → https://community.home-assistant.io/t/itead-s-sonoff-zigbee-3-0-usb-dongle-plus-v2-model-zbdongle-e-based-on-silicon-labs-efr32mg21-20dbm-radio-mcu-now-sold-for-19-99/442695/

The dongle was easily detected using ZHA integration from beginning (on USB 3 port on a Pi), but I was unable to add any devices to this. After few attempts this has started working when I plugged to USB 2 port and successfully added various Aqara sensors.

When I connect it to a USB 3 port dmesg says:

[226889.904246] usb 5-1: new full-speed USB device number 3 using xhci-hcd
[226890.053394] usb 5-1: New USB device found, idVendor=1a86, idProduct=55d4, bcdDevice= 4.42
[226890.053402] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[226890.053405] usb 5-1: Product: SONOFF Zigbee 3.0 USB Dongle Plus V2
[226890.053408] usb 5-1: Manufacturer: ITEAD
[226890.053411] usb 5-1: SerialNumber: 20220707200623
[226890.057158] cdc_acm 5-1:1.0: ttyACM0: USB ACM device

When I connect it to a USB 2 port I get errors:

[227075.459382] usb 4-1: new full-speed USB device number 6 using ohci-platform
[227075.632676] usb 4-1: device descriptor read/64, error -12
[227075.912675] usb 4-1: device descriptor read/64, error -12
[227076.192673] usb 4-1: new full-speed USB device number 7 using ohci-platform
[227076.365986] usb 4-1: device descriptor read/64, error -12
[227076.645957] usb 4-1: device descriptor read/64, error -12
[227076.752641] usb usb4-port1: attempt power cycle
[227076.955931] usb 4-1: new full-speed USB device number 8 using ohci-platform
[227077.369256] usb 4-1: device not accepting address 8, error -12
[227077.542571] usb 4-1: new full-speed USB device number 9 using ohci-platform
[227077.955897] usb 4-1: device not accepting address 9, error -12
[227077.955999] usb usb4-port1: unable to enumerate USB device

I am on an ODROID M1: ODROID-M1 with 8GByte RAM – ODROID

Not sure if this is supposed to make any difference for a standard like USB 2 vs. USB 3, though.

USB 3.0* Radio Frequency Interference Impact on 2.4GHz Wireless Devices - White Paper (PDF)
This is an intel whitepaper, on the usb.org website.
We all know (some) wifi uses 2.4GHz… guess what else uses 2.4GHz? Zigbee and bluetooth.

So yes.

Bump I too just received this today and the plus e device is not automatically recognized in Home Assistant.

I have done some more analysis now. I’ve bought a second stick (Slaesh’s CC2652RB stick) and tested both of them on my x86 PC with zigbee2mqtt. Both of them work reasonably well on different USB ports and with and without prolongation cable.

On my ODROID M1 I cannot get both of them to work on neither USB port with or without prolongation cable.

Currently it looks like it is a problem with the ODROID M1 USB ports.

What is also confusing me is that when I connect the sticks to the blue USB ports Linux seems to think that they are USB 2.0 and not USB 3.0:

root@odroid:~# lsusb
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 003: ID 10c4:ea60 Silicon Labs CP210x UART Bridge

root@odroid:~# lsusb -v
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00

The bcdUSB clearly says 2.00, but the USB port is blue and also the documentation says that the ports should be USB 3.0: ODROID-M1 with 8GByte RAM – ODROID

The device reports, though, that it has USB 3.0 ports:

root@odroid:~# lsusb 
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Not sure how I can access those, though??