Short Intro
Those who follow Zigbee2MQTT development, are already familiar with the fact that EFR32MGXx coordinators are not officially supported in Zigbee2MQTT. They have always been in experimental stage of development and never passed it. This includes the Sonoff ZBDongle-E, SkyConnect, SMLight SLZB-07 and other sticks based on the EFR32 chip by Silicon Labs.
Recently, Zigbee2MQTT announced that the ezsp
driver that powered these coordinators is deprecated and obsolete, being replaced with the new ember
version. In this article, I’m sharing how to update your EFR32MG21-based coordinator to the new firmware and setup Zigbee2MQTT to work with it. I will be doing this on a Sonoff ZBDongle-E. The full list of supported adapters is at the bottom of this article (jump).
About the Ember firmware (NCP)
The new ember
driver brings certain improvement to EFR32MG21 coordinators, like better stability and performance, better backup & restore reliability and many other perks and tweak to get the most out of these coordinators. You can check out the full list here.
If you have a backup with ezsp v12
that you’ve used before and it worked, it will restore successfully on the new ember
driver. If you’ve been using ezsp v13
and dont have a backup, swapping to the ember
driver should simply take over where you left off. Meaning, most likely your devices will stay intact and keep working even though this is not guaranteed.
The way the driver works is that if you have a backup from a version pre-12, the driver won’t start, and will throw an error indicating the version of the backup is not supported. This prevents overwriting files without a user’s knowledge, and prevents potentially restoring ezsp backups from a time where support for them was not great and had some bugs. Do it on your own risk.
About the Multiprotocol firmware (RCP)
If you’ve followed my guide about flashing the Sonoff ZBDongle-E to support Thread and Zigbee simultaneously, you are familiar with the RCP firmware. It has been working fine so far for me in my development build.
However, it’s worth noting that Home Assistant has announced there will be no further development as the RCP firmware imposes certain limitations and difficulties when Thread and Zigbee are used on the same radio. The developers suggest users get a separate radio to run Thread, resulting in a more stable setup. The good news is EFR32MG21 coordinators are cheap (Sonoff, SMLight, ZB-GW04) and you can repurpose your old Conbee II stick to act as a Thread Border Router!
Flashing the firmware
To flash the new firmware, we will use a custom firmware file from that updates the coordinator to EmberZNet firmware 7.4.x. At this point, the latest version for the Sonoff ZBDongle-E is firmware v7.4.2.0. You can find the full list on this repository.
Here’s how to flash the Sonoff ZBDongle-E, although the process is nearly identical for any EFR32MG21 coordinator.
- Download the firmware from darkxst’s repository
- Plug in the coordinator to your PC
- Navigate to darkxst’s web flasher
- Choose your coordinator and click Connect
- Wait for the flasher to connect
- Click Change Firmware
- Click Upload your own firmware
- Select the 7.4.2.0 you downloaded (e.g. ncp-uart-hw-v7.4.2.0-zbdonglee-115200.gbl)
- Press Install
Wait patiently for the process to finish. Do not disconnect the coordinator or turn of your computer. If everything went correctly, after reconnecting to your coordinator, you will see the new firmware version listed as 7.4.2.0.
Starting Zigbee2MQTT with Ember driver
With the new firmware flashed, we can configure Zigbee2MQTT to start using the new ember driver. If you haven’t already, you will need to update to Zigbee2MQTT version 1.36.0. In Home Assistant, navigate to Settings > Add-ons > Zigbee2MQTT > Configuration tab and change the serial configuration to match the ember driver. Here’s an example:
serial:
port: >-
/dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20220813094657-if00
adapter: ember
Start the add-on and observe the logs. You should see a few lines that say the ember adapter is starting:
[2024-05-09 08:33:26] info: zh:ember: ======== Ember Adapter Starting ========
[2024-05-09 08:33:26] info: zh:ember:ezsp: ======== EZSP starting ========
followed by a success message at the end:
[2024-05-09 08:33:29] info: z2m: Zigbee2MQTT started!
If you navigate to Settings > About in Zigbee2MQTT, you will see the new firmware version and driver:
Supported hardware
Even though the webflasher will only work with the ZBDongle-E, SMLight SLZB-07, SMLight SLZB-06M and the ZB-GW04, you can use NabuCasa’s Universal Web Flasher to flash any adapter locally. The full list of supported hardware is as follows:
- Sonoff ZBDongle-E
- [AliExpress, Amazon, Webstore]
- Sonoff iHost
- [AliExpress, Amazon, Webstore]
- (same firmware as Sonoff ZBDongle-E)
- EasyIot ZB-GW04 v1.1 and v1.2
- SMLight SLZB-07
- [AliExpress, Amazon]
- (may require unlocked bootloader first)
- SMLight SLZB-06M
- [AliExpress, Amazon]
- Aeotec Zi-Stick (model ZGA008)
- Sparkfun Things Matter MGM240P
- Requires bootloader to be flashed first using Silabs Simplicity Commander)
- Based on EFR32MG24
- Elelabs Zigbee USB Adapter ELU013
- Based on EFR32MG13P
- Elelabs Zigbee Raspberry Pi Shield ELR023
- Based on EFR32MG13P
Debugging Issues
The developer of the ember driver created an experimental log debugger tool, meant to guide you in solving any potential problems you might encounter. It’s still a work in progress, but you can check it out here.
Summary
I’ve been using the ember
driver in my development build for a few days now, pairing various devices and testing their performance. It operates without issues in my instance, and I did notice an improvement in pairing time for wired devices.
It’s important to note that support for the new driver is still experimental. I’ll continue to monitor the status of my network and keep this article updated.
How about when i am using ZBDongle-E with ROUTER firmware instead ?
Firmware build date
20220515
Firmware version
1.0.0
You can continue to use it to no problem.
The ember driver is for coordinators only.
thx 😎
Please buy SMLight directly, as it is a Ukrainian company. Buying their products on AliExpress you choose to give your money to China instead of Ukraine!
ANTVLED on AliExpress is the official store of SMLight.
All proceeds go to the company.
Regarding the Multiprotocol firmware (RCP), you mentioned that it is working fine in your development build. Do you know if the ember driver still will be released for the Multiprotocol firmware so i can just use it “as is”?
I’m not sure, quote from the Github thread:
It might, but it’s not a priority.
Can you please explain the following point in a bit more detail:
—
If you have a backup with ezsp v12 that you’ve used before and it worked, it will restore successfully on the new ember driver.
—
What backup are you talking about here (and there is no backup restore mentioned later in the article)?
Thank you.
If you have a backup created and tested (restored) which was made with driver ezsp v12 and up, it will work on the ember driver without issues.
You can check the version in Zigbee2MQTT > About.
It would be good to mention that if the starting point is ezsp pre-v12, doing an intermediary update to 7.3.x with ezsp first would put the backup file in the right format, before updating to 7.4.x with ember.
Neat article!
Concerning “[…] Home Assistant has announced there will be no further development as the RCP firmware […]”:
Does that mean they drop further development into the whole multiprotocol idea too?
Couldn’t find any further information about that.
I kinda liked the idea of having one dongle to do both Zigbee & Thread. Instead of two separate ones (and therefore two USB slots taken).
But reading up on it right now, the limitations of the whole multiprotocol seem unresolvable for now…
Anyway, good article, thanks!
Hello Stefan,
Please read this:
https://www.home-assistant.io/blog/2024/01/25/matter-livestream-blog/#using-home-assistant-yellow-or-home-assistant-skyconnect
It will remain experimental, but it won’t be recommended anymore.
Alright. Thanks for the clarification.
FYI, Zigbee2MQTT updated their website so it does no longer say that it is not recommended.
You can do a comparison of the top best smart circuit breakers for hass or the best power meters of 2024
Hello I just flashed my Sonoff Zigbee 3.0 USB Dongle Plus V2.
The flashing worked fine.
Bu now Z2M is not starting anymore.
I changed the adapter in ember.
It is giving an CRC error:
sing ‘/app/data’ as data directory
[2024-05-10 15:48:15] info: z2m: Logging to console, file (filename: log.log)
[2024-05-10 15:48:15] info: z2m: Starting Zigbee2MQTT version 1.37.1 (commit #ea39d86)
[2024-05-10 15:48:15] info: z2m: Starting zigbee-herdsman (0.46.6)
[2024-05-10 15:48:15] info: zh:ember: ======== Ember Adapter Starting ========
[2024-05-10 15:48:15] info: zh:ember:ezsp: ======== EZSP starting ========
[2024-05-10 15:48:15] info: zh:ember:uart:ash: ======== ASH NCP reset ========
[2024-05-10 15:48:15] info: zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control.
[2024-05-10 15:48:15] info: zh:ember:uart:ash: Serial port opened
[2024-05-10 15:48:15] info: zh:ember:uart:ash: ======== ASH starting ========
[2024-05-10 15:48:15] error: zh:ember:uart:ash: Received frame with CRC error
[2024-05-10 15:48:15] error: zh:ember:uart:ash: Received ERROR from NCP while connecting, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT.
[2024-05-10 15:48:15] error: zh:ember:uart:ash: ASH disconnected | NCP status: ASH_NCP_FATAL_ERROR
[2024-05-10 15:48:15] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
[2024-05-10 15:48:15] info: zh:ember:uart:ash: ======== ASH NCP reset ========
[2024-05-10 15:48:15] info: zh:ember:uart:ash: ======== ASH starting ========
[2024-05-10 15:48:16] info: zh:ember:uart:ash: ======== ASH connected ========
[2024-05-10 15:48:16] info: zh:ember:uart:ash: ======== ASH started ========
[2024-05-10 15:48:16] info: zh:ember:ezsp: ======== EZSP started ========
[2024-05-10 15:48:16] info: zh:ember: [STACK STATUS] Network up.
[2024-05-10 15:48:16] error: z2m: Error while starting zigbee-herdsman
[2024-05-10 15:48:16] error: z2m: Failed to start zigbee
[2024-05-10 15:48:16] error: z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
[2024-05-10 15:48:16] error: z2m: Exiting…
[2024-05-10 15:48:16] error: z2m: Error: [BACKUP] Current backup file is from an unsupported EZSP version (min: 12).
at EmberAdapter.getStoredBackup (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1322:23)
at EmberAdapter.initTrustCenter (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1113:33)
at EmberAdapter.initEzsp (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:795:19)
at EmberAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:2642:24)
at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:124:29)
at Zigbee.start (/app/lib/zigbee.ts:62:27)
at Controller.start (/app/lib/controller.ts:109:27)
at start (/app/index.js:107:5)
What to do? Help please
[2024-05-16 10:40:04] info: zh:ember:uart:ash: ======== ASH starting ========
[2024-05-16 10:40:04] error: zh:ember:uart:ash: Received frame with CRC error
[2024-05-16 10:40:04] error: zh:ember:uart:ash: Received ERROR from NCP while connecting, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT.
[2024-05-16 10:40:04] error: zh:ember:uart:ash: ASH disconnected | NCP status: ASH_NCP_FATAL_ERROR
[2024-05-16 10:40:04] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
I have this problem too. Have you found a solution?
same here, did you solved it ?
I did change back the adapter to EZSPand it did work all again???
Showing at info I’m now running EZSP V13 instead of V8??
with the coordinator build: 7.4.2.0 build 0
Forgot the 2 comments before.
I did after a startup as EZSP for a test change again the adapter in ember.
Now it is starting up as ember device.
Thanks for the effort
Working Like Charm!,
I didn’t even knew (or checked) If dongle-E was compatible with Z2M (I just assume it was and it worked! for the most part).
On 1.36.1 my office automations started to fail sometimes and I downgraded to 1.35.1 until I read this article, now I’m on the latest version with the ember driver and my network can’t be better!.
Thanks!
Hi, thanks for the clear instructions.
I flashed my SonOff dongle-E OK (when I rerun darkxst’s web flasher it shows with the correct version).
But when I plug the SonOff dongle-E back into my Home Assistant OS (on a Generic x86-64 mini-PC) the console shows “ACPI BIOS Error (bug): Could not resolve symbol (\SB-UBCT-RUCC, AE_NOT_FOUND (20230628/psargs-330)”.
If I swap the firmware on the SonOff dongle-E back to ezsp (and update the Zigbee2MQTT config back to ezsp driver) then Zigbee2MQTT runs again fine.
Any suggestions?
Thanks
Hey Charly,
I advise you to read this https://github.com/Koenkk/zigbee2mqtt/discussions/21462
and open a support ticket on the Z2M forum: https://github.com/Koenkk/zigbee2mqtt/discussions
Ember is still in beta, so bugs are expected.
Hi
Thanks for the link and advise.
Interestingly when I tried doing full reboot of the mini-pc Zigbee2MQTT then started fine using ember. So, although I get the Bios error, zibbee2mqtt starts up but needed the full reboot in my case.
Thanks again for the instructions.
Thank you for the tutorial, updated my Sonoff ZBDongle-E from version 6 to this one without any problem. No need to reconficure anything but the “adapter: ember” in Z2M settings.
Everything work like a charm for now.
Hi.
I currently have the Skyconnect stick and the SM Light slzb-06 is on route. I initially ordered the smlight slzb-06 as I am running HA on VirtualBox in Win 11 machine. Starting the VirtualBox instance meant I needed to unplug -replug stick in the machine or remove add stick from device manager after the instance has started.
I need a reliable Z2MQTT network and have almost 50 devices right now. I am trying to decide if
skyconnect for Thread or Z2MQTT or
SM Light slzb-06 for both or either. The skyconnect I will still need to remove add, I guess. I assume the SM Light slzb-06 won’t need this intervention?
Also is there an easy way to move the network between them or restore it?
thanks
You will not be able to restore the network succesfully between EFR32MG21 (SkyConnect) and CC2652P (SLZB-06) dongles.
The best way to do this is use the SkyConnect for Thread exclusively and set the SLZB-06 as your Zigbee coordinator (preferably over PoE/LAN).
Repair your devices once and turn it into a rock solid network.
Follow this guide for more:
https://smarthomescene.com/guides/how-to-build-a-stable-and-robust-zigbee-network/
Great info as always! Would you recommend buying a SLZB-06M over a SLZB-06? I see there’s also SLZB-06-p7 using CC2652P7 chip. I currently have a first gen ZBBridge but keep having issues with z2m (and I don’t think I can update it to this fw?? I’m using tasmota)
I am in the process of testing the SMLight coordinators.
If you are using Zigbee only, I would suggest you get the CC2652P7.
If you need a Thread radio, then the SLZB-06M is the only choice.
I’ve successfully migrated my ZBDongle-E controller to the new ember driver. I was using ezsp v12.
I’d to perform a backup of the previous firmware parameters using zigpy-cli and I restored the backup to the new firmware after flashing it. No issues, all is OK.
If anyone is having issues backing up the ZBDongle-E using zigpy-cli this is what I did:
1. git clone https://github.com/zigpy/zigpy-cli.git
2. Update pyproject.toml and modify line 21 to update bellows to version to 0.39.0
3. python3 -m venv venv
4. source venv/bin/activate
5. pip install -e .
6. zigpy-cli radio ezsp {port} backup > backup.json
The key point is to update bellows to version 0.39.0
and what about ZHA and new version? what about router mode? greetings
Home Assistant Yellow and SkyConnect also work fine with Ember with the firmwares from darkxst.
Yes, all EFR32-based modules work with ember driver.
I am currently using the RCP firmware. Do I need to do anything special to switch to Ember? Do I need to backup or re-pair?
Great guide. I’ve tried to install ember driver on my ZBDongle-E no problems installing, but I have a lot of problems with my switched after changing EnOcean PTM 215Z they are very slow responding compared to EZSP driver.
I found this: https://github.com/Koenkk/zigbee2mqtt/issues/22897
therefore i deleted? all devices and cleaned out Z2M completely and rebuild my ZB network – Took a lot of time due to 200 devices. I made sure I connected all switches to neaby router to ensure Unicast. I hoped that it would fix my issue but unfortunately it didn’t. I’ve also tried to get the latest ember driver relased 6 days ago, didn’t help either. So my question to you is that i can see that there is a driver with higher Baudrate 230400 instead of 115200 do you know if this maybe could speed up the datatransmission?