Make customized ZigBee xNCP images for EFR32MG parts

by <a href=""><font color="#000000"><font size="2">Hero Employee</font></font> </a> RonB ‎12-08-2016 05:56 PM - edited ‎06-09-2017 12:40 PM

Within our EmberZNet and Silicon Labs Thread stacks we provide a number of pre-built NCP images.  However, with the customability EFR32 Mighty Gecko, these NCP images don't always meet every application.  This guide, along with reading AN1010: Building a Customized NCP Application, should give you the tools to build your own xNCP image.


  1. Go to File -> New -> Project. This will bring up the New Project Wizard
  2. Select “Silicon Labs AppBuilder Project”. Click Next.
  3. Select “Customizable network coprocessor (NCP) application”. Click Next.
  4. Select the Stack you want to use. Click Next.
  5. Select xNCP LED. Click Next.
  6. Give your project a name, leave it in the default location. Click Next.
  7. On the Project Setup Window pick the BRD4151A board (it will pick the EFR321P232F256GM48 chip). We will change this later, we are just using this to start the project. Hit Finish.
  8. Download and copy the xNCP_board.h file to your project (you can drag and drop it into your Project in Studio, when prompted, make sure to Copy the file into your project).
  9. On the General Tab
    • Selected Architecture – pick the chip you are using
  10. On the HAL Tab
    • Change Board Header from Default to Use Custom Board Header
    • Point the Custom Board Header to xNCP_board.h (it should be in your Studio v4 Workspace
  11. On the Plugins Tab
    • In the Core section pick the Plug for either NCP-SPI or NCP-UART for the NCP version you are using
    • If you are building a Smart Energy NCP, you will need to enable the CBKE and ECC plugins required for your build.
  12. On the Other Tab
      • In the Additional .c and .h files section Add the following directories:
  13. Open the xNCP_board.h file
    • Find the #define statements for which build to use
      #define UART_XNCP_BUILD
      #define SPI_XNCP_BUILD
      Comment out the one you aren’t using and make sure the one you need is defined
    • Modify the section to match the pins you have selected. You must get the _USART_ROUTELOC0_ definitions from the EFR32MG1 Mighty Gecko Data Sheet, Pages 139-140.
    • Once the modifications are made, save the file
  14. Generate the files for your project
  15. Build your project

 Use the following KBA for building a bootloader:

Make customized ZigBee bootloader for the EFR32MG1 QFN32 parts

 Additional Information:

AN1010: Building a Customized NCP Application

EFR32MG1 Mighty Gecko ZigBee & Thread SoC Family Data Sheet