To migrate a project from Bluetooth SDK 2.1.1 to SDK 2.3.1. follow the steps described below.


1. Install SDK 2.3.1 via Simplicity Studio Package Manager.


2. Go to File->Properties then select C/C++ build-> Board/Part/SDK tab


3. Select the BLE SDK 2.3.1 then click on OK.


4. Remove the #include “bg_dfu.h” from main.c . Since SDK 2.3.0 the bg_dfu.h is not existing. See UG266: Silicon Labs Gecko Bootloader User Guide for the details.


5. OPTIONAL - Since SDK 2.3.0 the external flash drivers changed.

If your project using the external flash on the radio board, replace the

#include "flashpwr.h" from main.c with

#include "em_usart.h"        and with #include "mx25flash_spi.h"


Additionally replace these lines from main.c



  /* Put the SPI flash into Deep Power Down mode for those radio boards where it is available */





With these lines:



  /* Put the SPI flash into Deep Power Down mode for those radio boards where it is available */



  /* We must disable SPI communication */



#endif /* FEATURE_SPI_FLASH */


6.OPTIONAL – Since SDK 2.3.0 the kit drivers moved to different folders. You may need to re-add these driver files to the project.


If the project using the Si7013 sensor on the WSTK add the si7013.c to your project.

It can be found in:



7. Since SDK 2.3.0 the linker files moved to different folders. They need to be added to the project. So create an IAR folder under the linker folder.


8. Copy the <your_target_mcu>.icf file to the <your_project_folder>\linker\IAR\ folder.


The .icf files can be found here:



9. The .isc files stores information about the used SDK. This information need to be updated.

Open the .isc file with text editor. 




10. Overwrite the line starts with stackId:


stackId: com.silabs.sdk.stack.super


11. Overwrite the Plugin configuration lines to:


# Plugin configuration

appPlugin: bg_stack=true

appPlugin: bgapi=true

appPlugin: cmsis=true

appPlugin: command_interpreter=false

appPlugin: command_interpreter_handler=false

appPlugin: crc16_ccitt=false

appPlugin: device=true

appPlugin: emdrv=true

appPlugin: emlib=true

appPlugin: gecko_bootloader=false

appPlugin: glib=false

appPlugin: kit=false

appPlugin: kit_board=true

appPlugin: kit_flashpwr=true

appPlugin: kit_ioexpander=false

appPlugin: kit_lcd=false

appPlugin: legacy_ble_ota_bootloader=true

appPlugin: mpsi=false

appPlugin: mpsi-ipc=false

appPlugin: mpsi-storage=false

appPlugin: mpsi_ble_transport_server=false

appPlugin: rail=true

appPlugin: serial_vcom=false

appPlugin: slot-manager=false

appPlugin: stack_bridge=false

appPlugin: thunderboard_sense_drivers=false


12. Save the .isc file, close it then reopen it with double click.


13. Press Generate on VGATT editor




14. Now the project should build successfully.


15. OPTIONAL – Studio will exclude some files from the build. Typically the ones which are moved to different location since SDK 2.3.0.  You may delete the excluded files from the project. These are grayed out by studio.





  • Knowledge Base Articles
  • Bluetooth Low Energy
  • Bluetooth Classic