Architecture of the DFU process

nRF5 SDK v9.0.0

nRF51 SDK v9.0.0
This information applies to the following SoftDevices: S110, S130, S310

New firmware images can be transferred over two different transport protocols: BLE or using serial wire (HCI/UART). In both cases, the DFU bank handling is responsible for writing received data packets to flash memory.

The BLE transport uses a BLE service for data transfer (see BLE DFU Service ) and relies on the S110 or S310 SoftDevice.

The following figure shows a schematic overview of the DFU process using BLE:

dfu_transfer_ble_overview.svg
Architectural overview of the DFU process using the BLE transport protocol

Alternatively, new images can be transferred using HCI over UART (serial transport). The HCI transport layer increases robustness of the transfer. See UART_HCI PHY (reliable UART) for more information about UART_HCI, and Serial (HCI) packet format for more information about the packet format.

Serial transport does not use a SoftDevice. However, you must install a SoftDevice on your device to correctly create the Master Boot Record.

The following figure shows a schematic overview of the DFU process using with UART.

Page-1 Process.2 Bootloader Bootloader Process.3 DFU transport: Serial DFU transport: Serial Process.6 DFU bank handling DFU bank handling Border small Sheet.7 Sheet.8 DFU bootloader DFU bootloader Process.12 DFU transfer application DFU transfer application Border small.13 Sheet.12 Sheet.13 Peer side Peer side Dynamic connector.15 Start DFU procedure Start DFU procedure Dynamic connector.4 DFU packet DFU packet Process.1 HCI transport HCI transport Process.17 Driver (UART) Driver (UART) Process.21 Physical layer Physical layer Process.22 Flash Flash Dynamic connector.23 Flash handling Flash handling Dynamic connector TX TX Dynamic connector.13 RX RX Sheet.19 UART UART Dynamic connector.19 RX RX Dynamic connector.14 TX TX Dynamic connector.16 DFU packet DFU packet Dynamic connector.24 RX RX Dynamic connector.20 TX TX
Architectural overview of the DFU process using serial transfer

Please send us your feedback about the documentation! For technical questions, visit the Nordic Developer Zone .