ITead Zigbee 3.0 USB dongle/stick only cost $7 and is based on Silicon Labs EFR32MG21

Tags: #<Tag:0x00007fc411fc0c10> #<Tag:0x00007fc411fc0a58> #<Tag:0x00007fc411fc08a0>

ITead (of Sonoff fame) has announced that will soon sell an inexpensive Zigbee 3.0 USB dongle based on Silicon Labs EFR32MG21 which is a very powerful MCU with an integrated +20 dBm radio amplifier.

Note! Read all updates as real-life of this test show that it has issues that it need some workarounds.

Update 2021-04-21: People are reporting EMF/EMI/RFI interferences issues with the initially released hardware revision (HW version “V1.3 2020-12-07”) unless used with a long USB extension cable to get it away from other electronic devices/appliances that are sources of radio-frequency / electromagnetic interference. This seems likely due to the lack of electromagnetic shielding in the current design of the initial hardware, (and is maybe something that can perhaps also can be worked around by adding your own DIY electromagnetic shielding to the dongle board using metallic tape).

Update 2021-04-16: Firmware released with it has a bug so upgrade requires FW upgrade before use.

Update 2021-03-16: ITead has manufactured a limited production run and now sell it for $6.99 (US):

https://www.itead.cc/zigbee-3-0-usb-dongle.html

ITead Zigbee 3.0 USB Dongle Model: 9888010100045 (Hardware Revision Version 1.3)

image

They have posted a video on ITead’s Facebook group for Sonoff showing this new dongle working out-of-the-box with the ZHA integration for Home Assistant (via the bellows radio library for its zigpy dependecy):

https://www.facebook.com/watch/?v=262086502015726

In that video, they mention that they are targeting DIY home automation users and testing Silabs EmberZNet 6.7.8.0 firmware on it to ship it pre-slashed for compatibility with ZHA for Home Assistant. They also mention in the video at this EFR32 Mighty Gecko Series 2 dongle will ship with firmware config for 115200 bit rate speed so that you today would need to manually have to type in that port speed during the installation flow in ZHA integration for Home Assistant.

I have asked ITead via e-mail and been told that their design phase is completed and got the information ITead will initially only sell this Zigbee 3.0 Dongle without an external antenna (no SMA-connector or IPEX connector, so a built-in circuit board antenna only) and without a plastic-case as an enclosure (same as how they sell their CC2531 dongle today).

I was also told that this new dongle will use the exact same Silabs SKU for the EFR32MG21 chip that is used on the board inside their Sonoff ZBBridge Zigbee Bridge (which already works with ZHA for HA if flashed with the same type of firmware).

I have no idea if they started production run or when it will available for purchase, however, my guess is that it will be sold at a relatively low price from their China store considering that their existing Zigbee Home Automation 1.2 dongle cost $3.99 and their Sonoff ZBBridge cost $16.90 in their China store.

Tip! Ember USB Zigbee adapters/dongles/sticks like these are highly recommended over using a remotely connected Ember module using a serial-to-ip bridge / serial forwarding server like ser2net.

https://github.com/zigpy/bellows#warning-about-zigbee-to-wifi-bridges

FYI! Basically the serial protocol API for EmberZNet Zigbee coordinator application running on the Silicon Labs SoC/MCU does not deal well with unexpected loss of communication caused by network drops. The reason Ember remote bridges over serial-to-IP proxy server is not recommended is that clients using the EZSP serial protocol requires a robust connection between the EmberZNet Zigbee stack running on EFR32 MCU and the serial port of the Zigbee radio. With solutions such as ITEAD Sonoff ZBBridge or a Ser2Net serial proxy connection over a WiFi network it is expected to see NCP entered failed state. Requesting APP controller restart in the logs. This is a normal part of the operation and indicates there was a drop in communication which caused packet loss to occurred between the zigpy radio library and the Zigbee radio. The use of serial network proxies/bridges/servers over WiFi is therefore not recommended when wanting a stable Zigbee environment with Silicon Labs Ember based Zigbee radios. The developers of the bellows radio library for the zigpy project has more information about this if needed.

Updated thread with price + links and some new information from ITead after the product was released.

Older and newer firmware as linked to by ITead:

https://github.com/xsp1989/zigbeeFirmware/tree/master/firmware/Zigbee3.0_Dongle

Elelabs EZSP Firmware Upgrade Utility can be used to flash the firmware to a newer or older version:

https://github.com/Elelabs/elelabs-zigbee-ezsp-utility/

This firmware upgrade tool has also been packaged by walthowd in a docker image to make it easier:

https://github.com/walthowd/husbzb-firmware

Note! As you can see from the pictures the radio chip and the crystal does circuit does not have a EMF shielding (metal plate cover) which means that this board will be very sensitive with its current hardware design will have very high receive sensitivity to electromagnetic interference (EMI) / radio-frequency interference (RMI). This means that it will be extra important to keep it away from any other electronic devices or appliances that may generate an electromagnetic field (EMF or EM Field) or send our interfering radio signals. That includes the computer that you run your home automation application software on as well as any devices such as for example external harddrives or storage devices, power-supplies, etc., and of course any Wi-Fi access points or routers nearby. It also means that the dongle in its current hardware revision is unlikley to ever pass FCC certification. If adding electromagnetic shielding to your other devices/appliances is not possible then one workaround is to use the dongle with a long USB extension cable to get it away as far as possible from any sources of electromagnetic interferances.

PS: Also sad ITead didn’t add SMA or IPEX connector + external antenna or used ceramic chip antenna (new dongles with only integrated antenna should use a ceramic antenna, not just PCB trace antenna):

https://resources.pcb.cadence.com/blog/2020-understanding-ceramic-chip-antenna-vs-pcb-trace-antenna

https://www.mouser.co.id/pdfDocs/ceramicchipantennasvspcbtraceantennasacomparison.pdf

https://eu.mouser.com/Passive-Components/Antennas/_/N-8w0fa?P=1y9hq54Z1yu8mv5

6 Likes

I’m surprised they didn’t just drop the SM-011 onto a usb stick (which they sort of did if you dig around AliExpress you can find it)

Probably less expensive mass-producing USB-dongles in the long-run if use only an SoC with SMT.

I believe that RF SMD-modules in SMP (surface mount package) format like the mentioned SM-011 are normally used when quickly trying to make a brand new product if first-to-market is an important factor as part of a first-mover advantage marketing strategy, or when needing a very flexible circuit board design for the ability to simply change out the SMD radio-module in SMP format to switch RF-technology (to for example be able to sell alternative options with Zigbee, Z-Wave, WiFi, 315MHz/433MHz RF, etc. of practically the same products by reusing the device main circuit-board with different SMD radio-modules in SMP format. By the way, ITead now uses this concept of a replaceable “connectivity module” inside some of their newer Sonoff products where the built SMD radio-modules in SMP format that can be reuse:

https://notenoughtech.com/home-automation/sonoff-basic-r3-teardown/

Also, to compare, two competing USB-dongles based on Texas Instruments CC2652 SoC use SMC:

https://electrolama.com/projects/zig-a-zig-ah/

https://slae.sh/projects/cc2652/

However in this case, ITead will probably primarily compete on the price of their new Zigbee 3.0 USB-dongle plus the fact that they offering other inexpensive Zigbee devices that buyers also can order at the same time. Presumably, each Zigbee 3.0 USB-dongle sold by ITead will have an attach rate of some Sonoff bransed Zigbee devices as well.

Regardless I think it is great that they will offer a cheap Zigbee 3.0 USB Dongle for DIY-users as an alternative to their proprietary cloud-bound network-attached Zigbee 3.0 bridge/hub/gateway/controller.

1 Like

FYI, these + other EFR32 adapters is now also “Alpha” compatible with dev-branch of Zigbee2MQTT

https://github.com/Koenkk/zigbee-herdsman/pull/317

https://github.com/Koenkk/zigbee-herdsman/issues/319

This inexpensive Zigbee 3.0 USB dongle from ITead is now available for $6.99 (US) directly from China:

https://www.itead.cc/zigbee-3-0-usb-dongle.html

Looks like a limited first production run so maybe not get greedy and perhaps let developers order first?

Update 2021-04-21: People are reporting EMF/EMI/RFI interferences issues with the initially released hardware revision (HW version “V1.3 2020-12-07”) unless used with a long USB extension cable to get it away from other electronic devices/appliances that are sources of radio-frequency / electromagnetic interference. This seems likely due to the lack of electromagnetic shielding in the current design of the initial hardware, (and is maybe something that can perhaps also can be worked around by adding your own DIY electromagnetic shielding to the dongle board).

1 Like

CNX Software has now posted a blog-post with some more technical specifications on this new dongle:

1 Like

Does anybody know how it compares to CC2652P?

Today the closest competitor to Silicon Labs EFR32MG21 / MGM210 based USB sticks will be all the upcoming USB sticks that will be based on Texas Instruments CC2652P (CC2652R/CC2652RB variant with an integrated Power Amplifier).

Silicon Labs EFR32MG21 (EFR32 Mighty Gecko Series 2) SoCs and MGM210 modules are newer or released later and on paper, the EFR32MG21A020F1024IM32 used in thís ITead Zigbee 3.0 USB Dongle is more powerful than any currently available in Texas Instruments CC2652 series plus have slightly more onboard resources than the CC2652P, but I think that in practice for average users in a real-world scenario the MCU raw specification of Silicon Labs EFR32MG21 and Texas Instruments CC2652P on a data-sheet comparison will not be as important as antenna quality and antenna positioning.

https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-socs/device.efr32mg21a020f1024im32

https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-modules

https://www.ti.com/document-viewer/CC2652P/datasheet

  • Zigbee Stack = EFR32MG21 support EmberZNet versus CC2652P supporting Z-Stack
  • Both have separate bootloader firmware as standard so can be reflashed without debug adapter.
  • Flash Storage = EFR32MG21 has 1024KB flash versus CC2652P 352KB flash + 256KB ROM
  • RAM = EFR32MG21 feature 96KB RAM versus CC2652P featuring 80KB RAM + 8KB SRAM
  • CPU core = EFR32MG21 80MHz ARM Cortex-M33 versus CC2652P 48-MHz Arm Cortex-M4
  • Both feature 2.4 GHz amplified radio with maximum 20 dBm power transmitter (TX) output
  • Zigbee receive sensitivity (less is better) = EFR32MG21 -104 dBm versus CC2652P -100 dBm

https://community.arm.com/developer/ip-products/processors/trustzone-for-armv8-m/f/trustzone-armv8-m-forum/8338/what-is-the-top-level-difference-in-features-between-cortex-m33-and-cortex-m4

Though you also need to understand that each USB-module/adapter implementation will be different, like for example onboard circuit-board antenna versus SMA-connector or uFL + external antenna and several choices of USB-to-Serial/UART chips, so keep that too in mind when comparing USB dongles.

IMHO, a great quality fully positional external antenna on a Zigbee dongle can compensate for a lot.

I just got one of these and I’m having trouble getting it recognized in HA. I’m running on ProxMox, and I have forwarded the USB device to HA. Every serial port I’ve tried doesn’t work, I’m starting to think the default baud rate of 57600 isn’t right. Has anyone gotten this to work with the built-in Zigbee integration?

Don’t know if this will fix your problem but it’s something that has worked for me. Upon plugging in a USB device, the operating system usually detects its presence immediately. However, for it to become visible to Home Assistant, I’ve had to restart Home Assistant (Configuration > Server Controls > Restart).

Thanks, I did try that already. I’m still trying to figure out if it is making its way in the HA OS or not, the hardware page is so full of stuff it’s hard to make heads or tails of it. My APC UPS is there (it has a vendor ID), and my Aeotec Zwave stick is there, but there are a bunch of other usb and serial devices that seem to come from the host OS. I’ll try rebooting everything again though, it helps to know that it actually works. Did it auto-detect the port/speed or did you have to enter it manually?

Try setting port speed @ 115200. This got it recognized but … See the FB link at the first post.

Thanks @Rosto, that got me one step closer…

Same here… Still cannot seem to get devices paired with it…

ITead wrote previously that they would ship pre-flashed with firmware config for 115200 bit rate speed.

As mentioned before you do need to manually type in that port speed during the ZHA installation flow.

Seems like those dongles use CH340E USB-to-Serial chip so it will not connect unless set right speed.

Maybe someone would be willing to extend the probe in ZHA to always test 115200 before 57600? :innocent:

Tried your dongle on a bare-metal installation of Home Assistant OS on an SBC or x86-64 computer?

That is, it would be good if you could rule out the dongle as the fault by testing without Proxmox / VM.

Please help improve/enhance all of the integration documentation after you tested the dongle and ZHA:

https://github.com/home-assistant/home-assistant.io/blob/68fe05453ec6da839320f68acd471deaee19b888/source/_integrations/zha.markdown

Maybe take some inspirations from the step-by-step guides from blog-posts like this from @digiblur

https://www.digiblur.com/2020/07/how-to-use-sonoff-zigbee-bridge-with.html

Obviously you would need to change the information about port configuration which needs to reflect that connect to either local serial-port or a socket, see ex.: https://github.com/zigpy/bellows#configuration

Let’s jump into Home Assistant.

#7 Go to Configuration, Integrations, hit the Plus to add a new integration. Select Zigbee Home Automation .

Choose “Enter Manually” and hit Submit.

Radio Type is EZSP

Enter socket://:8888 and use 115200 for the port speed. Hit submit.

Give it a few seconds to query the device and you should see the following screen.

Congratulations! You did it! Hit Finish. You should now have a Zigbee integration in Home Assistant. Click Configure.

*Hit the Plus and start pairing your various Zigbee devices. *

You are all done! Add all your various Zigbee device types and enjoy!

I have added the coordinator successful like NK553 and Ronald stoop. but cant seem te get a device paired. Has anybody had any luck with this?

I have tried to following without succes:

Upgraded the firmware https://github.com/xsp1989/zigbeeFirmware/tree/master/firmware/Zigbee3.0_Dongle
Used ncp-uart-nsw_679_115200.gbl and ncp-uart-sw_679_115200.gbl (does anyone know the difference between these, accept for the filesize??).
Still cannot pair devices…

Tried using it on a Python venv Home Assistant on Windows… ZHA integration installs but still cannot pair devices… (to test if bare-metal works).

Also tested on ESXi and VMware Workstation. Integration works but no pairing.

Elelabs/elelabs-zigbee-ezsp-utility: Elelabs Zigbee EZSP Utility to perform firmware update on a range of Elelabs EZSP products as well as other generic EZSP adapters. (github.com)

At the bottom is says that you have to add these line in configuration.yaml… Tried it, didn’t work…

zha:
  zigpy_config:
    ezsp_config:
      CONFIG_APS_UNICAST_MESSAGE_COUNT: 12
      CONFIG_SOURCE_ROUTE_TABLE_SIZE: 16
      CONFIG_ADDRESS_TABLE_SIZE: 8

Arrgghh… What am I doing wrong?

Note that on Windows you need to make sure it uses pyserial-asyncio v0.4 instead of v0.5 due to a bug

https://github.com/pyserial/pyserial-asyncio/blob/master/README.rst

https://github.com/pyserial/pyserial-asyncio/issues/69

@Rosto Try dongle on a bare-metal installation of Home Assistant OS on an SBC or x86-64 computer.

https://www.home-assistant.io/installation/

For troubleshooting purposes you should really test it with “Home Assistant Operating System” first.

That is, would be good if can rule out dongle HW as the fault by testing without VMs or any other OS.

I got it working entering the 115200 bit rate speed as said by OP.

1 Like