Hello all,
I am working on the implementation of DFU OTA in our application, running on a custom board using the nRF51822-QFAC.
The tools that I am using are:
- SDK 7.2.0
- Keil uVision V5.15
- Softdevice S110 7.1.0
- nRFgo Studio 1.21.0.2
- Master Control Panel 3.9.0.6
- nRF Toolbox running on an iPad air using iOS 8.1
- nrf.exe bundled with Master Control Panel 3.9.0.6
Using nRFgo Studio I did the following :
- 'Erase all'
- programmed the softdevice into the nRF51822
- programmed the bootloader hex file into the nRF51822
After these steps, the board is up and running and can be discovered and connected to from Master Control Panel and other tools like LightBlue.
When selecting DFU in Master Control Panel, selecting the correct hex file and selecting 'Bootloader', I can upload a new version of the bootloader via DFU OTA.
When I try to DFU OTA via nRF Toolbox on the iOS device, starting from exactly the same hex file, the DFU OTA always interrupts after 1% with the message "DFU The connection has been lost".
To generate the zip-file to be used by nRF Toolbox I used nrf.exe with the following parameters: dfu genpkg bootloader.zip --bootloader bootloader.hex --application-version 0xffffffff --dev-type 0xFFFF --dev-revision 0xFFFF --sd-req 0xFFFE
The generated manifest.json file in the zip file has the following content:
{
"manifest": {
"bootloader": {
"bin_file": "bootloader.bin",
"dat_file": "bootloader.dat",
"init_packet_data": {
"application_version": 4294967295,
"device_revision": 65535,
"device_type": 65535,
"firmware_crc16": 21660,
"softdevice_req": [
65534
]
}
}
}
Any Idea why this is not working via nRF Toolbox?
Thank you very much in advance, with kind regards,
Johan