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

Used this webflasher to update my ZBDongle-E. Then switched over to Zigbee2MQTT afterwards. Till now it’s running way better, no drops so far.

Not credited but that looks like it is a more or less a copy of the “sl-test” proof-of-concept by @darkxst

Thanks. I did see this blog, but it wasn’t clear to me if I could use it to flash the ROUTER firmware. Is that possible?

Do I need to reset or lose something to install it?

If it allows you to provide you own custom image file (.gbl) from other source then it should be possible.

You are going to need Python3 installed on your system. Python should be already installed if running Linux, but for Windows or Mac you will need to download and install Python for you operating system. Also, since the webbrowser needs to access the dongle as a serial device you also already need to have installed device drivers for the WCH CH9102F USB-to-UART bridge (USB-to-serial converter) chip that used by in the “ZBDongle-E” adapter (and installing a device driver may require rebooting of your operatingsystem again) → USB to High Speed Serial Port Chip CH9102 - NanjingQinhengMicroelectronics …then you of course need to stop any appliciations/services that is using the “ZBDongle-E” adapter (such as Zigbee2MQTT) before it can access it since serial devices only support one connection at a time.

Hello I’m using z2m with the default firmware and I have issue with a sensor pairing. If I update the firmware, will I need to re pair existing devices ?

You should not have to but recommend that you stop Zigbee2MQTT do backups to files with zigpy-cli before upgrading firmware as then you should be able restore those backups from the files:

zigpy-cli in turn uses bellows library which can also be used as a standalone tool for NVRAM backup:

https://github.com/zigpy/bellows/blob/dev/README.md#nvram-backup-and-restore

If have Zigbee2MQTT problems after firmware upgrade recommend post to zigbee-herdsman thread:

which firmware do you recommend to use for direct z2m use ?

Hey guys, could you tell me if my ZBDongle-E is up to date? Is my version compatible with Matter?

Well, I don’t know well how to update or how to download new versions.

Zigbee2MQTT version [1.30.4] commit: [unknown]
Coordinator type EZSP v8
Coordinator revision 6.10.3.0 build 297
Frontend version 0.6.127

I updated to 7.2.2 version and the sensor now pairs successsfuly

No, at least not out-of-the-box with the firmware that it ships with. It ships with Zigbee NCP firmware image which can only be used as dedicated Zigbee Coordinator (or as a dedicated Zigbee sniffer).

But that is really the wrong question to ask or you don’t understand what Matter is or how Matter works.

Matter is at the application layer and something that is supported in the Matter integration for Home Assistant and not just hardware or firmware. Regardless, no Matter devices use the Zigbee protocol.

https://www.home-assistant.io/integrations/matter/

Wireless devices for Matter can be based on either WiFi or Thread network protocol, and from an end-users point-of-view it has in practice nothing to do with Zigbee (even though most modern IEEE 802.15.4 (SoC radio chips) can usually technically be flashed with either Thread/OpenThread firmware or Zigbee firmware if the manufacturer/developer chooses to develop and release support for them).

https://www.home-assistant.io/integrations/thread

That is, Thread network protocol will be used as link/media for IPv6 for most battery-powered Matter devices while mains-powered Matter devices will instead use WiFi or Ethernet for their link/media.

https://github.com/project-chip/connectedhomeip/blob/master/README.md#architecture-overview

If you want to use Matter devices that are based on the Thread network protocol then you need to flash either OpenThread NCP or OpenThread RPC firmware for a dedicated “Thread Border Router”, or a firmware image with multi-protocol support such as either Multi-PAN RPC or a Zigbee NCP + OpenThread RPC combination.

As multi-protocol support using a single adapter is still experimental (and will probably will never be as good as dedicated adapters for each network protocol) I personally recommend buying and using a dedicated adapter for Zigbee Coordinator (NCP) and a separate dedicated adapter for Thread/OpenThread. For early-adopters suggest buying a Home Assistant SkyConnect USB adapter to use a dedicated Thread Border Router for Matter → https://www.home-assistant.io/skyconnect

Silicon Labs EmberZNet NCP Zigbee Coordinator 6.10.3.0 build 297 is the only firmware image version ITead has released for their Sonoff Zigbee 3.0 USB Dongle Plus V2” (model “ZBDongle-E”) dongle.

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

That is the latest official firmware version from ITead/Sonoff, but it is not the latest firmware version as there are many later versions released as unofficial firmware images from the community. See above.

Links + information about tools and images for updating Zigbee NCP firmware are in my original post above in this thread as well as already asked and answered multiple times in this discussion thread.

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-soc-mcu/442695#firmware-upgrade-requirements-and-flashing-software-links-4

Please follow and then ask more specific questions if you get stuck after you already tried your best.

1 Like

I’ve uploaded RCP 4.3.0 builds to go along with Silabs Multiprotocol addon 2.2 when its released shortly.

I will update web flasher here after release.

6 Likes

@darkxst should the Silabs Firmware Flasher work for flashing the official Sonoff Router firmware?

And also, does the Silabs Firmware Flasher require putting the device into the bootloader mode first like the other flashing methods?

This solution appears to have worked finally for me to flash this device with the Router firmware. It did require putting the device into the bootloader mode, but it worked like a charm. Thanks for sharing the silabs Firmware Flasher.

It should automatically put the device into bootloader mode if you are running the standard EZSP firmware or the MultiPAN RCP firmware. However to flash a device already running iTeads Router firmware you do need to manually put it into bootloader mode. The next release of universal-silabs-flasher will have a new option --sonoff-reset to achieve this without dissasembly of the device.

1 Like

Connect to the dongle plugged into your computer over serial and then you can use the network leave command to reset (forget) pairing.
On Linux: screen /dev/ttyACM0 115200
on Windows: try putty or any other terminal emulator

You can probably also use the internal ‘Boot’ button.

It turns out I had to just hold the reset button much much longer.
Forgot to update after asking this question…

Amazing! Thanks!

Hi all,
Trying to update my ZBDongle-E from 6.10.3 to something newer.
I’ve tried both 7.2.3 and 7.1.4 and can’t get Z2MQTT to start.
At first, I figured the serial port name in config had changed, and I set it to the new name.
Still won’t start. Same error on both versions:

´´´
Zigbee2MQTT:error 2023-07-10 00:12:23: Error: Connection not initialized
at Ezsp.execCommand (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/ezsp.ts:551:19)
at Ezsp.version (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/ezsp.ts:349:35)
at Driver.startup (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/driver/driver.ts:141:25)
at EZSPAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/ezsp/adapter/ezspAdapter.ts:165:16)
at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:132:29)
at Zigbee.start (/app/lib/zigbee.ts:58:27)
at Controller.start (/app/lib/controller.ts:101:27)
at start (/app/index.js:107:5)
´´´

Any ideas? I’m new to this, could be a simple error…

If using Zigbee2MQTT with a Silicon Labs based dongle then you should really always manually backup Zigbee network with zigpy-cli command tool before flashing firmware and restore that backup after flashing firmware. The reason is that Zigbee2MQTT does not yet support backup and restore of Silicon Labs, see this related discussion with info on how to backup and restore:

However, I guess probably wrong serial port configuration or something related to serial comminicatiln. You did not write your configuration but many Zigbee2MQTT users new using Silicon Labs EmberZNet based dongle to forget to add ”adapter: ezsp”, see example:

serial:
  port: /dev/ttyUSB0
  adapter: ezsp

Note that different firmware can use different bautrates so check firmware description.

You may also need to add the baudrate and/or rtscts if using a firmware with other baudrate and/or hardware flow control setting depending on firmware and hardware, see example:

serial:
  port: /dev/ttyUSB0
  adapter: ezsp
  baudrate: 115200
  rtscts: false

Anyway, better to ask in the Zigbee2MQTT community here instead if have issues with Z2M → Koenkk/zigbee2mqtt · Discussions · GitHub

1 Like

Thanks a lot for the reply. I tried adding baudrate and rtsccts, but still no avail.
I i guess I’ll revert to 6.10.3 then.
My config is here: