Frequently Asked Questions

Why doesn't my Sample Application Run?

Starting in SDK version 2.7.x, the legacy bootloader was deprecated, which means that if you build and flash one of our sample applications, you must now also build and flash the Gecko bootloader. The most reliable method is to build a bootloader for your device depending on your requirements (e.g., OTA or UART DFU) and flash the combined image (*-combined.s37) using Simplicity Commander. This ensures that your device has both stages of the bootloader and will allow your application to run.

If your device does not have a bootloader, you might experience the application failing to start and the debugger showing the message "failed to read memory" in the disassembly window.

For more information on the Gecko bootloader, see UG266: Silicon Labs Gecko Bootloader User’s Guide

Note: If you flash one of the precompiled demos from Simplicity Studio, it will also automatically flash a bootloader. This is a fast way of flashing the bootloader if you are using the WSTK. If you are using custom hardware, build a custom bootloader.

What is the Factory-Programmed Firmware in the BGMx Modules?

Bluetooth-capable SoCs (EFR32BG and EFR32MG devices) normally come without a preprogrammed firmware from the factory. However, some Bluetooth modules (such as BGM111, BGM121, and so on) are preprogrammed with a default firmware. This document discusses the firmware that the different modules have when they are shipped from the factory. Note that the default firmware is in most cases not suitable for production use because of the limitations mentioned later in this document.

Factory Firmware

BGM111A256V2
BGM111A256V2R
BGM111E256V2
BGM111E256V2R
BGM113A256V2
BGM113A256V2R
These modules come with a default NCP firmware including Bluetooth stack v1.0.0 (build 615) + a 4k UART bootloader.
BGM111A256V21
BGM111A256V21R
BGM111E256V21
BGM111E256V21R
BGM113A256V21
BGM113A256V21R
BGM121A256V2
BGM121A256V2R
BGM121N256V2
BGM121N256V2R
BGM123A256V2
BGM123A256V2R
BGM123N256V2
BGM123N256V2R
BGM11S12F256GA-V2
BGM11S12F256GA-V2R
BGM11S22F256GA-V2
BGM11S22F256GA-V2R
These modules come with a default NCP firmware including Bluetooth stack v2.0.2 + a 16k UART bootloader.
Newer modules (such as BGM13P)The default (factory programmed) firmware is listed in the data sheet of the module under Ordering Information. Pin configuration is also added to the data sheet.

The pin configuration can be found in each device data sheets, in the typical connection diagrams chapter, Host UART figure.

GATT Database of Factory Firmware

The factory firmware includes a default GATT database with default services, such as the Generic Access service. In most applications, users will need custom characteristics added to the GATT database. The GATT database of the device can be updated only by upgrading the device firmware. You can do this either by using the bootloader of the device or by flashing the new firmware to the device.

Factory Firmware Bootloaders

The modules listed in the first two rows of the table are preprogrammed with a legacy UART bootloader (not Gecko UART Bootloader). These bootloaders have limited capabilities:

Because of these limitations, expose the programming pins on your custom board and flash the devices with the latest Gecko Bootloader and the latest Bluetooth stack. On new devices preprogrammed with the Gecko bootloader, use the Gecko Bootloader to upgrade both the firmware and the bootloader.

Why is Pairing with iOS not Working?

Since iOS 9.1, pairing without bonding is no longer supported by iOS. Trying to pair when not in bondable mode will cause the connection to fail for devices running iOS 9.1 or newer.