This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

DFU version Characteristic

In the example iOS app and the DFU service in the firmware there is a DFU revision characteristic UUID 0x1534. The Nordic SDK documentation don't mention this characteristic or its properties.

Is this characteristic required for firmware updates?

  • the use of DFU revision characteristic is described in github.com/.../Android-nRF-Toolbox

    External MCU DFU - The DFU service from the library, when connected to a DFU target, will check whether it is in application or in DFU bootloader mode. For DFU implementations from SDK 7.0 or newer this is done by reading the value of DFU Version characteristic. If the returned value is equal to 0x0100 (major = 0, minor = 1) it means that we are in the application mode and jump to the bootloader mode is required. However, for DFU implementations from older SDKs, where there was no DFU Version characteristic, the service must guess. If this option is set to false (default) it will count number of device's services. If the count is equal to 3 (Generic Access, Generic Attribute, DFU Service) it will assume that it's in DFU mode. If greater than 3 - in app mode. This guessing may not be always correct. One situation may be when the nRF chip is used to flash update on an external MCU using DFU. The DFU procedure may be implemented in the application, which may (and usually does) have more services. In such case set the value of this property to true.

Related