Bluetooth Low Energy (a.k.a Bluetooth LE, BTLE, Bluetooth Smart)

DFU Service Change request for Windows 8.1 Desktop interop

21 Apr 2015

Hi,

Whilst developing a Win8.1 Desktop C# FOTA upload command line tool (i.e. non-Store app) I've hit a few bumps; some of those bumps centre around the way Windows manages devices/connections itself and caches GATT Service information (especially the underlying Characteristic 'handles').

Because the underlying handles for the Nordic bootloader DFU service and mbed DFUService differ due to the order in which they are added to the BLE stack, Windows would get very upset when trying to register for a Notification on the wrong Characteristic (after the initial FOTA process reset)

To workaround this I had to perform the following change in my branch of DFUService.cpp:

Change: GattCharacteristic *dfuChars[] = {&controlPoint, &packet};

To: GattCharacteristic *dfuChars[] = {&packet, &controlPoint};

Windows harrumphing aside, to me it made more sense to change the mbed code rather than the Nordic codebase; please could this be done in the mainline mbed BLE_API code?

Thanks Wayne

21 Apr 2015

Will take this workaround into account, Wayne. This could save us some trouble. Thanks.