The BLEFriend module includes a special 'DFU' bootloader that allows you to update the firmware over the air using a compatible device (such as a recent iPhone or iPod or a BLE-enabled Android device running Android 4.3 or later).

The benefit of this bootloader is that you can reprogram the flash contents of the MCU without having to purchase a HW debugger, using nothing but your tablet or phone to update the flash memory contents of the BLEFriend.

You can update the Firmware over the air but not over the USB/UART connection!

Requirements

In order to perform over the air field updates of the firmware on the nRF51822 based Bluefruit LE modules, you will need access to the following resources:

  • A Bluetooth Low Energy enabled iOS device (iPad 3rd generation or later, iPhone 5 or later, or a recent iPod Touch) or a BLE enabled Android device (running Android 4.3 or higher, for example the Nexus 4, Nexus 5, and the Nexus 7 2013)
  • The Bluefruit LE Connect app for Android (for Android devices)
  • The Bluefruit LE Connect app for iOS (for iOS devices)

To update using your Android or iOS device, continue on to the appropriate page in this guide.

While the DFU (Device Firmware Update) code running on the modules has several safety feature (CRC packet checks, caching and testing the entire firmware image before writing it, etc.) this procedure isn't without risk, however small. There is a small possibility you can brick your device in DFU mode, requiring access to a HW debugger like the J-Link to recover it.

Forcing DFU Mode

Performing firmware updates from within the Bluefruit LE Connect app will automatically cause the board to reset into DFU mode, but there may be situations where you need to force the device into DFU mode as well.

To force the device into DFU mode (to enable firmare updates on devices that are locked up from a bad Arduino sketch, for example) press and hold the DFU button when inserting the device if a button is available, or by setting hte DFU pin to GND when powering the device up (depending on the exact board you are using).

DFU Mode Confirmation

You will know that you are in DFU mode because the MODE LED will blink at a constant rate:

DFU Timeout

By default, the DFU code has a 5-minute timeout.  After 5 minutes in DFU mode, the device will revert back to the normal user code if any user code is present on the device.  To return back to DFU mode, you will need to hold down the DFU button and reset the device via a power cycle.

Once you're in DFU mode, continue on to the iOS or Android pages ahead.

Firmware Images

Bluefruit LE Connect will automatically download the appropriate firmware image for you, but if you need direct access to them the latest Bluefruit LE firmware images are always available in our Github repo at https://github.com/adafruit/Adafruit_BluefruitLE_Firmware

This guide was first published on Nov 19, 2014. It was last updated on Mar 08, 2024.

This page (Field Updates) was last updated on Nov 05, 2014.

Text editor powered by tinymce.