Hi Nordic team,
I have a 52832_xxaa processor with SDK 14.2 and Softdevice 5.1.0. My App run without problems if I only add SD. No problems as well if I add my bootloader (incl. App Settings).
A DFU from my mobile (Sony with andriod, last version) doesn't work.
To prove my bootloader is ok, I tried the buttonless example from the SDK first. Setup was: SD + my bootloader + settings flashed via nRFConnect J-Link Programmer.
With this setup, I can see DFUTarg on my mobile, start DFU, transfer the example and successfully start the example app after reset.
If I do the same with my app, the DFU transfer works well and also after reset I can see my app runing correctly. If I try to DFU my app again know using my app as buttonless DFU service, the DFUTarg (bootloader) is starting, but no transfer of data happens.
Here is my log file, I hope you can help my finding the source of the problem.
nRF Connect, 2023-10-16 DRACER000003 (F0:CF:C4:F3:10:D0) V 21:30:37.034 Connecting to F0:CF:C4:F3:10:D0... D 21:30:37.034 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M) D 21:30:37.393 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2) I 21:30:37.393 Connected to F0:CF:C4:F3:10:D0 V 21:30:37.421 Discovering services... D 21:30:37.421 gatt.discoverServices() D 21:30:37.433 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED I 21:30:37.830 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms) D 21:30:38.037 [Callback] Services discovered with status: 0 I 21:30:38.037 Services discovered V 21:30:38.041 Generic Access (0x1800) - Device Name [R W] (0x2A00) - Appearance [R] (0x2A01) - Peripheral Preferred Connection Parameters [R] (0x2A04) - Central Address Resolution [R] (0x2AA6) Generic Attribute (0x1801) Secure DFU Service (0xFE59) - Buttonless DFU [I W] (8ec90003-f315-4f60-9fb8-838830daea50) Client Characteristic Configuration (0x2902) Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e) - RX Characteristic [W WNR] (6e400002-b5a3-f393-e0a9-e50e24dcca9e) - TX Characteristic [N] (6e400003-b5a3-f393-e0a9-e50e24dcca9e) Client Characteristic Configuration (0x2902) D 21:30:38.043 gatt.setCharacteristicNotification(6e400003-b5a3-f393-e0a9-e50e24dcca9e, true) I 21:30:38.144 Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms) I 21:30:40.709 PHY updated (TX: LE 2M, RX: LE 2M) I 21:30:43.365 Connection parameters updated (interval: 75.0ms, latency: 0, timeout: 4000ms) V 21:31:02.751 [DFU] DFU service started V 21:31:02.751 [DFU] Opening file... I 21:31:02.766 [DFU] Firmware file opened successfully V 21:31:02.768 [DFU] Connecting to DFU target... D 21:31:02.783 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M) I 21:31:02.783 [DFU] Connected to F0:CF:C4:F3:10:D0 V 21:31:02.783 [DFU] Discovering services... D 21:31:02.783 [DFU] gatt.discoverServices() I 21:31:02.804 [DFU] Services discovered D 21:31:02.804 [DFU] wait(1000) W 21:31:03.815 [DFU] Application with buttonless update found V 21:31:03.815 [DFU] Jumping to the DFU Bootloader... V 21:31:03.815 [DFU] Enabling indications for 8ec90003-f315-4f60-9fb8-838830daea50 D 21:31:03.816 [DFU] gatt.setCharacteristicNotification(8ec90003-f315-4f60-9fb8-838830daea50, true) D 21:31:03.816 [DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x02-00) I 21:31:03.916 [DFU] Data written to descr.8ec90003-f315-4f60-9fb8-838830daea50, value (0x): 02-00 V 21:31:03.916 [DFU] Notifications enabled for 8ec90003-f315-4f60-9fb8-838830daea50 A 21:31:03.918 [DFU] Indications enabled D 21:31:03.918 [DFU] wait(1000) V 21:31:04.940 [DFU] Writing to characteristic 8ec90003-f315-4f60-9fb8-838830daea50 D 21:31:04.940 [DFU] gatt.writeCharacteristic(8ec90003-f315-4f60-9fb8-838830daea50) A 21:31:05.040 [DFU] Enter bootloader sent (Op Code = 1) I 21:31:05.041 [DFU] Notification received from 8ec90003-f315-4f60-9fb8-838830daea50, value (0x): 20-01-01 A 21:31:05.041 [DFU] Response received (Op Code = 1, Status = 1) D 21:31:05.041 [DFU] gatt.refresh() (hidden) D 21:31:05.045 [DFU] gatt.disconnect() D 21:31:05.047 [DFU] gatt.close() V 21:31:05.051 [DFU] Scanning for the DFU Bootloader... (timeout 5000 ms) I 21:31:05.211 [DFU] DFU Bootloader found with address F0:CF:C4:F3:10:D1 V 21:31:05.227 [DFU] DFU service started I 21:31:05.227 [DFU] Firmware file opened successfully D 21:31:05.227 [DFU] wait(1000) I 21:31:05.792 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms) D 21:31:06.227 [DFU] wait(1000) V 21:31:07.248 [DFU] Connecting to DFU target... D 21:31:07.250 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M) I 21:31:07.694 [DFU] Connected to F0:CF:C4:F3:10:D1 V 21:31:07.702 [DFU] Discovering services... D 21:31:07.702 [DFU] gatt.discoverServices() D 21:31:07.835 [DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED I 21:31:08.321 [DFU] Services discovered D 21:31:08.321 [DFU] wait(1000) V 21:31:09.321 [DFU] Requesting new MTU... D 21:31:09.322 [DFU] gatt.requestMtu(517) D 21:31:10.820 [Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0) E 21:31:10.821 Error 8 (0x8): GATT CONN TIMEOUT I 21:31:10.822 Disconnected D 21:31:10.855 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED V 21:31:14.206 [DFU] Enabling notifications for 8ec90001-f315-4f60-9fb8-838830daea50 D 21:31:14.206 [DFU] gatt.setCharacteristicNotification(8ec90001-f315-4f60-9fb8-838830daea50, true) D 21:31:14.251 [DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00) E 21:31:14.251 [DFU] Device has disconnected D 21:31:14.251 [DFU] gatt.disconnect() D 21:31:14.251 [DFU] gatt.close() D 21:31:14.255 [DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED V 21:31:14.260 [DFU] DFU service started I 21:31:14.260 [DFU] Firmware file opened successfully D 21:31:14.260 [DFU] wait(1000) D 21:31:15.282 [DFU] wait(1000) V 21:31:16.260 [DFU] Connecting to DFU target... D 21:31:16.294 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M) E 21:31:46.294 [DFU] Connection failed (0xFF): UNKNOWN (255) W 21:31:46.295 [DFU] Retrying... D 21:31:46.295 [DFU] gatt.refresh() (hidden) D 21:31:46.301 [DFU] gatt.disconnect() D 21:31:46.303 [DFU] gatt.close() V 21:31:46.322 [DFU] DFU service started I 21:31:46.322 [DFU] Firmware file opened successfully D 21:31:46.322 [DFU] wait(1000) D 21:31:47.338 [DFU] wait(1000) V 21:31:48.323 [DFU] Connecting to DFU target... D 21:31:48.324 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M) E 21:32:18.337 [DFU] Connection failed (0xFF): UNKNOWN (255) W 21:32:18.337 [DFU] Retrying... D 21:32:18.337 [DFU] gatt.refresh() (hidden) D 21:32:18.341 [DFU] gatt.disconnect() D 21:32:18.343 [DFU] gatt.close() V 21:32:18.358 [DFU] DFU service started I 21:32:18.358 [DFU] Firmware file opened successfully D 21:32:18.358 [DFU] wait(1000) D 21:32:19.358 [DFU] wait(1000) V 21:32:20.376 [DFU] Connecting to DFU target... D 21:32:20.376 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
Kind regards, Andreas