Here are some steps you can follow to build an EZSP-SPI host application on a Raspberry Pi to interact with an EFR32MG1 or EFR32MG12 device (on our dev kit) running a pre-built NCP-SPI image (or an xNCP image built with SPI signal assignment compatible with our dev kit) of the latest EmberZNet stack, which is v5.9.1 at the time of this article. If you have custom hardware or a custom-built NCP image with non-default SPI pins, make adjustments accordingly.
1. Create a new Silicon Labs AppBuilder Project in Simplicity Studio v4 of type "ZCL Application Framework V2", and choose the host (as apposed to SoC) flavor of the latest EmberZNet stack.
2. Choose a sample application, such as Z3Gateway, or start with a blank application and configure it appropriately.
3. Under "HAL configuration" tab of your project, choose EFR32-EZSP and Unix host under Platform configuration. Leave the "Api" field blank. Under the "Plugins" tab, select "EZSP SPI" and deselect EZSP UART.
4. Generate the host app, and build it on your Raspberry Pi.
5. Program your EFR32 device with the EZSP-SPI image. For example, you may use a pre-built NCP image for the BRD4153A radio module from:
6. Make hardware connections between the WSTK expansion header, and the Raspberry Pi expansion header:
Refer to this article on GPIOs used for the pre-built EFR32MG NCP images:
Refer to UG151 on the WSTK expansion header.
On the RasPi side:
(Note: these are exactly the same as our SPI host set up for Silicon Labs Thread, so you can reference AN912 table 2).
7. Use these example commands to configure SPI GPIOs, and launch the host app, on your Raspberry Pi (note that they are different from SPI host set up for Silicon Labs Thread).
//Configure GPIO on the pi
sudo echo 8 > /sys/class/gpio/export && sleep 0.5
sudo echo 22 > /sys/class/gpio/export && sleep 0.5
sudo echo 23 > /sys/class/gpio/export && sleep 0.5
sudo echo 24 > /sys/class/gpio/export && sleep 0.5
sudo echo high > /sys/class/gpio/gpio8/direction && sleep 0.5
sudo echo in > /sys/class/gpio/gpio22/direction && sleep 0.5
sudo echo falling > /sys/class/gpio/gpio22/edge && sleep 0.5
sudo echo high > /sys/class/gpio/gpio23/direction && sleep 0.5
sudo echo high > /sys/class/gpio/gpio24/direction && sleep 0.5
//Command to launch host app
The Silicon Labs ZigBee modules have been designed to be built into any device and provide a low cost, low power ZigBee solution based on the industry leading EmberZNet ZigBee stack. Integration into a wide range of applications is made easy using a simple AT-style software interface and advanced hardware design.
No RF experience or expertise is required to add this powerful wireless networking capability to your products. Silicon Labs ZigBee modules offer fast integration opportunities and the shortest possible time to market for your product.
For customers certifying end products for HA1.2.1 compliance based on our CICIE firmware, it is sometimes necessary to provide to the test house the supporting documentation as proof of certified CICIE firmware.
Silicon Labs has obtained certification for CICIE R312 firmware for EFR32-MGM111, ETRX3587 & ETRX357 modules from ZigBee Alliance. In this shared Dropbox folder, you will find the relevant certification documents for the CICIE releases certification: https://www.dropbox.com/sh/a3zentviublx20u/AAD3utqVq032J0BjDAUoxSuha?dl=0
You can also find included application note AN1002: ZigBee® HA CICIE AT Command Set Usage Scenarios. This provides example AT commands for different scenarios: Form a HA Network and Commission a HA Device to Join, Commission an On/off Output Device and How to Work with It, Commission a Level-controllable Device and How to Work with It, Commission a Sensing Device and Configure Report and Commission an IAS Zone Device etc.
If you are looking for certification documentation for a release older than what's here or would like to inquire about the status of a newer release not yet posted here (which generally means the compliance testing hasn't completed at the test house yet), please contact Silicon Labs technical support.