Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REQUEST] Support for Silicon Labs EFR32 (Mighty Gecko family) based Zigbee radio adapters using EZSP serial protocols? #168

Closed
Hedda opened this issue Apr 21, 2020 · 194 comments

Comments

@Hedda
Copy link
Contributor

Hedda commented Apr 21, 2020

Will you consider adding support for Silicon Labs Zigbee cordinator dongles/sticks via EZSP (EmberZNet Serial Protocol) CLI/API?

It is maybe possible for you to port the EZSP (EmberZNet Serial Protocol) code from the bellows library to zigbee-herdsman (in a similar manner to how zigpy-cc which was ported from zigbee-herdsman)?

  • Porting https:/zigpy/bellows open-source python code for EZSP commands to TypeScript for zigbee-herdsman?

    • Compared to https:/zigpy/zigpy-cc library that was in reverse ported from zigbee-herdsman's TypeScript code to Python script code which I guess is kind of proof that such protocol can ported between projects with similar goals?

I understand that the bellows library itself was based Silabs official EZSP Reference Guides from Silicon Labs, like UG100:

PS: Silicon Labs EFR32 family replaces its old ETR35x however both are Ember NCP and support the same EmberZNet Zigbee stack.

@Hedda
Copy link
Contributor Author

Hedda commented Apr 21, 2020

I understand that an adapter interface code needs to be implemented in zigbee-herdsman for Zigbee2MQTT and ioBroker support?

https:/Koenkk/zigbee-herdsman/blob/master/src/adapter/adapter.ts

https:/Koenkk/zigbee-herdsman/tree/master/src/adapter

Would that be a similar to how deConz (ConBee/RaspBee) adapters and ZiGate adapter has been added to zigbee-herdsman?

#72

#241

@Koenkk if you do not already have a Silicon Labs EFR32MG1 or EFR32MG2 based Zigbee dongle/stick then could I offer to donate hardware to you? Maybe make an earmark PayPal donation of $30 US-dollars to you so that you can purchase on for yourself?

PS: I am only a home automation enthusiast and not affiliated with Ebyte, Silicon Labs, or any resellers of hardware or software. Unfortunately, I do not have the TypeScript/JavaScript coding skills to port or implement EZSP adapter support zigbee-herdsman.

@Hedda Hedda changed the title [REQUEST] Support for Silicon Labs EFR32MG1 Series 1 Module (EFR32 family) based Zigbee radios using EZSP serial protocol? [REQUEST] Support for Silicon Labs EFR32MG1 Series 1 Module (EFR32 family) based Zigbee radio adapters using EZSP serial protocol? Apr 21, 2020
@Hedda
Copy link
Contributor Author

Hedda commented Apr 21, 2020

Silicon Labs also has a few different official EFR32MG2 and EFR32MG1 devkits called "EFR32 Mighty Gecko Wireless Starter Kit".

Perhaps more importantly, buying any "EFR32 Mighty Gecko Wireless Starter Kit" gives the buyer/dweveloer full official access to Silabs Zigbee Stack, SDK, libraries and documentations which should allow you to compile your own firmware for all their chips.

UPDATE! Silabs has now released a new $99 "EFR32xG22 Wireless Gecko Starter Kit" (SLWSTK6021A) which only contain one mainboard and two low-power radios (Zigbee Green Power compatible):

Silicon Labs SLWRB4180A which is the official EFR32xG21 +20 dBm powerful reference radio board can be bought separately:

https://www.silabs.com/development-tools/wireless/slwrb4180a-efr32xg21-wireless-gecko-radio-board

That same radio board is also included in the more expensive Silicon Labs SLWSTK6006A EFR32xG21 Wireless Gecko Starter Kit:

While the low-power radios are not really usable as Zigbee coordinators (as meant for battery operated endpoint devices), for $99 that kit can be useful to developers as buying such an official kit also gives full access to the Zigbee Stack/SDK and libraries.

@Hedda
Copy link
Contributor Author

Hedda commented Apr 21, 2020

Z-Smart Systems by @cdjackson also has Java code which support EZSP protocol for all Ember dongles at @zsmartsystems

Z Smart System has a Java device driver for Ember based serial dongles (among other dongles):

For reference, Z Smart System also has a sniffer library written in Java which uses same serial interface:

The framework implements a package structure that allows efficient use of re-usable components in a number of different applications.

Package Description
com.zsmartsystems.zigbee The main framework and cluster library implementation
com.zsmartsystems.zigbee.autocode Code generator for the ZigBee cluster library classes
com.zsmartsystems.zigbee.dongle.cc2531 Dongle driver for the Texas Instruments ZNP CC2531
com.zsmartsystems.zigbee.dongle.conbee Dongle driver for the Dresden Electronics Conbee
com.zsmartsystems.zigbee.dongle.ember Dongle driver for the Silabs EZSP Network Co-Processor
com.zsmartsystems.zigbee.dongle.ember.autocode Code generator for the Ember NCP dongle commands
com.zsmartsystems.zigbee.dongle.telegesis Dongle driver for the Telegesis dongle
com.zsmartsystems.zigbee.dongle.telegesis.autocode Code generator for the Telegesis dongle commands
com.zsmartsystems.zigbee.dongle.xbee Dongle driver for the Digi XBee dongle
com.zsmartsystems.zigbee.dongle.xbee.autocode Code generator for the XBee dongle commands
com.zsmartsystems.zigbee.console Console commands for the general framework
com.zsmartsystems.zigbee.console.ember Console commands for the Silabs Ember NCP
com.zsmartsystems.zigbee.console.main Main CLI console application
com.zsmartsystems.zigbee.serial Serial driver implementation
com.zsmartsystems.zigbee.test Overall tests and code coverage

Silicon Labs Ember EM35x / EFR32

The library supports the Silicon Labs EZSP protocol using ASH or SPI protocols over a serial interface. The implementation of the SPI protocol assumes that the SPI provides a TTY-like software interface to the application, or is otherwise abstracted via the ZigBeePort interface.

It is worth noting that EM3588 devices that have an embedded USB core will likely work with any baud rate, where dongles using external USB interface (eg CP2102 used with an EM3581) will likely require a specific baud rate.

Currently there are two main NCP images - one that supports hardware flow control with a baud rate of 115200, and one that supports software flow control with a rate of 57600.

Ember NCP configuration

The library provide a standard set of configuration constants to configure the NCP for use as a coordinator. There are two methods available in the Ember driver to manipulate the configuration maps updateDefaultConfiguration and updateDefaultPolicy. The configuration is sent to the NCP during the initialisation sequence which is performed when calling the ZigBeeNetworkManager.initialize() method, so any changes to configuration must be performed prior to this.

The Ember dongle driver includes a public method getEmberNcp() which returns a EmberNcp class. This class provides high level methods for interacting directly with the NCP.

Ember Reset

By default the library uses the ASH Reset command to reset the NCP when the framework starts. Silabs have stated that this is not reliable due to possible communication problems between the NCP and the host. Where possible the user should implement a hardware reset to reset the NCP. Since this is application specific, the framework provides an interface for the application to implement this reset. The user should implement the EmberNcpResetProvider interface, and set this during NCP initialisation with the ZigBeeDongleEzsp.setEmberNcpResetProvider() method.

Ember MfgLib use

The library provides access to the mfglib functions in the NCP to facilitate device testing. To use this function, create the ZigBeeDongleEzsp and then call the getEmberMfglib(EmberMfglibListener) method to get the EmberMfglib class and also set the callback listener. The EmberMfglib class provides access to the mfglib functions.

Note that this can only be used if the dongle is not configured for use in the network (ie initialize has not been called).

The com.zsmartsystems.zigbee.sniffer project is an example of the use of these features to provide a network sniffer to route frames to Wireshark.

@Koenkk
Copy link
Owner

Koenkk commented Apr 21, 2020

Adding a new adapter indeed requires the implementation of the adapter.ts.

Note that adding support for a new adapter is a lot of work, given that we already support 2 powerful adapters (conbee and CC2652R/CC1352P-2 which will also available as USB in the future: https://electrolama.com/projects/zig-a-zig-ah/) I don't see a good time/reward ratio at the moment.

@Hedda
Copy link
Contributor Author

Hedda commented Apr 21, 2020

That is understandable, hopefully someone else might be willing to take on such a project.

My thinking is just that hardware-independence and improved compatibility with multiple Zigbee 3.0 coordinator adapters/dongles from different manufacturers would be beneficial to everyone in the long run.

That is, support for more Zigbee 3.0 coordinator adapters/dongles could democratize to the platform, meaning it makes it more accessible to users around the world, which in turn help drive development by attracting more developers which can contribute to projects like Zigbee2MQTT and ioBroker in the future.

Both Zigbee2MQTT and ioBroker has certainly already achieved a lot in regards to democratizing the entry-point to Zigbee Home Automation with the CC2531 USB-sticks as Zigbee coordinator (which I see Itead now even sells pre-flashed with compatible coordinator firmware at a very low price from China), but improved accessibility in my head also means improved support for enhanced hardware adapters with Zigbee 3.0 capability at lower prices and perhaps more importantly easier to find pre-flashed Zigbee 3.0 adapters with compatible coordinator firmware at low prices all over the world.

IMHO all Zigbee based projects would benefit from lower prices for Zigbee 3.0 coordinator hardware and support for multiple adapters/dongles from different manufacturers, both directly and indirectly, in all open-source projects for home automation.

@SillyDay
Copy link

@Hedda Ebyte E180-ZG120A(B) is a Serial port transparent transmission module, running Ebyte private firmware,not EZSP. (However, it can act as a standard ZigBee3.0 router in the Network) For example, I sent AABBCCDDEEFF(not HEX) to the serial port, then I captured Img
In other words, the moudule running a Ebyte offical firmware cant't act as a standard coordinator like CC2652R, while it can connect your serial device to ZigBee network easily.(zigbee-herdsman &
zigbee-herdsman-converters modification needed)

@Hedda
Copy link
Contributor Author

Hedda commented Apr 27, 2020

@SillyDay Sorry if I was unclear. I suspected that something like would be the case, though I believed that it did not come with any application firmware at all, only a bootloader firmware from the factory.

I am of course suggesting that 'someone' first also need to build/compile a "standard" EmberZNet Zigbee coordinator firmware image for these Silicon Labs EFR32MG12 SoCs using the official Simplicity Studio software from Silabs so that we are able to reflash E180-ZG120B modules and E180-ZG120B-TB boards before they will be able to used with zigbee-herdsman and Zigbee2MQTT and ioBroker as coordinators.

That is, if 'someone' builds/compiles EmberZNet Zigbee coordinator firmware image for these Silicon Labs EFR32MG12 SoCs then those image files can be shared to everyone for flashing your own hardware.

That would be similar concept and principle to how zigbee-herdsman already work with Texas Instruments CC253x & CC26X2R1 SoCs when you flash those with pre-compiled firmware from https:/Koenkk/Z-Stack-firmware/tree/master/coordinator as the all the CC2530/CC2531 sniffer USB sticks and CC2652R boards can not be used before you flash them either unless you first flash them with a Z-Stack coordinator firmware.

The main issue regarding building a such "standard" Silicon Labs EmberZNet Zigbee coordinator firmware image for an EFR32MG12 SoC is that in order to to get access to the EmberZNet Zigbee stack from the official Simplicity Studio software you first need to buy and register an official development kit for Zigbee from Silicon Labs, to gain license rights to build a firmware with their Zigbee stack so to speak, like example their official devkit called "EFR32 Mighty Gecko Wireless Starter Kit" (article number: SLWSTK6000B) which cost almost $499 US-dollars, though in their defence that kit does contain three (3) complete dev boards/mainboards with six (6) matching EFR32MG12 Zigbee radio modules designed for development.

Or EFR32xG21 Wireless Gecko Starter Kit (SLWSTK6006A) for 3 x EFR32MG21 Series 2 radio boards:

I would have thought that the Ebyte module would most likely only come with standalone bootloader firmware preloaded for boot. Such standalone bootloader firmware usually is just enough to allow you to flash and upgrade the main application firmware via USB (without having to use a JTAG connector). That is, just enough bootloader firmware to allow USB flashing of an application firmware like Silicon Labs EmberZNet Zigbee coordinator firmware image for EFR32MG12 SoCs.

I would think you have to build/compile Zigbee stack (Zigbee EmberZNet) project with coordinator device type config in their SDK ("Simplicity Studio") and then flash application bootloader firmware with Zigbee stack yourself with either "Simplicity Studio" or "Simplicity Commander" or other flashing tools.

You can use Simplicity Studio (Silicon Labs SDK) for non-Zigbee development without buying an official devkit, but I do not think that you can create an EmberZNet Zigbee coordinator firmware image with it without registering an official Zigbee devkit from Silabs as you will not have access to the EmberZNet?

If and when you do have registered an official Zigbee devkit from Silabs so you have access to the EmberZNet Zigbee stack in Simplicity Studio (Silabs SDK) then I believe that these might be a couple of relatively easier to follow how-to guide for building EmberZNet for EFR32 and EM35x firmware, (as I understand they call protocol such as their EmberZNet Zigbee stack for "apps").

I don't own one myself but would imagine that once you bought their official devkit they have made it simple enough start using their latest SDK or other firmware tools (like "Simplicity Studio" and "Simplicity Commander") and it will even detect the hardware once it is plugged in to then start a new project.

Guessing that you first might need to register a serial number together with dev kit article-number to your account for full SDK access, again like for the official "EFR32 Mighty Gecko Wireless Starter Kit" (that kit part number is "SLWSTK6000B") as that official dev board in that dev kit is kind similar to the Ebyte E180-ZG120B-TB eval board as they both use the same type of EFR32MG12 SoC chip in Silicon Labs EFR32 family.

Simplicity Studio

Simplicity Commander

Silicon Labs has its community knowledge-base here:

https://www.silabs.com/community/wireless/zigbee-and-thread/knowledge-base

Silicon Labs also have different user forums here:

Silicon Labs IoT also has a community on Slack:

Silicon Labs IoT also has a community on Gitter:

@Hedda
Copy link
Contributor Author

Hedda commented Apr 27, 2020

Should be noted that Silicon Labs makes it clear that it is OK for multiple developers within a company, organization or team share a single Silabs account for use with their Simplicity Studio SDK.

So if example "team zigbee2mqtt" or "team zigbee-herdsman" (with both Zigbee2MQTT and ioBroker developers) collectively bought an official Silicon Labs Zigbee devkit and register that to a shared account then all developers on that team could, as long as they login with that same account, use the Simplicity Studio SDK with access to EmberZNet Zigbee stack to build Zigbee coordinator firmware images for the EFR32MG12 SoC chip.

Perhaps even Silicon Labs / Silabs would be willing to sponsor Zigbee2MQTT and ioBroker devs with some official EFR32 devkits?

Alternatively, maybe the Zigbee2MQTT and ioBroker community could donate earmarked for a devkit?

I heard that Silicon Labs have donated hardware to Home Assistant developers, so it could also be worth it to try to contact Silicon Labs Salesforce and explain that you would like a logon for an open-source organization/project without owning a dev kit, as an "organization" is a loose term.

After all, projects like Zigbee2MQTT and ioBroker does help Silicon Labs sell chips, and selling chips is the core buisness of Silicon Labs as a company. Guess that the answer to that specific question might differ depending on how Silabs feelings are towards helping open-source projects which are not-for-profit and only help them sell more chips indirectly.

Regardless it would be to their benefit if Zigbee2MQTT and ioBroker via zigbee-herdsman had support for Ember based coordinators as that would both sell more hardware as well as make more developers use/know their software.

@Hedda
Copy link
Contributor Author

Hedda commented Apr 27, 2020

Another tip is this "Zigbee Boot Camp Course" wiki for Silicon Labs @MarkDing has put on GitHub :

He has also put together this PDF with Silicon Labs ZigBee Onboarding Roadmap for beginners:

@Hedda
Copy link
Contributor Author

Hedda commented Apr 27, 2020

@cdjackson from @zsmartsystems also mention two main NCP images in their README.md

  • https:/zsmartsystems/com.zsmartsystems.zigbee

    "Currently there are two main NCP images - one that supports hardware flow control with a baud rate of 115200, and one that supports software flow control with a rate of 57600."

Perhaps he would be willing to tip how to build or make EmberZNet Zigbee coordinator firmware for EFR32MG12 SoC chip like the official EFR32 devkit or Ebyte E180-ZG120B / E180-ZG120B-TB?

@cdjackson at least keeps adding new EZSP support from UG100 to com.zsmartsystems.zigbee

@cdjackson
Copy link

cdjackson commented Apr 27, 2020 via email

@Hedda
Copy link
Contributor Author

Hedda commented Apr 27, 2020

@cdjackson So in your opinion, once someone has registered an official EFR32 devkit to their account for Silicon Labs and installed + login to Simplicity Studio SDK it should be relatively easy for them to build and compile an EmberZNet PRO Zigbee coordinator firmware image file for an EFR32MG12 based module like the E180-ZG120B-TB evaluation board which then could be shared to everyone so that anyone could flash their own Ebyte E180-ZG120B module based hardware with more freely available software? ...again similar to how Koenkk share Z-Stack coordinator firmware images?

@cdjackson
Copy link

cdjackson commented Apr 27, 2020 via email

@Hedda
Copy link
Contributor Author

Hedda commented Apr 27, 2020

Ebyte does indeed have public documentation with detailed layouts of the modules pins available.

E180-ZG120B module links:

E180-ZG120B-TB evaluation board links:

These contain a EFR32MG1 SoCs (Series 1) specifically the IC = EFR32MG1B232F256GM48

@SillyDay
Copy link

@Hedda I can access the EmberZNet Zigbee stack and try to build a coordinator firmware for EFR32MG1B232F256, but someone have to add support for EmberZNet stack

@SillyDay
Copy link

@Hedda Also, programming and read back the firmware is available for E180 series via JLink. I just flashed a customized firmware from EBYTE using my JLink V11.

@MPM1107
Copy link

MPM1107 commented Apr 27, 2020

Well Sonoff made this even more interesting since their new bridge uses the EFR32MG21, so implementing this would add it to the list of supported coordinators as well. @SillyDay could you try and build a firmware file for that chip as well? I don't have one of these Ebyte modules but my Sonoff bridge is about to arrive in the mail, so I could start tinkering with it. I do have some access to prebuilt files myself but they're kinda old. If it's of any importance I think the exact chip they use is the EFR32MG21A020F768IM32-B.

@Hedda
Copy link
Contributor Author

Hedda commented Apr 28, 2020

@SillyDay I understand, thank you! I would great if you or someone could only build Zigbee coordinator firmware images with latest EmberZNet Zigbee stack for the EFR32MG1 Series 1 SoC inside E180-ZG120B and distribute those image files in a GitHub repo or similar location so that everyone could download it without hunting.

Maybe similar to how Koenkk distribute Z-Stack coordinator (and router) firmware but in its own repo?

That would be the first hurdle so that anyone who wants can just buy a cheap E180-ZG120B module or the E180-ZG120B-TB board, download and flash an existing firmware then start developing EZSP interfaces for it (without having to buy the official EFR32 devkit for Zigbee which is relatively expensive).

Is it possible to build separate "debug" and "production" versions of latest EmberZNet firmware?

Anyway, as mention, sharing EmberZNet coordinator firmware could possibly be a great start for latest EmberZNet with Zigbee 3.0 support in more projects than just zigbee-herdsman (Zigbee2MQTT and ioBroker) as other DIY home automation projects could possible also start to develop their own EZSP interface, as long as both inexpensive hardware and compatible firmware is available.

@SillyDay
Copy link

@Hedda I have finished building a Customized NCP firmware following AN1010: Building a Customized NCP Application, and posted it on https:/SillyDay/EFR32/blob/master/E180-NCP.bin You can flash this firmware via JLink to E180. In addition, this firmware is untested!

@Hedda
Copy link
Contributor Author

Hedda commented Apr 28, 2020

@MPM1107 FYI, E180-ZG120B is based on EFR32MG12 (EFR32MG1x) making it an EFR32 Series 1.

Sonoff ZBBridge (Sonoff Zigbee Bridge) is based on EFR32MG21 (EFR32MG2x) so it's an EFR32 Series 2.

Confusing naming scheme but as I understand they should still use the same SDK & Zigbee stack, see:

https://www.silabs.com/documents/public/application-notes/an0918.2-efm32-to-efr32xg2x-migration-guide.pdf

EZR32 is also referred to as Series 0

@Hedda
Copy link
Contributor Author

Hedda commented Apr 28, 2020

@SillyDay you should not need to use JTAG hardware for the E180-ZG120B-TB evaluation board, right?

https:/SillyDay/EFR32

EFR32 should come with a bootloader from the factory that should allow software flashing over USB?

The previous generation (Silicon Labs ETRX357) adapters, like example Telegesis ETRX357 USB dongles, have plenty of instructions out there on how to flash firmware over USB with only software.

https:/zigpy/bellows/blob/dev/README.md

  • Telegesis ETRX357USB (Note! This first have to be flashed with other EmberZNet firmware)
  • Telegesis ETRX357USB-LRS (Note! This first have to be flashed with other EmberZNet firmware)
  • Telegesis ETRX357USB-LRS+8M (Note! This first have to be flashed with other EmberZNet firmware)

https://community.home-assistant.io/t/eu-usb-sticks-for-the-new-zigbee-component/16718/10

Quote bellow originally posted by Frank Aug '17 in linked thread:

I can confirm that the ETRX357USB-LRS+8M can be flashed with an appropriate EZSP firmware without the use of any programming hardware.

So, without any guarantees (you might -but probably won’t- brick your device), here’s how:

Download the firmware. I used some random blob someone put on github that at least seemed to have the right name. What could possibly go wrong, right? 😄 https:/yqyunjie/Zigbee-Project/blob/master/firmware/EmberZNet/EM35x-EZSP/build/em35x-ezsp-images/EM357/em357-ncp-uart-xon-xoff-use-with-serial-uart-bl-500.ebl?raw=true 282

(Install USB-to-serial drivers for the device. Linux will load the driver automatically when you plug in; not sure about other OSes.)

Install a serial port communication app that supports X-MODEM. (debian/ubuntu: sudo apt-get install minicom) Run it and configure it (sudo minicom -s) to use the fake serial port (/dev/ttyUSB0) at 19200 baud 8N1. Disable both hardware (RTS/CTS) and software (XON/XOFF) flow control.

Type ‘AT’ , you should get OK in response. Now type ‘AT+BLOAD’ . The device will reboot into the bootloader.

Change the baud rate in the serial port communication app setting to 115200 baud. (exit minicom using CTRL-A Q, run ‘sudo minicom -s’ again)

Pressing enter in the terminal should now show you a three-option boot loader menu. Choose option 1.

‘C’ characters will start showing. Don’t wait for this to finish, but start an X-MODEM upload of the firmware you downloaded earlier (use CTRL-A S in minicom). You have 60 seconds to start the upload.

After the upload finished, you should return to the menu. Now select option 2, to reboot into the new firmware. You’re done.

@SillyDay
Copy link

@Hedda No, the bootloader in E180-ZG120 is not a UART XMODEM Bootloader, so you have to use SWD Interface at least once. BTW, the Bootloader is not included in my firmware.

@grobasoz
Copy link

grobasoz commented Nov 6, 2020

@Hedda - Again, thank you for your comprehensive reply. Much appreciated :) I shall ponder all your suggestions over the weekend :)

@Hedda
Copy link
Contributor Author

Hedda commented Nov 12, 2020

If there is demand for hard wired Ethernet-Zigbee then I am happy to make them - but they will be expensive - around US$30 (Zigbee $10, Ethernet $10, Power + enclosure + assembly $10)? So best just to buy off the shelf...

@grobasoz FYI, the new Wireless-Tag WT32-ETH01 has ESP32 and Wired Ethernet port is now sold for only ~$6 (US) in China?

That board offers both WiFi + Wired Ethernet + Bluetooth for connection and such a design gives users very flexible options.

Wired Ethernet bridge is an even more niche-market but it could be another way to distinguish yourself from ITead / Sonoff.

Maybe you could use that board as a base or perhaps partner with a Chinese company like Wireless-Tag for manufacturing?

PS: The LAN8720A/LAN8720 transceiver chip it uses for 10/100Mbit PHY is already supported by Tasmota ESP32 firmware.

@grobasoz
Copy link

@Hedda - thanks for that - yes, an amazing product! Those prices are very good! I'll definitely have to get some to play with :)

Regards,
Gary.

@Hedda
Copy link
Contributor Author

Hedda commented Dec 17, 2020

@grobasoz Check out this Wireless-Tag WT32-ETH01 Zigbee to Ethernet bridge DIY project by @tube0013 -> zigpy/zigpy#584

@MPM1107 any updates from you on EZSP adapter support for Silicon Labs EmberZNet Zigbee support in zigbee-herdsman?

Not sure if you have heard but zigbee-herdsman now also has got experimental support for ZiGate as well as deCONZ and TI:

#241

#242

https:/Koenkk/zigbee-herdsman/tree/master/src/adapter/zigate

@Hedda
Copy link
Contributor Author

Hedda commented Dec 18, 2020

Copy from zigpy/zigpy#586 (which has a separate discussion about SM-011 module + reference USB-adapter and WiFi-gateway):

No idea who the maker or seller of these are but found these "SM-011 V1.0" on Aliexpress when searching for new EFR32MG21 modules.

Update: Looks like @CoolKit-Technologies = Shenzhen Cool House Technology Co., Ltd. (abbreviated as Cool House Technology) might be the Chinese manufacturer of this SM-011 V1.0 / ZYZBP008 module:

https:/CoolKit-Technologies/DevDocs/tree/master/Zigbee

https:/CoolKit-Technologies/DevDocs/blob/master/Zigbee/SM-011%E5%BA%94%E7%94%A8%E6%8C%87%E5%AF%BC%E4%B9%A6.md

https://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fgithub.com%2FCoolKit-Technologies%2FDevDocs%2Fblob%2Fmaster%2FZigbee%2FSM-011%E5%BA%94%E7%94%A8%E6%8C%87%E5%AF%BC%E4%B9%A6.md

"SM-011 V1.0" / ZYZBP008 model is a EFR32 MG21 (i.e. Silicon Labs EFR32 Series 2 ) Zigbee radio module with GPIO for DIY:

image
image

That ZYZBP008 / SM-011 V1.0 module is sold here on Aliexpress for $11.96 (US) including free shipping:

https://www.aliexpress.com/item/4000592757948.html

ZYZBP008 Zigbee Gateway (SM-011 V1.0 module-based) with EFR32MG21 Zigbee radio:

image

Matching USB dongle/adapter based on ZYZBP008/SM-011 V1.0 is sold on Aliexpress for $18.38 (US) including free shipping:

https://www.aliexpress.com/item/4001019552844.html

ZB-GW02 (SM-011 V1.0 module-based) gateway looks to be Tuya type WiFi gateway with "SM-011 V1.0" module pre-soldered.

image

That ZB-GW02 Zigbee gateway is sold here on Aliexpress for $27.58 (US) including free shipping:

https://www.aliexpress.com/item/4001019552844.html

The USB dongle/adapter, WiFi-gateway, all use this "SM-011 V1.0" module which can also be purchased separately. It is based on Silicon Labs EFR32MG21A020F768IM32 radio chip that has 'only' have 64KB RAM and 768KB FLASH storage, which is slightly less RAM and FLASH storage than something like the official SLWRB4180A which is based on EFR32MG21A020F1024IM32 (that has 96KB RAM and 1024KB FLASH storage), however, it still features powerful a Tx power 20dBm radio transceiver as well as an uFL/u.FL/IPX/IPEX/UMCC Female connector for connecting an optional external antenna.

@Hedda
Copy link
Contributor Author

Hedda commented Dec 21, 2020

@Hedda - thanks for that - yes, an amazing product! Those prices are very good! I'll definitely have to get some to play with :)

@grobasoz Suggest also look at TTGO POE Board by LILYGO for the added value of PoE (Power over Ethernet) as it's only ~ $16 US:

https://www.cnx-software.com/2020/06/10/ttgo-t-internet-poe-board-provides-ethernet-poe-wifi-bluetooth/

http://www.lilygo.cn/prod_view.aspx?TypeId=50033&Id=1307
http://www.lilygo.cn/claprod_view.aspx?TypeId=21&Id=1344
https:/Xinyuan-LilyGO/LilyGO-T-ETH-POE

LILYGO TTGO Internet-POE V1.0 has ESP32 WROOM 32 board + LAN8720A Ethernet chip +Si3404 power management chip (and looks to use galvanic isolation design) + an TF SD card slot for additional storage or backups. Downside is that requires an external programmer ("downloader board") for flashing first time:

https://www.aliexpress.com/item/4001122992446.html
https://www.aliexpress.com/item/4001176631966.html
https://www.aliexpress.com/item/4001220209747.html
https://www.aliexpress.com/item/4001209973457.html
https://www.aliexpress.com/item/4001176593818.html
https://www.aliexpress.com/item/10000327243667.html

Andreas Spiess has a detailed video about it in which he recommends also getting at least one Downloader board for flashing if order it:

https://www.youtube.com/watch?v=v8JodmdxIKU

He has also posted his example ESP32 Ethernet ETH PHY LAN8720 prototyping code for LILYGO TTGO POE Board at @SensorsIot

https:/SensorsIot/ESP32-Ethernet

image

Olimex also has two new ESP32 POE development boards called ESP32-POE and ESP32-POE-ISO sold for about $18 and $25 respectively. Unlike the TTGO POE Board by LILYGO, the Olimex has an older Si3402 PoE chip and is not galvanically isolated but it does, however, feature an integrated programmer:

https://www.cnx-software.com/2018/07/26/olimex-esp32-poe-board/

https://www.olimex.com/Products/IoT/ESP32/ESP32-POE/open-source-hardware
https://www.olimex.com/Products/IoT/ESP32/ESP32-POE-ISO/open-source-hardware

That LILYGO TTGO POE Board looks like a lot of hardware today for only ~$16 US and would rather buy that if has galvanic isolation?

@grobasoz
Copy link

@Hedda - thanks for the information. Amazing pricing - will have to have a look... after Christmas!
Merry Christmas to all! Gary.

@Hedda
Copy link
Contributor Author

Hedda commented Jan 7, 2021

If ITead start sells an EFR32 Zigbee 3.0 USB dongle with pre-flashed firmware without an external antenna or even a plastic-case as an enclosure in a similar fashion as their CC2531 dongle then I would be surprised if they sell it for more than $9.99 (US) in China.

@grobasoz FYI, I got an update that ITead will indeed sell their upcoming EFR32MG21 based Zigbee 3.0 Dongle without an external antenna (no SMA-connector so built-in antenna only) and without a plastic-case as an enclosure (same as with their CC2531 dongle).

No idea when they make their first production run or what the final price will be in China, but I don't think that they will be able to charge much without a nice plastic-casing and SMA-connector for an external antenna (which would have given users the option to upgrade it later). Even adding a pretty box sleave in "retail packaging" style to ship it would have added more value to resellers selling it is retail and online stores.

I also believe that ITead's cheap evaluation style hardware dongle will still be great for the community as a whole as such a low cost it will democratize Zigbee 3.0 making it accessible for people to try it on a small budget, similar to what CC2531 dongles did before it.

People want options and it is great if you can try a cheap adapter first before you commit to Zigbee and upgrade your hardware.

@grobasoz
Copy link

grobasoz commented Jan 7, 2021

@Hedda - thanks again for the update. I would not be surprised if ITead offered their Zigbee USB dongle for the price you mentioned - maybe even less considering the price they sell their other products for?
Will keep a close watch!

@digiblur
Copy link

@Hedda I do agree it would be awesome to have the support for this chipset. Options are always a good thing!!

I do get though that various devs have to pick their battles on what they are working on in this hobby and this might not be one of them, but that doesn't mean another dev or two can't pick it up. I'm think it's time to start a bounty, I'd have no issue handling things and even promoting it, I'd kick it off with $100 USD in the pot. An estimates on what it would take for someone to touch it?

@Hedda
Copy link
Contributor Author

Hedda commented Jan 20, 2021

think it's time to start a bounty, I'd have no issue handling things and even promoting it

Maybe zigbee-herdsman project could collect bounties through an open-source bounty site that integrates with GitHub projects?

An estimates on what it would take for someone to touch it?

Probably impossible to estimate since this is a hobby project and almost all contributors are volunteers working on this in their spare time for the fun of it without pay. So any bounty will likely be more than an incentive to prioritize this over something else or just bonus to someone who would have had plans to implemented this in any case anyway.

The problem with bounties for new features/functions in open source projects is that the existing developers might not want to risk implementing a drive-by implementation from a previously unknown coder unless the code is very readable and clean that meet the projects coding standards so that someone else can pick it up later and continue maintaining it if the original coder happens to abandon maintenance before the code is stable/mature enough.

If code for this feature would come from someone who only sees it as nothing else than a payday it might be bad in the long run.

@digiblur
Copy link

That's the beauty of github pull requests. If the code isn't good then it isn't accepted.

@Hedda
Copy link
Contributor Author

Hedda commented Jan 20, 2021

Maybe zigbee-herdsman project could collect bounties through an open-source bounty site that integrates with GitHub projects?

It might also be more likely to get companies like Elelabs and ITead + others who make or plan on making Silicon Labs EZSP adapters to contribute to the pot if using a reputable bounty platform to collect bounties if any well-known ones that can be trusted today?

@kirovilya
Copy link
Contributor

image
https://aliexpress.ru/item/4000531916570.html and https://www.aliexpress.com/item/4001019552844.html

I recently started developing an adapter for the EZSP protocol. While at the beginning of the path.
First, I solved the problem "how and with what firmware to flash the sticks". now EmberZNet is flashed there (6.7.8 and 6.7.5) and running at 115200.
Now I am slowly writing an adapter ... there is not enough free time for development.

There some news from Sonoff https://fb.watch/386X5ET50f/

@MattWestb
Copy link

@kirovilya EZSP 6.7.8.0 its the only recommended then earlier (and all 6.8 and 6.9 also newer versions ) have one bug that making setting up the pull control on devices is not working and many end devices is draining there batteries very fast.

Looks very nice hardware !!

@kirovilya
Copy link
Contributor

@MattWestb thanks for the recommendation. I will update later. I still needed the basic functionality to work - to implement the adapter :)

@MattWestb
Copy link

@kirovilya From Latest release Zigbee EmberZNet SDK 6.7.8.0 GA

Important bug fixes:

  • 638989 Fixed an issue in the host-ncp sleepy end device configuration, where it continued short polling if the parent connectivity was lost temporarily during data transfer.

Comments: This bug is not fixed in newer versions of EZSP (6.8 and 6.9 ones) as of January 2021 !!
It is very likely braking pull control on many controller devices on Sonoff Zigbee Bridge and is making then draining there batteries.

@MattWestb
Copy link

@kirovilya If you is using the same TX, RX and boot pins its easy using the same firmware and boot loaders that is donated to the community For EFR32 second gen its Sonoff with the SM-011 modul that have closer signed firmware from the factory.

But one dev have cooking one complete sets of profen set with bootloader and uptodate EZSP firmwares.

Taking on look at https:/grobasoz/zigbee-firmware

@kirovilya
Copy link
Contributor

@MattWestb Yes, I found this set of firmware, just for the USB-stick the firmware from the zbbridge is suitable. but for ebyte boarf I also found a bootloader, but there was a firmware with a speed of 57600, I had to ask to collect it for 115200.

@MattWestb
Copy link

Put one issue in Garys (its the name of the firmware maker) GIT and asking. Normally hi its doing it for the community without problems only for commercial user hi dont doing it.

@Hedda
Copy link
Contributor Author

Hedda commented Jan 21, 2021

but for ebyte board I also found a bootloader, but there was a firmware with a speed of 57600, I had to ask to collect it for 115200.

From https:/zha-ng/EZSP-Firmware/tree/master/EByte-E180-Z120B ?

Maybe discuss in grobasoz/zigbee-firmware#5 or zha-ng/EZSP-Firmware#6 ?

@Harwesta
Copy link

Harwesta commented Jan 22, 2021

If you is using the same TX, RX and boot pins its easy using the same firmware and boot loaders that is donated to the community For EFR32 second gen its Sonoff with the SM-011 modul that have closer signed firmware from the factory. But one dev have cooking one complete sets of profen set with bootloader and uptodate EZSP firmwares.
Taking on look at https:/grobasoz/zigbee-firmware

Yes, I confirm the functionality of this firmware.
The author Grobasoz compile both parts: bootloader & firmware with EZSP Coordinator.
This FW work through UART 115200-8-1 and use GPIOs: TX:PA0, RX:PA1, bootloader's GPIO activation pin: PD15.
Embedded module in Router SERCOMM (Beeline Smart Box Turbo+) works fine with Homeassistant, integration EZSP.

How to flash this firmware

@kirovilya
Copy link
Contributor

Started #317

@Hedda
Copy link
Contributor Author

Hedda commented Mar 4, 2021

Started #317

You are awesome! See now that the initial pull request has already been merged into dev branch and the discussion moved to #319

@Hedda
Copy link
Contributor Author

Hedda commented Mar 19, 2021

FYI, the previously mentioned 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

Limited first production run and Silabs now has parts delays so maybe not get greedy and perhaps let developers order first(?).

https://www.cnx-software.com/2021/03/18/itead-zigbee-3-0-usb-dongle-features-silicon-labs-efr32mg21-mcu/

@Hedda
Copy link
Contributor Author

Hedda commented Mar 29, 2021

As noted elsewhere, if anyone want to help as a pre-alpha tester or developer then it is currently best to post EZSP issues to #317

EZSP v8 adapter can be tested with all of these as long as have updated firmware to Silicon Labs EmberZNet 6.7.8 coordinator:

Note! It should work with any Silicon Labs EFR32 Zigbee NCP SoC from EFR32MG21/MGM210 and EFR32MG12/MGM12 series:

USB-stick firmware can be updated with Elelabs EZSP Firmware Update Utility or the Zigbee firmware updater image by @walthowd

https:/Elelabs/elelabs-zigbee-ezsp-utility

https:/walthowd/husbzb-firmware

https:/zha-ng/EZSP-Firmware

https:/grobasoz/zigbee-firmware/

Direct link to zigpy wiki page where @MattWestb documented recommended application firmware version for EZSP Coordinators:

https:/zigpy/zigpy/wiki/Coordinator-Firmware-Updates#recommended-firmware-version-for-ezsp-coordinators

FYI, today EmberZNet 6.7.8 with EZSP version 8 interface is recommended NCP version (but a newer version might also work.

https://www.digiblur.com/2021/03/zigbee2mqtt-with-sonoff-zigbee-bridge.html

Note! Warning is that Zigbee to WiFi bridges for EZSP is not recommended for production as it doesn't work well with packed loss:

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

https://www.home-assistant.io/integrations/zha/#warning-about-wi-fi-based-zigbee-to-serial-bridgesgateways

@Hedda
Copy link
Contributor Author

Hedda commented Apr 21, 2021

@MPM1107 Not sure if you are still interesting in Silabs EZSP development but FYI developers and testers is wanted here -> #319

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests