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

Yes, but i follow step 1 then It start immediately uploading and then i got error for transfering.

Sorry can’t help further. You might want to contact Sonoff to see if they can help.

Also the first post has links to other flashing methods you can try, eg using

Yeah i saw that. But i dont know where to start, I don’t understand python at all.

I tried this method too but without success… Like you

I got mine working. I follow this ](

Initially I didn’t notice that I was missing command window, where you need press keys. And then i got similar Gecko Bootloader v1.12.00 like tutorial was showing.

ITead’s naming schema is a bit confusing but please understand that you can not flash a Silicon Labs based adapter like the “ZBDongle-E” (“Sonoff Zigbee 3.0 USB Dongle Plus V2”) with flashing software made for Texas Instruments based adpters like the “ZBDongle-P” (“Sonoff Zigbee 3.0 USB Dongle Plus” that is not the “V2” varient).

Note that you either need to stop Home Assistant to flash it or better yet unplug the USB dongle and plug it into another computer instead where you install the drivers and the flashing tool to flash it from there. You will of course also need to install WCH CH9102 device drivers to access the USB adapter.

If you have the “ZBDongle-E” (“Sonoff Zigbee 3.0 USB Dongle Plus V2”) then highly recommend that you use the Elelabs Firmware Update Utility → (or walthowd’s updater image which uses it → ).

Yes those are Python-based tools but you do not need to know how to read/script Python code to use them as all you need to do is install Python for Windows or Python for Mac/MacOS and copy the commands from their documentation into the command prompt / command line tool.

1 Like

FYI, pull request has now been merged into the Home Assistant core dev branch (and matching ZHA docs PR has also been merged into the next branch), so the ZHA integration in the upcoming Home Assistant 2022.9 release should hopefully be able to automatically detect this new “ZBDongle-E” USB adapter.

By the way, the ZHA integration in the upcoming Home Assistant 2022.9 release should also have new features for Zigbee network backup and restore function that will enable cross-migration between different Silicon Labs (ezsp), Texas Instruments (znp), and ConBee/RaspBee (deconz) based Zigbee Coordinator adapters.

Check out this related cummunity forum discussion regarding backups, restoring, and migrating Zigbee network from a to the same or different Zigbee Coordinator adapters:


Can you please explain to me how you got it to work ? I still get transferring error, I would highly appreciate details steps as I am really noob on the subject.


I am planning on migrating from a ConBee II / Deconz setup over to Sonoff Zigbee 3 / Z2M. I have network of various Aqara, IKEA, Philips and Sunricher devices. Since the ZBDongle-E Z2M is not yet fully supported should I buy the “-P” version or wait a bit? I guess the support on “-E” might be some time off?

They are so inexpensive so a tip is to buy one of each (or better yet a few of each) because it is recommended to use ZBDongle-E and ZBDongle-P adapters as very good Zigbee Router devices by flashing these adapters with Zigbee router firmware to join in order to act as dedicated signal repeaters in your make your Zigbee network mesh to achieve best possible range and coverage. That way you will also have spares adapters at home and in use without being wasted, so you can always take on and repurposed by flashing back to Zigbee Coordinator firmware and then restore Zigbee network from backup in case your Zigbee Coordinator becomes corrupt or faulty.

Anyway, see Zigbee2MQTT discussion →


The is nothing wrong with the ZBDongle-E hardware as this and other Silicon Labs based EZSP (EmberZNet Serial Protocol) adapters are very stable in Home Assistant’s ZHA integration as well as in other open-source applications such as OpenHAB and Domoticz, but Zigbee2MQTT’s “ezsp” adapter software code is not quite mature enough yet to be recommended to everyone, so it depends if you have an “early adopter personality” and are willing to help the community by acting as a tester who not only report all bugs/issues you find in a constructive manner to the Zigbee2MQTT project but also try to work with your fellow community members with narrow down those bugs in order to help the developers.

The lack of maturity of Zigbee2MQTT “ezsp” adapter is really a catch-22 problem because the “ezsp” adapter support has already been available in Zigbee2MQTT (zigbee-herdsman) for a long time however it still does not have many users who are active in the community, which is probably because it is not listed as “recommended”, so that it holding back the developnment of the “ezsp” adapter for Zigbee2MQTT (zigbee-herdsman) since not enough users in the community is actively helping the developers finding the remaining issues by working with them by reporting bugs and assisting in troubleshooting. This has meant that the “ezsp” adapter has remained experimental and kept alpha-stage maturity since the implementation was merged:

Much more deeper troubleshooting here →

Regardless, remember that Zigbee2MQTT (and zigbee-herdsman) is a free and open source project with only a few volunteering developers who work on that code as a hobby for fun in their spare time without getting paid for working on Zigbee2MQTT (and zigbee-herdsman). As such there is no deadlines or prioritization other than those that the developers put on themselves, which in FOSS/FLOSS project is usually only what falls under their own personal interests, so will be very individual.

For z2m, get the “P” and don’t look back. The TI chipset is what the primary z2m dev uses and will likely always be first among peers for z2m.

For ZHA, the opposite is true. The SI Labs chip used in the “E” is the same chip Nabu Casa chose for the Yellow and upcoming Skyconnect USB stick. It will likely be first for ZHA and HA Thread developments.

The Yellow/Skyconnect status should help bring parity between the two to z2m, but I wouldn’t wait.

I don’t think either chip has a clear advantage looking at the spec sheets.

1 Like

I took the advice of @Hedda and bought one of each so that I can set up Z2M with the “P” version and also start some testing with the “E” version and contribute with testing and feedback.

1 Like

I purchased a -E last week and had nothing but issues with pairing using z2m. Purchased a -P a few days ago and it’s working perfectly.

FYI, the upcoming 2022.9 version of Home Assistant will feature a new UI and backend/core functions for backup and restore/recover in Home Assistant’s native ZHA integration to export/save or import/restore Zigbee network ZHA backup images from within Home Assistant’s UI (in the GUI for the ZHA integration) to make migration to a new adapter easy in ZHA.

It should even make migrations to or from ZHA and Zigbee2MQTT or vice versa between them relatively easy compared to how it has been in the past since both ZHA and Z2M now use support the same “Open ZigBee Coordinator Backup Format” standard that was developed in collaboration between ZHA/zigpy and Zigbee2MQTT developers.

I am however now sure if and how well Zigbee2MQTT itself handle migrations (backup and restore) between different radio adapters such as zstack/znp and ezsp when they are not of the same type to “upgrade” adapter in Z2M without migrating to ZHA.

Anyway, see Zigbee2MQTT discussion →

How is that really going to work?

The linked spec appears to only be for the low level stick network data.

I see moving stick to stick within a platforn, but how is all the off-stick data stored in each db’s translated?

Sorry if I was unclear, I did not mean to imply that the application level data would be migrated between the different applications or that the Zigbee network backups contain data about what you named your devices in the application layers of Home Assistant or Zigbee2MQTT. This type of Zigbee network backup will only backups and restores the “Zigbee network” (Zigbee network layer), meaning the Zigbee devices already joined/paired to your Zigbee Coordinator, so you should at least not need to go around your house in order to re-join/re-pair all your Zigbee devices with the Zigbee Coordinator, but the ZHA backup files using this “Open Zigbee Coordinator Backup Format” so it does not contain any data about application layers which technically have nothing to do with the Zigbee networking parts.

Read the primary use case here →

Zigbee2MQTT and vice versa will only be able to restore the backup of the Zigbee level, not a backup at the application level. To clarify; this new backup feature in Home Assistant’s ZHA integration will obviously never be specifically made to be a “ZHA to Zigbee2MQTT migration tool” nor a “Zigbee2MQTT or ZHA migration tool”. It is only that ZHA and Zigbee2MQTT both support saving the Zigbee network part of their backups using the same “Open ZigBee Coordinator Backup Format” standard which makes their “Zigbee network backups” compatible with each other for restoring/recovering the “Zigbee network” without having to re-join/re-pair all Zigbee devices.

The fact remains that this will still make migration between ZHA to Zigbee2MQTT or vice versa much easier than before since you do not need to re-join/re-pair all your Zigbee devices, which is not something that would usually take a very long time if have many devices and you have to first reset them all to factory default and then re-join/re-pair them one by one.

I don’t see how you get out of re-pairing or the functional equivalent if moving between ZHA/Z2M.

Seems like you’d have a functional mesh during transition, but at some point the devices would need to be interviewed to know what they are. Maybe an interview could be triggered as devices check in?

I guess we’ll see soon enough.

FYI, HA 2022.9 has now been released and release notes on news blog mention the new ZHA feature:–migration

They have however updated text a little removing the mentioning of Z2M since the version was in beta, but Everything Smart Home took a screenshot of the beta release notes which as seen did mention it:

Yes the application will re-interview the device and that should be done automatically. That process would be the same if restoring a backup file “Open ZigBee Coordinator Backup Format” in ZHA or Zigbee2MQTT or any other Zigbee implementation supporting the same backup format.

Already joined/paired devices with properly coded Zigbee firmware should usually connect and be “re-interviewed” automatically within 24 hours but some devices, especially battery-powered devices may have to be manually woken up so that they will connect in order to send a state update, so if you for example have door/window sensors then you need to open the doors/windows and a button/remote device may need to have one of its button pressed in order to initiate a state change.

Some troublesome battery-powered devices with poorly written Zigbee firmware are however still known to need to have their battery removed and put back in in order to initiate a connection to the Zigbee Coordinator.

Still, the main point and purpose with these different applications using the same “Open ZigBee Coordinator Backup Format” standard is thjat that you should not have run around your house to factory reset any devices or go through the whole joining/pairing process with each and every one of your Zigbee devices when migrating from another playform that uses the same backup format standard if you restore from a valid backup made by either ZHA or Zigbee2MQTT, no matter if that backup was not generated in the same Zigbee implementation. So I think this compatibility will definitely be welcomed by many people with 100+ Zigbee devices wanting to migrate from Zigbee2MQTT to ZHA or vice versa.

Again, if you migrate from Zigbee2MQTT ot ZHA or vice versa then your automations and scripts will not automagically be updated and it does not restore the application layer which contains your device names and entities names, so you would still have a to manually fix your automations and scripts to use the newly given names or rename all your device names and entities names to match your old names.

The built-in restore of a backup file to migrate will as such not be automagic “next next finish” process.

From other posts, it looks like they come back with default auto generated names.

We will still be running around the house figuring out what sensor is where.

It’s a great feature and improvement.

Docs should be edited to set expectations. Folks with existing nets are still effectively down for extended periods.

There are no docs about this feature/function as of yet, please feel free to contribute info about this: