nRF51 SDK - S130 SoftDevice
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Architecture

Two devices are required to perform a Device Firmware Update: the DFU target and the DFU controller. The DFU target is the device that is updated with a new firmware image, which can contain a new application, SoftDevice, bootloader, or a combination of SoftDevice and bootloader. The DFU controller is the device that transfers the image. For example, the DFU controller can be an app on a mobile phone, or an nRF51 dongle in conjunction with Master Control Panel.

The DFU target is the device that contains a bootloader with DFU capabilities. This bootloader's responsibility is to start either the application or the DFU mode, depending on different triggers. The DFU mode is part of the bootloader. If DFU mode is started, the bootloader expects a Device Firmware Update. The DFU controller can then initiate the transfer of a firmware image, which is received and validated by the bootloader. If the image is valid, it is copied to replace the existing firmware; depending on the type of image, it might replace the application, the SoftDevice, or even the current bootloader that is receiving the update.

By default, the DFU bootloader will start the application on the device. DFU mode is started in the following cases:

  • No application is installed on the device.
  • Button 4 is pressed when starting the device.
  • The application on the DFU target supports entering DFU mode. In this case, the DFU controller can trigger the application to reset the device and enter DFU mode, which is referred to as buttonless update.

The following figure shows the workflow when performing a buttonless update of the application:

bledfu_architecture.svg
Example of a buttonless DFU to replace the application image

For a more technical overview, see the Architecture of the DFU bootloader and the Architecture of the DFU process.

The DFU state machine models the states and transitions in a DFU process.