Hi Everybody!
I'm trying to integrate a buttonless dfu into my application but I'm not able to get even the provided example in SDK 12.2.0 "experimental_ble_app_buttonless_dfu" to work.
I compiled the "bootloader_secure" with armgcc and flashed it onto my PCA10028, using a public key generated by nrfutils as instructed.
Then I compiled experimental_ble_app_buttonless_dfu (had to change the linker script according to this), generated a zip update package again using the key previously generated.
On my Android Phone using nRFconnect I can see the DfuTarg and can upload the firmware.
After that, Nordic_Template will show up in the scanner, broadcasting the Experimental Buttonless DFU Service as promised.
If I try now to again send the same update zip file OTA something goes wrong: The screen with the speed diagram appears, under that I read first "Initialising..." then "Starting DFU..." then "Starting Bootloader...". But after that nothing happens
Here is the log from the Android App:
V 14:21:35.753 Generic Access (0x1800)
- Device Name [R W] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
Generic Attribute (0x1801)
Experimental Buttonless DFU Service (8e400001-f315-4f60-9fb8-838830daea50)
- Experimental Buttonless DFU [N] (8e400001-f315-4f60-9fb8-838830daea50)
Client Characteristic Configuration (0x2902)
V 14:23:05.900 [DFU] DFU service started
V 14:23:05.914 [DFU] Opening file...
I 14:23:05.924 [DFU] Image file opened (45756 bytes in total)
D 14:23:05.933 [DFU] wait(1000)
D 14:23:06.858 [DFU] wait(1000)
V 14:23:07.863 [DFU] Connecting to DFU target...
D 14:23:07.880 [DFU] gatt = device.connectGatt(autoConnect = false)
I 14:23:07.889 [DFU] Connected to E0:43:DF:2F:63:BC
V 14:23:07.899 [DFU] Discovering services...
D 14:23:07.909 [DFU] gatt.discoverServices()
I 14:23:07.923 [DFU] Services discovered
D 14:23:07.935 [DFU] wait(1000)
W 14:23:08.890 [DFU] Application with buttonless update found
V 14:23:08.915 [DFU] Jumping to the DFU Bootloader...
V 14:23:08.929 [DFU] Enabling notifications for 8e400001-f315-4f60-9fb8-838830daea50
D 14:23:08.938 [DFU] gatt.setCharacteristicNotification(8e400001-f315-4f60-9fb8-838830daea50, true)
D 14:23:08.956 [DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 14:23:09.328 [DFU] Data written to descr.8e400001-f315-4f60-9fb8-838830daea50, value (0x): 01-00
V 14:23:09.344 [DFU] Notifications enabled for 8e400001-f315-4f60-9fb8-838830daea50
A 14:23:09.353 [DFU] Notifications enabled
D 14:23:09.362 [DFU] wait(1000)
V 14:23:10.376 [DFU] Writing to characteristic 8e400001-f315-4f60-9fb8-838830daea50
D 14:23:10.394 [DFU] gatt.writeCharacteristic(8e400001-f315-4f60-9fb8-838830daea50)
I know, that this is experimental and not supported yet. But could you give me a pointer were to look next?
Best Regards, Philip