The purpose of this KBA is to organize all Wireless Hardware related specific/generic technical documents (application notes and KBAs) applicable to EFR32 Series 2 SoCs and Wireless modules in one place. The content is grouped into the following categories to make it easier to find what you are looking for.
BSDL files do not exist for EFR32 devices, because there is no boundary-scan TAP in the EFR32. We do have the ARM SWJ-DP which handles JTAG/SWD based accesses to the debug port (DP).
This KBA is a step-by-step guide for building and using the Bluetooth/Zigbee Commissioning Test System described in UG267 and the first part of this KBA:
This KBA expects that you have built either Zigbee or BLE apps with Simplicity Studio before, so not all steps will be described in detail.
[Note: Only IAR EWARM is supported as the compiler for these projects. GCC is expected in the future.]
We recommend using the brd4161A or brd4162A for all parts of this project.
1) Gecko Bootloader
Build the Gecko bootloader v1.4.1 for your part. Use the default settings for the Internal Storage Bootloader (Multiple Images), Generate and Build the project.
Load this bootloader onto all 3 of your WSTK+Radio Card sets. You can use the Simplicity Commander CLI to do a device masserase and then flash the -combined.s37 version of the bootloader to be sure you are doing a "clean" installation.
2) BLE NCP
Pick the Bluetooth HomeKit SDK + Platform Application type in the new AppBuilder project window and then pick the Bluetooth SDK 2.7.0.0. Select the NCP target - Switched Multiprotocol Trust Center and Generate and Build for your part with the default settings. Load this onto one of the WSTKs.
3) BLE Host App
Run Make in the switched_multipr_trust_center directory from \developer\sdks\gecko_sdk_suite\v2.0\app\bluetooth_2.6\examples_ncp_host\switched_multipr_trust_center into your host development environment. Normally, you will have either copied your stack onto your linux host or referenced it in your cross-compiling environment.
Plug in the WSTK with the BLE NCP on it, and execute the host app on your host as follows:
(assuming your USB port is ACM1) ./switched_multipr_trust_center /dev/ttyACM0 115200
4) Zigbee NCP
Pick the AppBuilder Customizable network coprocessor (NCP) applications and select EmberZNet 6.1.0.0 GA Network Coprocessor (NCP) Applicaiton Framework 6.1.0.0. Then pick the NCP UART HW (Hardware Flow Control) for your part, Generate, Build and Flash it onto a WSTK.
5) Zigbee Host App
Pick the AppBuilder ZCL Application Framework V2, Ember ZNet 6.1.0.0 GA Host 6.1.0.0, and select the SwitchedMultiprotocolTrustCenter. For Part, pull down None(Compatible).
After Generating, copy the project folder into the equivalent location on the stack in your build environment and Make it.
Plug in the WSTK with the Zigbee NCP on it and execute the host app with the following: ./SwitchedMultiprotocolTrustCenterHost_linux_4161_1217 -p /dev/ttyACM1 -b 115200
6a) BLE Joining Device .s37
Coming soon 6b) BLE Joining Device .gbl.bin
Coming soon 7a) Zigbee Joining Device .s37
Coming soon 7b) Zigbee Joining Device .gbl.bin
Coming soon
7c) Zigbee Joining Device .ota
Coming soon 8) Mobile App (just download and install)
Coming Soon
9) Uploading OTA file to Mobile Phone
Coming soon
10) Using the Mobile App to Bind and Commission
Coming soon
11a) Uploading OTA file to Joiner from Phone (Optional, not working 100%)
Coming soon
11b) Storing Zigbee App in Joiner Memory Slot (Recommended)
Coming soon
12) Booting into ZIgbee App and Joining Trust Center
This set of sample apps provided in the Gecko SDK Suite (from v1.0.1) is designed to demonstrate Mobile App-based commissioning of a Switched Multiprotocol Bluetooth Low Energy (BLE) / Zigbee joining device using a Trust Center with both BLE and Zigbee communications. It is described in section 8 of UG267.
[NOTE: As of Q3 2017, this suite of sample applications and documentation is currently broken. This KBA will detail the areas in the applications which have problems and will be updated when the bugs are corrected.]
This KBA is intended to describe the structure of the system, how the it should work, and give some step-by-step instructions for using it as a supplement to UG267.
SMP Commissioning System
The following are the components required for this system.
A Host computer, an Android mobile phone, and 3 Silabs WSTK Dev Boards with radio boards (brd4161A or brd4162A recommended so internal flash can be used for storage slots).
Host: A POSIX OS capable of running BLE and Zigbee host apps which use Interprocess Communications (IPC) to pass data between each other. This rules out running in Windows in most cases, because Windows does not support IPC and although cygwin may be able to do this with modifications, we have not pursued it. Our recommendation is to use MacOS or linux, whether an desktop linux OS, a virtual machine, or a Raspberry Pi, which is what is used in this example. You need to have the host set up to run GCC, which may require some additional components such as ncurses. Alternatively, you can cross-compile for your target.
Attached to the host are two WSTKs. One will run a Bluetooth NCP and the other will run a Zigbee NCP. The host apps for each of these will communicate with each other via IPC.
Mobile Phone App: Currently the mobile app runs on Android, while an iOS version is forthcoming.
There are two applications available, Gecko Commissioner, which is available in the Google Play Store and Gecko Commissioner QA, available at http://intrepid.io/ota/worcester-android/
[Note: the "worcester-android" version currently works better than the Play Store version so it is recommended. In the future, the Play Store version should be updated with improvements.]
Joining Device: This begins with a BLE app in the Application area of Flash, and it has two storage slots, one for the BLE app and one which is the target for the Zigbee app OTA download. This KBA will recommend loading the Zigbee .gbl directly.
[Note: due to a bug in storage, the OTA download is almost, but not quite working. You can see the Mobile App send the OTA, but it won't get stored.]
Bluetooth Commissioning Test System Concept
The Host can initially talk to the Joining Device and the Mobile App using Bluetooth. Once the commissioning information is shared between the BLE App and the Zigbee Trust Center also running on the Host, the Joining device will optionally be delivered the Zigbee app via Over-the-air download from the Mobile App (if OTA were working correctly), or already have the Zigbee app present in a storage slot. The Joining Device then copies the Zigbee app into Application space and reboots into it. The commissioning information is in place and the Zigbee App joins the Zigbee Trust Center.
There are two scenarios, a "Pull" system and a "Push" system.
The "Pull" Scenario
Commissing information (ie, the device's Install Code) is collected ("pulled") from the Joining Device's BLE app by the Mobile App and sent to the BLE app on the Host, which sends it via IPC to the Zigbee Trust Center on the Host.
The "Push" Scenario
The Mobile App gets the Network Key from the Trust Center via Bluetooth. (The Mobile App requests the key from the BLE host app, which queries the Zigbee Trust Center via IPC.) The Mobile App then transfers the Network Key to the BLE Joining Device, which stores the information to be used when rebooting into the Zigbee App.
[Note: due to a known bug, the Push scenario is not currently working.]
Building the SMP Bluetooth Commissioning Test System
As you can see, this is a large system with many moving parts. Here is what you will be building/using:
1) Gecko Bootloader. This will be an internal storage bootloader with 2 slots. If you use the same radio board for all 3 of the WSTKs, you can use the same bootloader, even for the NCPs which do not use the storage slots.
2) BLE NCP
3) BLE Host App
4) Zigbee NCP
5) Zigbee Host App
6a) BLE Joining Device .s37
6b) BLE Joining Device .gbl.bin
7a) Zigbee Joining Device .s37
7b) Zigbee Joining Device .gbl.bin
7c) Zigbee Joining Device .ota
8) Mobile App (just download and install)
Note: This KBA has been marked as deprecated. As of Q4 2018, with the Q3 SDK update release, Simplicity Studio will be able to detect module as a separate part and this will enable studio to detect the appropriate EFR32 inside the module automatically.
Question
What EFR32 device is under the hood of the various BGM/MGM module products?
Answer
See this table for a mapping of the EFR32 inside the module:
This is important for application development, as Simplicity Studio and Simplicity Commander identify the module by the EFR32 device inside rather than by the module itself. Efforts are in process to allow for module identification within Studio/Commander for a future release.
Zigbee & Thread Knowledge Base
Master Wireless Hardware Doc list for EFR32 Series 2 SoCs and Wireless Modules
The purpose of this KBA is to organize all Wireless Hardware related specific/generic technical documents (application notes and KBAs) applicable to EFR32 Series 2 SoCs and Wireless modules in one place. The content is grouped into the following categories to make it easier to find what you are looking for.
[A] EFR32 Series 2 Wireless Modules:
Application Notes
AN1048: Regulatory RF Module Certifications
AN1223: LGA Manufacturing Guidance
KBAs
STEP File information and steps to obtain those files
Design and Assembly guidelines for SiPs
[B] EFR32 Series 2 Wireless SoCs:
AN0002.2: EFR32 Wireless Gecko Series 2 Hardware Design Considerations
AN0948.2: EFR32 Series 2 Power Configurations and DC-DC
AN933.2: EFR32 Series 2 Minimal BOM
AN930.2: EFR32 Series 2 2.4 GHz Matching Guide
AN928.2: EFR32 Series 2 Layout Design Guide
[C] Generic
[1] RF
KBAs
ESD protection of RF devices
RF Range calculator
RF Range factors
Range improvement calculation for a given extra link budget
Data rate, deviation, modulation index for 2GFSK signals
Modulation choice
OBW for digital modulations
Modulation index for digital modulations
RF shield vs. RX immunity
General layer count versus power output recommendations
Custom design PCB number of layers
Recommended routing technique for more layer RF designs
General RF layout suggestions
[2] Certifications
KBAs
Maximum allowed power for ZigBee applications under ETSI EN 300 328
ETSI EN 300 328 Adaptivity Compliance
FCC Harmonic Requirements
TX power limitations for regulatory compliance (ETSI, FCC)
Tips for FCC certification on Silicon Labs' 2.4GHz 802.15.4-based solutions
How to test and estimate TIS/TRP
[3] Antenna
Application Notes
AN1088: Designing with an Inverted-F 2.4 GHz PCB Antenna
APL10045: Antennas for Short Range Devices
AN853: Single-ended Antenna Matrix Design Guide
KBAs
Design tip for dipole antennas
Whip antenna length and size
Whip antenna parameters
Do loop antennas require a ground plane?
PCB antenna with wider bandwidth
Recommended distance between antennas for antenna diversity
Recommended external antenna matching network
How to maximize the isolation of coex. antennas on the same PCB
[4] Coexistence
AN1128: Bluetooth® Coexistence with Wi-Fi®
AN1017: Zigbee® and Silicon Labs® Thread Coexistence with Wi-Fi®
[5] MCU/Peripherals
Application Notes
AN958: Debugging and Programming Interfaces for Custom Designs
AN0016.2: Oscillator Design Considerations
KBAs
EFR32 DCDC powering external circuits
BSDL files
Layout design practices around DC-DC converter
CTUNE Access
HFXO Capacitor Bank (Ctune) calibration on EFR32
Saving CTUNE value as manufacturing token
[6] Testing
Application Notes
AN972: EFR32 RF Evaluation Guide
AN718: Manufacturing Test Overview
AN700.1: Manufacturing Test Guidelines for the EFR32
AN1162: Using the Manufacturing Library for EmberZNet
AN1046: Radio Frequency Physical Layer Evaluation in Bluetooth® SDK v2.x
AN1267: Radio Frequency Physical Layer Evaluation in Bluetooth® SDK v3.x
UG409: RAILtest User’s Guide
AN1019: Using the NodeTest Application
AN961: Bringing Up Custom Devices for the EFR32MG and EFR32FG Families
KBAs
How to build and use the StandardizedRfTesting sample in EmberZnet SDK?
Implementing wireless direct test mode (DTM)
[7] Other
How do I determine the PCB and schematic version of kit boards?
BRD4001A WSTK dimension
Hardware Design Review submission expectations for EFR32MGxx based designs
What are the valid values for txPower?
How to find schematics and other documentation for radio boards?
Six Hidden Costs in a Wireless SoC Design
Where can I find BSDL file for EFR32 Wireless Gecko devices?
(Part 2 of 2) Bluetooth Commissioning Test System -- Switched Multiprotocol (SMP) Sample Applications (UG267) Part II
Introduction
This KBA is a step-by-step guide for building and using the Bluetooth/Zigbee Commissioning Test System described in UG267 and the first part of this KBA:
Bluetooth Commissioning Test System -- Switched Multiprotocol (SMP)Sample Applications (UG267) Part I
Building the components of the system
This KBA expects that you have built either Zigbee or BLE apps with Simplicity Studio before, so not all steps will be described in detail.
[Note: Only IAR EWARM is supported as the compiler for these projects. GCC is expected in the future.]
We recommend using the brd4161A or brd4162A for all parts of this project.
1) Gecko Bootloader
Build the Gecko bootloader v1.4.1 for your part. Use the default settings for the Internal Storage Bootloader (Multiple Images), Generate and Build the project.
Load this bootloader onto all 3 of your WSTK+Radio Card sets. You can use the Simplicity Commander CLI to do a device masserase and then flash the -combined.s37 version of the bootloader to be sure you are doing a "clean" installation.
2) BLE NCP
Pick the Bluetooth HomeKit SDK + Platform Application type in the new AppBuilder project window and then pick the Bluetooth SDK 2.7.0.0. Select the NCP target - Switched Multiprotocol Trust Center and Generate and Build for your part with the default settings. Load this onto one of the WSTKs.
3) BLE Host App
Run Make in the switched_multipr_trust_center directory from \developer\sdks\gecko_sdk_suite\v2.0\app\bluetooth_2.6\examples_ncp_host\switched_multipr_trust_center into your host development environment. Normally, you will have either copied your stack onto your linux host or referenced it in your cross-compiling environment.
Plug in the WSTK with the BLE NCP on it, and execute the host app on your host as follows:
(assuming your USB port is ACM1)
./switched_multipr_trust_center /dev/ttyACM0 115200
4) Zigbee NCP
Pick the AppBuilder Customizable network coprocessor (NCP) applications and select EmberZNet 6.1.0.0 GA Network Coprocessor (NCP) Applicaiton Framework 6.1.0.0. Then pick the NCP UART HW (Hardware Flow Control) for your part, Generate, Build and Flash it onto a WSTK.
5) Zigbee Host App
Pick the AppBuilder ZCL Application Framework V2, Ember ZNet 6.1.0.0 GA Host 6.1.0.0, and select the SwitchedMultiprotocolTrustCenter. For Part, pull down None(Compatible).
After Generating, copy the project folder into the equivalent location on the stack in your build environment and Make it.
Plug in the WSTK with the Zigbee NCP on it and execute the host app with the following:
./SwitchedMultiprotocolTrustCenterHost_linux_4161_1217 -p /dev/ttyACM1 -b 115200
6a) BLE Joining Device .s37
Coming soon
6b) BLE Joining Device .gbl.bin
Coming soon
7a) Zigbee Joining Device .s37
Coming soon
7b) Zigbee Joining Device .gbl.bin
Coming soon
7c) Zigbee Joining Device .ota
Coming soon
8) Mobile App (just download and install)
Coming Soon
9) Uploading OTA file to Mobile Phone
Coming soon
10) Using the Mobile App to Bind and Commission
Coming soon
11a) Uploading OTA file to Joiner from Phone (Optional, not working 100%)
Coming soon
11b) Storing Zigbee App in Joiner Memory Slot (Recommended)
Coming soon
12) Booting into ZIgbee App and Joining Trust Center
Coming soon
(Part 1 of 2) Bluetooth Commissioning Test System -- Switched Multiprotocol (SMP) Sample Applications (UG267) Part I
Introduction
This set of sample apps provided in the Gecko SDK Suite (from v1.0.1) is designed to demonstrate Mobile App-based commissioning of a Switched Multiprotocol Bluetooth Low Energy (BLE) / Zigbee joining device using a Trust Center with both BLE and Zigbee communications. It is described in section 8 of UG267.
[NOTE: As of Q3 2017, this suite of sample applications and documentation is currently broken. This KBA will detail the areas in the applications which have problems and will be updated when the bugs are corrected.]
This KBA is intended to describe the structure of the system, how the it should work, and give some step-by-step instructions for using it as a supplement to UG267.
The following are the components required for this system.
A Host computer, an Android mobile phone, and 3 Silabs WSTK Dev Boards with radio boards (brd4161A or brd4162A recommended so internal flash can be used for storage slots).
Host: A POSIX OS capable of running BLE and Zigbee host apps which use Interprocess Communications (IPC) to pass data between each other. This rules out running in Windows in most cases, because Windows does not support IPC and although cygwin may be able to do this with modifications, we have not pursued it. Our recommendation is to use MacOS or linux, whether an desktop linux OS, a virtual machine, or a Raspberry Pi, which is what is used in this example. You need to have the host set up to run GCC, which may require some additional components such as ncurses. Alternatively, you can cross-compile for your target.
Attached to the host are two WSTKs. One will run a Bluetooth NCP and the other will run a Zigbee NCP. The host apps for each of these will communicate with each other via IPC.
Mobile Phone App: Currently the mobile app runs on Android, while an iOS version is forthcoming.
There are two applications available, Gecko Commissioner, which is available in the Google Play Store and Gecko Commissioner QA, available at http://intrepid.io/ota/worcester-android/
[Note: the "worcester-android" version currently works better than the Play Store version so it is recommended. In the future, the Play Store version should be updated with improvements.]
Joining Device: This begins with a BLE app in the Application area of Flash, and it has two storage slots, one for the BLE app and one which is the target for the Zigbee app OTA download. This KBA will recommend loading the Zigbee .gbl directly.
[Note: due to a bug in storage, the OTA download is almost, but not quite working. You can see the Mobile App send the OTA, but it won't get stored.]
Bluetooth Commissioning Test System Concept
The Host can initially talk to the Joining Device and the Mobile App using Bluetooth. Once the commissioning information is shared between the BLE App and the Zigbee Trust Center also running on the Host, the Joining device will optionally be delivered the Zigbee app via Over-the-air download from the Mobile App (if OTA were working correctly), or already have the Zigbee app present in a storage slot. The Joining Device then copies the Zigbee app into Application space and reboots into it. The commissioning information is in place and the Zigbee App joins the Zigbee Trust Center.
There are two scenarios, a "Pull" system and a "Push" system.
The "Pull" Scenario
Commissing information (ie, the device's Install Code) is collected ("pulled") from the Joining Device's BLE app by the Mobile App and sent to the BLE app on the Host, which sends it via IPC to the Zigbee Trust Center on the Host.
The "Push" Scenario
The Mobile App gets the Network Key from the Trust Center via Bluetooth. (The Mobile App requests the key from the BLE host app, which queries the Zigbee Trust Center via IPC.) The Mobile App then transfers the Network Key to the BLE Joining Device, which stores the information to be used when rebooting into the Zigbee App.
[Note: due to a known bug, the Push scenario is not currently working.]
Building the SMP Bluetooth Commissioning Test System
As you can see, this is a large system with many moving parts. Here is what you will be building/using:
1) Gecko Bootloader. This will be an internal storage bootloader with 2 slots. If you use the same radio board for all 3 of the WSTKs, you can use the same bootloader, even for the NCPs which do not use the storage slots.
2) BLE NCP
3) BLE Host App
4) Zigbee NCP
5) Zigbee Host App
6a) BLE Joining Device .s37
6b) BLE Joining Device .gbl.bin
7a) Zigbee Joining Device .s37
7b) Zigbee Joining Device .gbl.bin
7c) Zigbee Joining Device .ota
8) Mobile App (just download and install)
Step-by-step instructions are available here
Bluetooth Commissioning Test System -- Switched Multiprotocol (SMP)Sample Applications (UG267) Part II
[Deprecated] EFR32xG devices inside BGM/MGM modules
Note: This KBA has been marked as deprecated. As of Q4 2018, with the Q3 SDK update release, Simplicity Studio will be able to detect module as a separate part and this will enable studio to detect the appropriate EFR32 inside the module automatically.
Question
What EFR32 device is under the hood of the various BGM/MGM module products?
Answer
See this table for a mapping of the EFR32 inside the module:
This is important for application development, as Simplicity Studio and Simplicity Commander identify the module by the EFR32 device inside rather than by the module itself. Efforts are in process to allow for module identification within Studio/Commander for a future release.