nRF51 SDK
|
Nordic Device Firmware Update (DFU) Service exposes necessary information to perform Device Firmware Update on the device. NOTE: This is not a service defined by the Bluetooth SIG, a proprietary one to demonstrate a typical firmware update on an nRF51 device.
DFU Service does not depend on any other service. Support for following GATT sub-procedures are mandatory for this service: a. Write Characteristic Value b. Notifications c. Read Characteristic Descriptors d. Write Characteristic Descriptors
DFU GATT Service can operate on Bluetooth Low Energy as transport only.
The Service does not define any new error codes for Attribute Protocol and data exchange in is little endian (LSB first) order.
This service is instantiated as a primary service in the DFU mode.
The Service UUID assigned is value 0x1531 over proprietary base, see table below.
UUID For Nordic:
Description | Number Base |
---|---|
Company Identifier: | 0x0059 |
UUID Base: | 0x23, 0xD1, 0xBC, 0xEA, 0x5F, 0x78, 0x23, 0x15, 0xDE, 0xEF, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00 |
Service UUID start: | 0x1530 |
Characteristic UUID start: | 0x1531 |
DFU Service exposes one instance of characteristics listed in table below. This service does not impose any security requirements.
Characteristic Name | Requirement | Mandatory Properties | Descriptors | Description |
---|---|---|---|---|
DFU Packet | M | WriteWithoutResponse | See DFU Packet | |
DFU Control Point | M | Write, Notify | See DFU Control Point |
This characteristic receives firmware to nRF51 device as DFU Packets. The firmware is transferred by writing each fragment as DFU Packet to this characteristic. Size of each packet is in range of 1 to (ATT_MTU - 3).
All DFU Procedures are requested using this characteristic. A DFU Procedure request is initiated by writing to this characteristic. A Response, marking end of procedure is received as a notification. The Characteristic value or the DFU Control PDU has the following format
The DFU Control Point characteristic is used to control the state of Device Firmware Update process.
Table below summarizes control point procedure op-code and respective parameters.
If an Op Code is written to the DFU Control Point characteristic and the Client Characteristic Configuration descriptors of either or both of the DFU Control Point or the DFU Status Report are not configured for notifications, the DFU Target will return an error response with the Attribute Protocol Application error code set to Client Characteristic Configuration Descriptor Improperly Configured as defined in CSS Part B, Section 1.2 of Supplement to the Bluetooth Core Specification, Version 3 or later.