Co-Processor Configuration#

Silicon Labs offers many different multiprotocol configurations (Multiprotocol RCP, Zigbee NCP with OT RCP, etc.). Depending on your multiprotocol configuration, you will need to choose the correct radio image for the EFR32 device.

EFR32 Co-processor Setup: Using Pre-Compiled Images#

Simplicity Studio has precompiled demo's of NCP / RCP projects for certain boards along with sample projects. Before you begin, make sure you have the latest SDK installed in Simplicity Studio.

Note: Before loading a demo on your board, make sure you have a compatible bootloader image already flashed on it.

  1. From the Home tab click Start a New Project > all projects and demos.

    Demos tabDemos tab

  2. On the filter tab, ensure only Demos is selected and filter for NCP / RCP Device Type. You can further filter by Wireless Technology if you are looking for a specific protocol combination.

    Filter for DemosFilter for Demos

  3. Select the demo file compatible with your board and click Run.

EFR32 Co-processor Setup: Building Radio Image#

To build a co-processor image for any board in Simplicity Studio 6, navigate to the Projects panel and select Create New Project.

  1. On the Example Project Selection, typing the relevant technology keywords (OpenThread, Zigbee, BLE, NCP, RCP, UART, SPI, etc.) in the keyword filter can help you find the suitable firmware project.

    Filtering on technology keywordsFiltering on technology keywords

  2. From the list of projects, select the appropriate image depending on the desired combination of protocols, and depending on whether your physical link is UART or SPI.

  3. Click Create and select which device you will be using. Then select finish.

    At this stage your project will have been generated. Since this is a local instance of the RCP Project you have the flexibility to configure the project to your exact specifications.

  4. Once configured, right click on the project and select Open in IDE. The project should open up in VS Code. You can then click the Build Icon to build the project. Once built, you may flash the firmware image by clicking the Flash Icon. You may also flash the project onto the board using Simplicity Commander. For more information, see the Simplicity Commander Reference Guide.

    Note: Multiprotocol, Multi-PAN and CPC support for the RCP is currently only available in Silicon Lab's SDK and not in the OpenThread GitHub repo.

Build the Bootloader for Co-Processor#

For your application to boot, make sure that you have a bootloader flashed onto the co-processor. Users can create a bootloader project in Simplicity Studio by creating a new project and searching for the project: Internal Storage Bootloader. Once the project is generated, users can build the Bootloader Application and flash it onto the RCP.

Co-Processor CPC Security Configuration#

If you are using a radio image with CPC, it is important to check the CPC Security setting to make sure it matches that set in cpcd.conf. By default, CPC Security is enabled and is recommended for production. However, in development it may be easier to have this security parameter disabled. To modify this parameter, go to your SLCP File and search for CPC Security component. If you would like to turn off CPC Security, uninstall the CPC SECURITY component and install CPC SECURITY NONE.

CPC Security ComponentCPC Security Component

Configure SPI RCP#

Your RCP should have the Internal Storage Bootloader flashed onto the device. There is an example project: mp-zb-ot-ble-rcp-spi project that is configured already for SPI communication.

In your co-processor application project, if you open the SLCP file and navigate to the CPC Secondary - SPI(USART) component, you should be able to manually configure your co-processor SPI pinout.

To verify that the SPI configuration is configured properly and match the bootloader configuration, you can check the Pin Tool of the mp-zb-ot-ble-rcp-spi project. The following image show an example pinout of mp-zb-ot-ble-rcp-spi project using a BRD4180B:

RCP SPI Pin ConfigurationRCP SPI Pin Configuration

Furthermore, in the EFR User Guide, you can look for the pinout diagram. Below, the User Guide for BRD4180B (EFR32MG21) shows the direct mappings of the radio pins to that of the WPK EXP headers. This can be useful in cases where you are manually wiring the WPK Expansion headers to your host.

Expansion HeaderExpansion Header

Zigbee Child Configuration for Multiprotocol (CMP) Builds#

In CMP configurations where Zigbee and OpenThread run together, the Zigbee child count must remain consistent between the Zigbee host and the RCP builds. If the Zigbee application changes its default child configuration, the same update must be applied to the RCP build, as this value is not synchronized automatically.