Updating Firmware

Silicon Labs may issue signed and encrypted Bluetooth Xpress firmware updates to add new features, fix bugs, and improve reliability. Firmware update history is available on the Release Notes page. Note that the version of firmware currently running on a Bluetooth Xpress module can be checked using the ver command, which can be executed either through the serial interface or across an active Bluetooth connection. For more information about communicating with Bluetooth Xpress, see Serial Interface.

Bluetooth Xpress modules can accept a signed and encrypted firmware update Over-the-air (OTA) and through a Serial Device Firmware Update (DFU) process.

Over The Air (OTA)

The OTA update method uses the Bluetooth wireless link to load new firmware onto the device. Silicon Labs recommends the OTA method when possible, especially for deployed devices or for devices controlled by end users. The most common way to perform an OTA update is to use the mobile application called BGX Commander. This mobile application is available in both iOS and Android app stores. BGX Commander will establish a connection to the Bluetooth Xpress module and show the user available firmware versions. The user can select a version and BGX Commander will perform the firmware update via the Bluetooth connection.

Silicon Labs also provides the BGXpress Framework library for iOS and Android mobile applications. In addition to providing APIs to simplify connection and communication with Bluetooth Xpress modules, BGXpress Framework also provides an API to execute an over the air firmware update. This allows a company to create a branded mobile application to support their Bluetooth Xpress-based product. For information now how to get started when using the OTA APIs in the framework, see here.

Serial DFU

The Serial DFU method uses the hardware serial connection to load new firmware onto the Bluetooth Xpress module. This method should only be used when OTA is not possible or not practical, and in a controlled environment such as a factory production test line. Silicon Labs provides a command line DFU utility for performing serial port updates. For more information about the DFU command line utility, make a request by email to xpress@silabs.com.

Problems After Upgrade

Normally, there should not be any problem with connection between mobile device and a BGX13 device after a firmware upgrade (moving to a higher version number). However, for version 1.2.2045.0, there was a change to the GATT attribute table. This is a one-time change that was necessary for a feature improvement and is not expected to happen again in future versions.

Some mobile devices cache the GATT attribute table once it has paired and bonded with a Bluetooth device. Therefore, it may be necessary to clear the stored GATT attribute information. Many times this is know as "forgetting" a device.

After performing the update to 1.2.2045.0, follow this procedure to ensure your mobile device can again connect to the BGX13 device.

iOS

  1. Go to Settings-->Bluetooth
  2. Find the BGX13 device under "My Devices"
  3. Tap the "i" information icon next to the device name
  4. Tap "Forget this device"
  5. Turn off Bluetooth on the phone
  6. Turn the Bluetooth back on (this clears data that is in the phone memory)
  7. The next time you use BGX Commander with this device, you will be prompted to pair

Android

Specific instructions for Android vary by device manufacturer. Below are the approximate instructions needed to clear the GATT cache on an Android device.

  1. Go to Bluetooth Settings for your device
  2. Find the BGX13 device in the list of paired devices
  3. Select the device by pressing the gear or “i” icon next to it for detais.
  4. Choose “Forget” or “Unpair” to clear the bonding information for the device.
  5. Turn off Bluetooth on the phone (this clears data that is in the phone memory)
  6. Turn the Bluetooth back on
  7. The next time you use BGX Commander with this device, the BGX will pair with your phone.

Downgrade Considerations

Usually BGX firmware will be upgraded from an older version to a newer version. However, there may be some reason to load an older version than the currently running version. This is called a "downgrade".

If you want to downgrade your BGX firmware, there are some considerations related to version compatibility. BGX configuration is saved in memory using a certain format. Newer version firmware can always read the format of older firmware (upgrade). However, older firmware may not understand the storage format of newer firmware (downgrade), and the BGX configuration may be invalid after a downgrade.

To avoid any problems occuring with a firmware downgrade, you should always perform a factory reset first. Use the fac command to restore factory settings.

Downgrade Steps

  1. access command console via serial port or remote command feature
  2. issue get bl a command to get the BD address (needed later)
  3. issue fac 12345678ABCD command; you will need to provide the real BD address
  4. perform OTA procedure to load down-level firmware

Review the fac command before performing this procedure.