Hello
In the past I was able to run DFU on both SDK 17 and SDK 14.
Now I am developing over SDK 17.1.0 a new application and attempted to run secure DFU Bootloader using BLE transport.
I have generated private and public keys and replaced dfu_public_key.c content with the generated public key
I installed soft device and run secure_bootloader_ble_s140_pca10056.ewp (compiled it prior of course)
I created my own application package by running nrfutil:
nrfutil pkg generate --hw-version 52 --application-version 1 --application ble_app_uart_pca10040_s132.hex --sd-req 0x101 --key-file private.key oxitone_dfu_package.zip
I run secure_bootloader_ble
Using DFU app on Samsung Galaxy A21s and always getting a GATT error:
NRF Log shows:
DFU, 2022-08-16
DFU (EA:A8:49:2F:C2:3B)
V 13:52:01.708 [DFU] DFU service started
V 13:52:01.720 [DFU] Opening file...
I 13:52:01.730 [DFU] Firmware file opened successfully
V 13:52:01.740 [DFU] Connecting to DFU target...
D 13:52:01.751 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
I 13:52:01.765 [DFU] Connected to EA:A8:49:2F:C2:3B
V 13:52:01.779 [DFU] Discovering services...
D 13:52:01.792 [DFU] gatt.discoverServices()
D 13:52:01.815 [DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
I 13:52:02.248 [DFU] Services discovered
D 13:52:02.261 [DFU] wait(1000)
V 13:52:03.257 [DFU] Requesting new MTU...
D 13:52:03.268 [DFU] gatt.requestMtu(517)
I 13:52:03.289 [DFU] MTU changed to: 247
V 13:52:03.300 [DFU] Enabling notifications for 8ec90001-f315-4f60-9fb8-838830daea50
D 13:52:03.314 [DFU] gatt.setCharacteristicNotification(8ec90001-f315-4f60-9fb8-838830daea50, true)
D 13:52:03.328 [DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 13:52:03.351 [DFU] Data written to descr.8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-00
V 13:52:03.364 [DFU] Notifications enabled for 8ec90001-f315-4f60-9fb8-838830daea50
A 13:52:03.377 [DFU] Notifications enabled
D 13:52:03.389 [DFU] wait(1000)
V 13:52:04.355 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D 13:52:04.374 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I 13:52:04.388 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-01
I 13:52:04.401 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-06-01-00-02-00-00-00-00-00-00-00-00-00-00
A 13:52:04.416 [DFU] Command object info received (Max size = 512, Offset = 0, CRC = 00000000)
V 13:52:04.431 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D 13:52:04.445 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I 13:52:04.457 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 02-00-00
I 13:52:04.471 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-02-01
A 13:52:04.483 [DFU] Packet Receipt Notif disabled (Op Code = 2, Value = 0)
V 13:52:04.494 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D 13:52:04.507 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I 13:52:04.518 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-01-8D-00-00-00
I 13:52:04.530 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A 13:52:04.541 [DFU] Command object created
V 13:52:04.555 [DFU] Writing to characteristic 8ec90002-f315-4f60-9fb8-838830daea50
D 13:52:04.570 [DFU] gatt.writeCharacteristic(8ec90002-f315-4f60-9fb8-838830daea50)
I 13:52:04.584 [DFU] Data written to 8ec90002-f315-4f60-9fb8-838830daea50, value (0x): 12-8A-01-0A-44-08-01-12-40-08-01-10-34-1A-02-80-02-20-00-28-00-30-00-38-C0-FD-0A-42-24-08-03-12-20-65-95-01-D4-F3-65-15-EE-7C-FA-68-C0-E7-A5-69-6C-3E-88-27-CF-7C-69-1C-E8-81-88-66-53-73-A8-CB-79-48-00-52-04-08-01-12-00-10-00-1A-40-69-A8-18-D9-AC-65-70-45-CD-81-20-7D-63-23-17-5A-9D-2E-50-13-F6-A3-64-AF-B9-A6-49-CA-59-F1-1D-B0-EC-5A-C0-6E-91-F3-FB-78-44-80-DA-57-F5-EA-45-83-90-E5-0F-14-DD-A4-9F-B3-76-14-FE-DE-0E-93-73-9B
A 13:52:04.596 [DFU] Command object sent (CRC = 7BE3B6A8)
V 13:52:04.609 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D 13:52:04.623 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I 13:52:04.635 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I 13:52:04.648 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-8D-00-00-00-A8-B6-E3-7B
A 13:52:04.664 [DFU] Checksum received (Offset = 141, CRC = 7BE3B6A8)
V 13:52:04.687 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D 13:52:04.716 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
E 13:52:10.541 [DFU] Error (0x85): GATT ERROR
V 13:52:10.555 [DFU] Disconnecting...
D 13:52:10.567 [DFU] gatt.disconnect()
I 13:52:10.598 [DFU] Disconnected
D 13:52:10.610 [DFU] gatt.refresh() (hidden)
D 13:52:10.627 [DFU] gatt.disconnect()
D 13:52:10.643 [DFU] gatt.close()
D 13:52:10.655 [DFU] wait(600)
D 13:52:10.672 [DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
I have tried using iOS device but on it I am also getting error
what am I doing wrong? What I have missed?