Failure on DFU process (Android)

Dear Support Team,

 

We are encountering an issue when trying to flash the firmware of our B810 smart tag using the Android DFU Library (https://github.com/NordicSemiconductor/Android-DFU-Library) version ‘no.nordicsemi.android:dfu:1.11.1’ from a Samsung Galaxy S9 using Android 10. We tried to perform the flashing using the NRF connect app for Android, to discriminate whether the problem occurs in the library or in the usage we make of it, but we are encountering the very same issue:

Connection failed (0x85): GATT ERROR

 

However, this issue does not occur if we try to use the NRF connect app from a Samsung Galaxy S6 using Android 7.

It seems that the problem occurs while trying to connect to BLE device when it is on DFU mode.

You can see attached the logs from the NRF connect app of the firmware update attempts we performed on both the devices.

Can you assist?

Thanks

nRF Connect, 2022-07-26
No name (FF:EC:FF:FE:CE:66)
V 16:19:47.881 Connecting to FF:EC:FF:FE:CE:66...
D 16:19:47.881 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 16:19:48.135 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
D 16:19:48.182 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 16:19:48.182 Connected to FF:EC:FF:FE:CE:66
V 16:19:48.199 Discovering services...
D 16:19:48.199 gatt.discoverServices()
I 16:19:48.555 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
D 16:19:49.510 [Callback] Services discovered with status: 0
I 16:19:49.511 Services discovered
V 16:19:49.607 Generic Access (0x1800)
- Device Name [R W] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
Battery Service (0x180F)
- Battery Level [N R] (0x2A19)
   Client Characteristic Configuration (0x2902)
Device Information (0x180A)
- Manufacturer Name String [R] (0x2A29)
- Serial Number String [R] (0x2A25)
- Hardware Revision String [R] (0x2A27)
- Firmware Revision String [R] (0x2A26)
Unknown Service (43ba1a00-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4000-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4001-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4002-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a02-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4200-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4202-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4203-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4204-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a03-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4300-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4301-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4302-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4303-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4304-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a04-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4400-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4401-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4402-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R] (43ba4403-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4404-4cf5-46d8-a887-a846d9de712d)
Device Firmware Update Service (00001530-1212-efde-1523-785feabcd123)
- DFU Packet [WNR] (00001532-1212-efde-1523-785feabcd123)
- DFU Control Point [N W] (00001531-1212-efde-1523-785feabcd123)
   Client Characteristic Configuration (0x2902)
- DFU Version [R] (00001534-1212-efde-1523-785feabcd123)
Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
- TX Characteristic [N R] (6e400003-b5a3-f393-e0a9-e50e24dcca9e)
   Client Characteristic Configuration (0x2902)
- RX Characteristic [W WNR] (6e400002-b5a3-f393-e0a9-e50e24dcca9e)
D 16:19:49.608 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D 16:19:49.610 gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
D 16:19:49.612 gatt.setCharacteristicNotification(43ba4000-4cf5-46d8-a887-a846d9de712d, true)
D 16:19:49.613 gatt.setCharacteristicNotification(43ba4200-4cf5-46d8-a887-a846d9de712d, true)
D 16:19:49.615 gatt.setCharacteristicNotification(43ba4400-4cf5-46d8-a887-a846d9de712d, true)
D 16:19:49.616 gatt.setCharacteristicNotification(43ba4402-4cf5-46d8-a887-a846d9de712d, true)
D 16:19:49.617 gatt.setCharacteristicNotification(43ba4403-4cf5-46d8-a887-a846d9de712d, true)
D 16:19:49.620 gatt.setCharacteristicNotification(6e400003-b5a3-f393-e0a9-e50e24dcca9e, true)
I 16:19:49.651 Connection parameters updated (interval: 348.75ms, latency: 0, timeout: 4000ms)
V 16:20:24.776 Reading characteristic 00002a26-0000-1000-8000-00805f9b34fb
D 16:20:24.776 gatt.readCharacteristic(00002a26-0000-1000-8000-00805f9b34fb)
I 16:20:25.206 Read Response received from 00002a26-0000-1000-8000-00805f9b34fb, value: (0x) 30-32-2E-31-36-2E-30-30, "02.16.00"
A 16:20:25.206 "02.16.00" received
V 16:20:26.781 Reading characteristic 00002a25-0000-1000-8000-00805f9b34fb
D 16:20:26.781 gatt.readCharacteristic(00002a25-0000-1000-8000-00805f9b34fb)
I 16:20:27.296 Read Response received from 00002a25-0000-1000-8000-00805f9b34fb, value: (0x) 31-30-30-32-37-32-42-35, "100272B5"
A 16:20:27.296 "100272B5" received
V 16:20:29.236 Writing request to characteristic 43ba4204-4cf5-46d8-a887-a846d9de712d
D 16:20:29.236 gatt.writeCharacteristic(43ba4204-4cf5-46d8-a887-a846d9de712d, value=0xD204)
I 16:20:29.741 Data written to 43ba4204-4cf5-46d8-a887-a846d9de712d, value: (0x) D2-04
A 16:20:29.741 "(0x) D2-04" sent
V 16:20:37.673 [DFU] DFU service started
V 16:20:37.673 [DFU] Opening file...
I 16:20:37.686 [DFU] Firmware file opened successfully
V 16:20:37.686 [DFU] Connecting to DFU target...
D 16:20:37.686 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
I 16:20:37.720 [DFU] Connected to FF:EC:FF:FE:CE:66
V 16:20:37.720 [DFU] Discovering services...
D 16:20:37.720 [DFU] gatt.discoverServices()
I 16:20:37.720 [DFU] Services discovered
D 16:20:37.720 [DFU] wait(1000)
V 16:20:38.751 [DFU] Reading DFU version number...
D 16:20:38.751 [DFU] gatt.readCharacteristic(00001534-1212-efde-1523-785feabcd123)
I 16:20:39.159 [DFU] Read Response received from 00001534-1212-efde-1523-785feabcd123, value (0x): 01-00
A 16:20:39.159 [DFU] Version number read: 0.1
W 16:20:39.159 [DFU] Application with buttonless update found
V 16:20:39.159 [DFU] Jumping to the DFU Bootloader...
V 16:20:39.159 [DFU] Requesting new MTU...
D 16:20:39.159 [DFU] gatt.requestMtu(517)
I 16:20:39.857 [DFU] MTU changed to: 23
V 16:20:39.857 [DFU] Enabling notifications for 00001531-1212-efde-1523-785feabcd123
D 16:20:39.857 [DFU] gatt.setCharacteristicNotification(00001531-1212-efde-1523-785feabcd123, true)
D 16:20:39.857 [DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 16:20:40.912 [DFU] Data written to descr.00001531-1212-efde-1523-785feabcd123, value (0x): 01-00
V 16:20:40.912 [DFU] Notifications enabled for 00001531-1212-efde-1523-785feabcd123
A 16:20:40.912 [DFU] Notifications enabled
D 16:20:40.912 [DFU] wait(1000)
V 16:20:41.933 [DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
D 16:20:41.933 [DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
A 16:20:42.295 [DFU] Jump to bootloader sent (Op Code = 1, Upload Mode = 4)
D 16:20:42.295 [DFU] gatt.refresh() (hidden)
D 16:20:42.312 [DFU] gatt.disconnect()
D 16:20:42.312 [DFU] gatt.close()
V 16:20:42.345 [DFU] DFU service started
I 16:20:42.345 [DFU] Firmware file opened successfully
D 16:20:42.345 [DFU] wait(1000)
D 16:20:43.331 [DFU] wait(1000)
V 16:20:44.346 [DFU] Connecting to DFU target...
D 16:20:44.347 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
I 16:20:44.368 [DFU] Connected to FF:EC:FF:FE:CE:66
V 16:20:44.368 [DFU] Discovering services...
D 16:20:44.368 [DFU] gatt.discoverServices()
I 16:20:45.091 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
D 16:20:54.868 [Callback] Connection state changed with status: 19 and new state: DISCONNECTED (0)
W 16:20:54.869 Connection terminated by peer (status 19)
I 16:20:54.869 Disconnected
E 16:20:54.979 [DFU] Connection failed (0x13): GATT CONN TERMINATE PEER USER
W 16:20:54.980 [DFU] Retrying...
D 16:20:54.980 [DFU] gatt.refresh() (hidden)
D 16:20:54.980 [DFU] gatt.disconnect()
D 16:20:54.980 [DFU] gatt.close()
D 16:20:54.980 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D 16:20:55.023 [DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
V 16:20:55.023 [DFU] DFU service started
I 16:20:55.023 [DFU] Firmware file opened successfully
D 16:20:55.023 [DFU] wait(1000)
D 16:20:56.055 [DFU] wait(1000)
V 16:20:57.027 [DFU] Connecting to DFU target...
D 16:20:57.027 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
E 16:21:02.071 [DFU] Connection failed (0x85): GATT ERROR
W 16:21:02.071 [DFU] Retrying...
D 16:21:02.071 [DFU] gatt.refresh() (hidden)
D 16:21:02.071 [DFU] gatt.disconnect()
D 16:21:02.096 [DFU] gatt.close()
V 16:21:02.153 [DFU] DFU service started
I 16:21:02.153 [DFU] Firmware file opened successfully
D 16:21:02.153 [DFU] wait(1000)
D 16:21:03.172 [DFU] wait(1000)
V 16:21:04.161 [DFU] Connecting to DFU target...
D 16:21:04.161 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
E 16:21:09.250 [DFU] Connection failed (0x85): GATT ERROR
D 16:21:09.250 [DFU] gatt.refresh() (hidden)
D 16:21:09.250 [DFU] gatt.disconnect()
D 16:21:09.282 [DFU] gatt.close()
D 16:21:09.282 [DFU] wait(600)
D 16:21:09.882 gatt.close()
D 16:21:09.891 wait(200)
V 16:21:10.093 Connecting to FF:EC:FF:FE:CE:66...
D 16:21:10.094 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 16:21:15.129 [Callback] Connection state changed with status: 133 and new state: DISCONNECTED (0)
E 16:21:15.129 Error 133 (0x85): GATT ERROR
I 16:21:15.129 Disconnected
nRF Connect, 2022-07-26
SmartTag (FF:EC:FF:FE:CE:66)
V	16:31:59.361	Connecting to FF:EC:FF:FE:CE:66...
D	16:31:59.361	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE)
D	16:31:59.902	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I	16:31:59.902	Connected to FF:EC:FF:FE:CE:66
D	16:31:59.922	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
V	16:31:59.936	Discovering services...
D	16:31:59.936	gatt.discoverServices()
D	16:32:01.166	[Callback] Services discovered with status: 0
I	16:32:01.166	Services discovered
V	16:32:01.247	Generic Access (0x1800)
- Device Name [R W] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
Battery Service (0x180F)
- Battery Level [N R] (0x2A19)
   Client Characteristic Configuration (0x2902)
Device Information (0x180A)
- Manufacturer Name String [R] (0x2A29)
- Serial Number String [R] (0x2A25)
- Hardware Revision String [R] (0x2A27)
- Firmware Revision String [R] (0x2A26)
Unknown Service (43ba1a00-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4000-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4001-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4002-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a02-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4200-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4202-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4203-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4204-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a03-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4300-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4301-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4302-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4303-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4304-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a04-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4400-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4401-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4402-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R] (43ba4403-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4404-4cf5-46d8-a887-a846d9de712d)
Device Firmware Update Service (00001530-1212-efde-1523-785feabcd123)
- DFU Packet [WNR] (00001532-1212-efde-1523-785feabcd123)
- DFU Control Point [N W] (00001531-1212-efde-1523-785feabcd123)
   Client Characteristic Configuration (0x2902)
- DFU Version [R] (00001534-1212-efde-1523-785feabcd123)
Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
- TX Characteristic [N R] (6e400003-b5a3-f393-e0a9-e50e24dcca9e)
   Client Characteristic Configuration (0x2902)
- RX Characteristic [W WNR] (6e400002-b5a3-f393-e0a9-e50e24dcca9e)
D	16:32:01.248	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D	16:32:01.251	gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
D	16:32:01.253	gatt.setCharacteristicNotification(43ba4000-4cf5-46d8-a887-a846d9de712d, true)
D	16:32:01.255	gatt.setCharacteristicNotification(43ba4200-4cf5-46d8-a887-a846d9de712d, true)
D	16:32:01.257	gatt.setCharacteristicNotification(43ba4400-4cf5-46d8-a887-a846d9de712d, true)
D	16:32:01.261	gatt.setCharacteristicNotification(43ba4402-4cf5-46d8-a887-a846d9de712d, true)
D	16:32:01.263	gatt.setCharacteristicNotification(43ba4403-4cf5-46d8-a887-a846d9de712d, true)
D	16:32:01.266	gatt.setCharacteristicNotification(6e400003-b5a3-f393-e0a9-e50e24dcca9e, true)
V	16:32:20.430	Writing request to characteristic 43ba4204-4cf5-46d8-a887-a846d9de712d
D	16:32:20.431	gatt.writeCharacteristic(43ba4204-4cf5-46d8-a887-a846d9de712d, value=0xD204)
I	16:32:21.005	Data written to 43ba4204-4cf5-46d8-a887-a846d9de712d, value: (0x) D2-04
A	16:32:21.006	"(0x) D2-04" sent
V	16:32:31.713	[DFU] DFU service started
V	16:32:31.713	[DFU] Opening file...
I	16:32:31.740	[DFU] Firmware file opened successfully
V	16:32:31.740	[DFU] Connecting to DFU target...
D	16:32:31.740	[DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE)
I	16:32:31.846	[DFU] Connected to FF:EC:FF:FE:CE:66
V	16:32:31.846	[DFU] Discovering services...
D	16:32:31.846	[DFU] gatt.discoverServices()
I	16:32:31.846	[DFU] Services discovered
D	16:32:31.867	[DFU] wait(1000)
V	16:32:32.861	[DFU] Reading DFU version number...
D	16:32:32.861	[DFU] gatt.readCharacteristic(00001534-1212-efde-1523-785feabcd123)
I	16:32:33.563	[DFU] Read Response received from 00001534-1212-efde-1523-785feabcd123, value (0x): 01-00
A	16:32:33.563	[DFU] Version number read: 0.1
W	16:32:33.563	[DFU] Application with buttonless update found
V	16:32:33.563	[DFU] Jumping to the DFU Bootloader...
V	16:32:33.563	[DFU] Requesting new MTU...
D	16:32:33.563	[DFU] gatt.requestMtu(517)
I	16:32:34.262	[DFU] MTU changed to: 23
V	16:32:34.262	[DFU] Enabling notifications for 00001531-1212-efde-1523-785feabcd123
D	16:32:34.262	[DFU] gatt.setCharacteristicNotification(00001531-1212-efde-1523-785feabcd123, true)
D	16:32:34.262	[DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I	16:32:34.952	[DFU] Data written to descr.00001531-1212-efde-1523-785feabcd123, value (0x): 01-00
V	16:32:34.954	[DFU] Notifications enabled for 00001531-1212-efde-1523-785feabcd123
A	16:32:34.955	[DFU] Notifications enabled
D	16:32:34.955	[DFU] wait(1000)
V	16:32:35.976	[DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
D	16:32:35.976	[DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
A	16:32:36.357	[DFU] Jump to bootloader sent (Op Code = 1, Upload Mode = 4)
D	16:32:36.357	[DFU] gatt.refresh() (hidden)
D	16:32:36.357	[DFU] gatt.disconnect()
D	16:32:36.369	[DFU] gatt.close()
V	16:32:36.410	[DFU] DFU service started
I	16:32:36.411	[DFU] Firmware file opened successfully
D	16:32:36.411	[DFU] wait(1000)
D	16:32:37.404	[DFU] wait(1000)
V	16:32:38.427	[DFU] Connecting to DFU target...
D	16:32:38.429	[DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE)
I	16:32:38.569	[DFU] Connected to FF:EC:FF:FE:CE:66
V	16:32:38.569	[DFU] Discovering services...
D	16:32:38.569	[DFU] gatt.discoverServices()
D	16:32:48.908	[Callback] Connection state changed with status: 19 and new state: DISCONNECTED (0)
W	16:32:48.908	Connection terminated by peer (status 19)
I	16:32:48.908	Disconnected
E	16:32:48.971	[DFU] Connection failed (0x13): GATT CONN TERMINATE PEER USER
W	16:32:48.971	[DFU] Retrying...
D	16:32:48.971	[DFU] gatt.refresh() (hidden)
D	16:32:48.971	[DFU] gatt.disconnect()
D	16:32:48.971	[DFU] gatt.close()
D	16:32:49.012	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	16:32:49.055	[DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
V	16:32:49.093	[DFU] DFU service started
I	16:32:49.093	[DFU] Firmware file opened successfully
D	16:32:49.093	[DFU] wait(1000)
D	16:32:50.094	[DFU] wait(1000)
V	16:32:51.081	[DFU] Connecting to DFU target...
D	16:32:51.081	[DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE)
D	16:32:55.568	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
I	16:32:55.616	[DFU] Connected to FF:EC:FF:FE:CE:66
V	16:32:55.616	[DFU] Discovering services...
D	16:32:55.616	[DFU] gatt.discoverServices()
D	16:32:55.616	[DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
I	16:32:56.355	[DFU] Services discovered
D	16:32:56.357	[DFU] wait(1000)
V	16:32:57.354	[DFU] Reading DFU version number...
D	16:32:57.354	[DFU] gatt.readCharacteristic(00001534-1212-efde-1523-785feabcd123)
I	16:32:57.404	[DFU] Read Response received from 00001534-1212-efde-1523-785feabcd123, value (0x): 08-00
A	16:32:57.405	[DFU] Version number read: 0.8
V	16:32:57.405	[DFU] Requesting new MTU...
D	16:32:57.405	[DFU] gatt.requestMtu(517)
I	16:32:57.473	[DFU] MTU changed to: 23
D	16:32:57.474	[DFU] wait(1000)
V	16:32:58.491	[DFU] Enabling notifications for 00001531-1212-efde-1523-785feabcd123
D	16:32:58.491	[DFU] gatt.setCharacteristicNotification(00001531-1212-efde-1523-785feabcd123, true)
D	16:32:58.491	[DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I	16:32:58.520	[DFU] Data written to descr.00001531-1212-efde-1523-785feabcd123, value (0x): 01-00
V	16:32:58.520	[DFU] Notifications enabled for 00001531-1212-efde-1523-785feabcd123
A	16:32:58.520	[DFU] Notifications enabled
D	16:32:58.520	[DFU] wait(1000)
V	16:32:59.525	[DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
D	16:32:59.525	[DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
I	16:32:59.576	[DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 01-04
A	16:32:59.576	[DFU] DFU Start sent (Op Code = 1, Upload Mode = 4)
V	16:32:59.576	[DFU] Writing to characteristic 00001532-1212-efde-1523-785feabcd123
D	16:32:59.576	[DFU] gatt.writeCharacteristic(00001532-1212-efde-1523-785feabcd123)
I	16:32:59.576	[DFU] Data written to 00001532-1212-efde-1523-785feabcd123, value (0x): 00-00-00-00-00-00-00-00-00-00-02-00
A	16:32:59.577	[DFU] Firmware image size sent (0b, 0b, 131072b)
I	16:33:03.442	[DFU] Notification received from 00001531-1212-efde-1523-785feabcd123, value (0x): 10-01-01
A	16:33:03.443	[DFU] Response received (Op Code = 1 Status = 1)
A	16:33:03.443	[DFU] Writing Initialize DFU Parameters...
V	16:33:03.443	[DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
D	16:33:03.443	[DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
I	16:33:03.509	[DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 02-00
V	16:33:03.509	[DFU] Writing to characteristic 00001532-1212-efde-1523-785feabcd123
D	16:33:03.509	[DFU] gatt.writeCharacteristic(00001532-1212-efde-1523-785feabcd123)
I	16:33:03.509	[DFU] Data written to 00001532-1212-efde-1523-785feabcd123, value (0x): 00-01-00-01-41-00-00-00-01-00-64-00-B6-73
V	16:33:03.510	[DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
D	16:33:03.510	[DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
I	16:33:03.575	[DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 02-01
A	16:33:03.575	[DFU] Initialize DFU Parameters completed
I	16:33:03.575	[DFU] Notification received from 00001531-1212-efde-1523-785feabcd123, value (0x): 10-02-01
A	16:33:03.575	[DFU] Response received (Op Code = 2, Status = 1)
V	16:33:03.575	[DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
D	16:33:03.575	[DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
I	16:33:03.629	[DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 03
A	16:33:03.630	[DFU] Receive Firmware Image request sent
A	16:33:03.633	[DFU] Uploading firmware...
V	16:33:03.633	[DFU] Sending firmware to characteristic 00001532-1212-efde-1523-785feabcd123...
I	16:33:52.903	[DFU] Notification received from 00001531-1212-efde-1523-785feabcd123, value (0x): 10-03-01
A	16:33:52.903	[DFU] Response received (Op Code = 3, Status = 1)
A	16:33:52.903	[DFU] Upload completed in 48444 ms
V	16:33:52.903	[DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
D	16:33:52.903	[DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
I	16:33:52.972	[DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 04
A	16:33:52.972	[DFU] Validate request sent
I	16:33:53.123	[DFU] Notification received from 00001531-1212-efde-1523-785feabcd123, value (0x): 10-04-01
A	16:33:53.123	[DFU] Response received (Op Code = 4, Status = 1)
V	16:33:53.155	[DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
D	16:33:53.155	[DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
I	16:33:53.203	[DFU] Data written to 00001531-1212-efde-1523-785feabcd123, value (0x): 05
A	16:33:53.203	[DFU] Activate and Reset request sent
I	16:33:53.415	[DFU] Disconnected by the remote device
D	16:33:53.415	[DFU] gatt.refresh() (hidden)
D	16:33:53.415	[DFU] gatt.disconnect()
D	16:33:53.461	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	16:33:53.462	[DFU] gatt.close()
D	16:33:53.462	[DFU] wait(1400)
D	16:33:53.462	[DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	16:33:54.937	gatt.close()
D	16:33:54.940	wait(200)
V	16:33:55.147	Connecting to FF:EC:FF:FE:CE:66...
D	16:33:55.148	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE)
D	16:33:55.751	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I	16:33:55.751	Connected to FF:EC:FF:FE:CE:66
D	16:33:55.807	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
V	16:33:55.808	Discovering services...
D	16:33:55.808	gatt.discoverServices()
D	16:33:56.819	[Callback] Services discovered with status: 0
I	16:33:56.819	Services discovered
V	16:33:56.895	Generic Access (0x1800)
- Device Name [R W] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
Battery Service (0x180F)
- Battery Level [N R] (0x2A19)
   Client Characteristic Configuration (0x2902)
Device Information (0x180A)
- Manufacturer Name String [R] (0x2A29)
- Serial Number String [R] (0x2A25)
- Hardware Revision String [R] (0x2A27)
- Firmware Revision String [R] (0x2A26)
Unknown Service (43ba1a00-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4000-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4002-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a02-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4200-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4202-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4203-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4204-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4205-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4206-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a03-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4300-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4301-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4303-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a04-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4400-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4401-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4403-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4404-4cf5-46d8-a887-a846d9de712d)
Device Firmware Update Service (00001530-1212-efde-1523-785feabcd123)
- DFU Packet [WNR] (00001532-1212-efde-1523-785feabcd123)
- DFU Control Point [N W] (00001531-1212-efde-1523-785feabcd123)
   Client Characteristic Configuration (0x2902)
- DFU Version [R] (00001534-1212-efde-1523-785feabcd123)
D	16:33:56.896	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D	16:33:56.899	gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
D	16:33:56.902	gatt.setCharacteristicNotification(43ba4000-4cf5-46d8-a887-a846d9de712d, true)
D	16:33:56.904	gatt.setCharacteristicNotification(43ba4200-4cf5-46d8-a887-a846d9de712d, true)
D	16:33:56.907	gatt.setCharacteristicNotification(43ba4400-4cf5-46d8-a887-a846d9de712d, true)
D	16:33:56.910	gatt.setCharacteristicNotification(43ba4403-4cf5-46d8-a887-a846d9de712d, true)
V	16:34:11.270	Reading characteristic 00002a26-0000-1000-8000-00805f9b34fb
D	16:34:11.270	gatt.readCharacteristic(00002a26-0000-1000-8000-00805f9b34fb)
E	16:34:12.318	Error 133 (0x85): GATT ERROR
D	16:34:12.353	[Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E	16:34:12.353	Error 8 (0x8): GATT CONN TIMEOUT
I	16:34:12.353	Disconnected
D	16:34:12.535	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	16:34:16.473	gatt.close()
D	16:34:16.475	wait(200)
V	16:34:16.678	Connecting to FF:EC:FF:FE:CE:66...
D	16:34:16.679	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE)
D	16:34:17.393	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I	16:34:17.393	Connected to FF:EC:FF:FE:CE:66
D	16:34:17.432	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
V	16:34:17.486	Discovering services...
D	16:34:17.486	gatt.discoverServices()
D	16:34:18.462	[Callback] Services discovered with status: 0
I	16:34:18.462	Services discovered
V	16:34:18.546	Generic Access (0x1800)
- Device Name [R W] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
Battery Service (0x180F)
- Battery Level [N R] (0x2A19)
   Client Characteristic Configuration (0x2902)
Device Information (0x180A)
- Manufacturer Name String [R] (0x2A29)
- Serial Number String [R] (0x2A25)
- Hardware Revision String [R] (0x2A27)
- Firmware Revision String [R] (0x2A26)
Unknown Service (43ba1a00-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4000-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4002-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a02-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4200-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4202-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4203-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4204-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4205-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4206-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a03-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4300-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4301-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4303-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a04-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4400-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4401-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4403-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4404-4cf5-46d8-a887-a846d9de712d)
Device Firmware Update Service (00001530-1212-efde-1523-785feabcd123)
- DFU Packet [WNR] (00001532-1212-efde-1523-785feabcd123)
- DFU Control Point [N W] (00001531-1212-efde-1523-785feabcd123)
   Client Characteristic Configuration (0x2902)
- DFU Version [R] (00001534-1212-efde-1523-785feabcd123)
D	16:34:18.547	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D	16:34:18.550	gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
D	16:34:18.553	gatt.setCharacteristicNotification(43ba4000-4cf5-46d8-a887-a846d9de712d, true)
D	16:34:18.555	gatt.setCharacteristicNotification(43ba4200-4cf5-46d8-a887-a846d9de712d, true)
D	16:34:18.557	gatt.setCharacteristicNotification(43ba4400-4cf5-46d8-a887-a846d9de712d, true)
D	16:34:18.560	gatt.setCharacteristicNotification(43ba4403-4cf5-46d8-a887-a846d9de712d, true)
V	16:34:31.203	Reading characteristic 00002a26-0000-1000-8000-00805f9b34fb
D	16:34:31.203	gatt.readCharacteristic(00002a26-0000-1000-8000-00805f9b34fb)
I	16:34:31.774	Read Response received from 00002a26-0000-1000-8000-00805f9b34fb, value: (0x) 33-2E-36, "3.6"
A	16:34:31.774	"3.6" received
nRF Connect, 2022-07-26
No name (FF:EC:FF:FE:CE:66)
V 16:12:06.816 Connecting to FF:EC:FF:FE:CE:66...
D 16:12:06.816 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 16:12:07.365 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
D 16:12:07.441 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 16:12:07.441 Connected to FF:EC:FF:FE:CE:66
V 16:12:07.468 Discovering services...
D 16:12:07.468 gatt.discoverServices()
I 16:12:07.757 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
D 16:12:08.727 [Callback] Services discovered with status: 0
I 16:12:08.727 Services discovered
V 16:12:08.824 Generic Access (0x1800)
- Device Name [R W] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
Battery Service (0x180F)
- Battery Level [N R] (0x2A19)
   Client Characteristic Configuration (0x2902)
Device Information (0x180A)
- Manufacturer Name String [R] (0x2A29)
- Serial Number String [R] (0x2A25)
- Hardware Revision String [R] (0x2A27)
- Firmware Revision String [R] (0x2A26)
Unknown Service (43ba1a00-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4000-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4001-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4002-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a02-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4200-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4202-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4203-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4204-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a03-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4300-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4301-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4302-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4303-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [R W] (43ba4304-4cf5-46d8-a887-a846d9de712d)
Unknown Service (43ba1a04-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4400-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4401-4cf5-46d8-a887-a846d9de712d)
- Unknown Characteristic [N R] (43ba4402-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R] (43ba4403-4cf5-46d8-a887-a846d9de712d)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [R W] (43ba4404-4cf5-46d8-a887-a846d9de712d)
Device Firmware Update Service (00001530-1212-efde-1523-785feabcd123)
- DFU Packet [WNR] (00001532-1212-efde-1523-785feabcd123)
- DFU Control Point [N W] (00001531-1212-efde-1523-785feabcd123)
   Client Characteristic Configuration (0x2902)
- DFU Version [R] (00001534-1212-efde-1523-785feabcd123)
Nordic UART Service (6e400001-b5a3-f393-e0a9-e50e24dcca9e)
- TX Characteristic [N R] (6e400003-b5a3-f393-e0a9-e50e24dcca9e)
   Client Characteristic Configuration (0x2902)
- RX Characteristic [W WNR] (6e400002-b5a3-f393-e0a9-e50e24dcca9e)
D 16:12:08.824 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D 16:12:08.830 gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
D 16:12:08.831 gatt.setCharacteristicNotification(43ba4000-4cf5-46d8-a887-a846d9de712d, true)
D 16:12:08.833 gatt.setCharacteristicNotification(43ba4200-4cf5-46d8-a887-a846d9de712d, true)
D 16:12:08.834 gatt.setCharacteristicNotification(43ba4400-4cf5-46d8-a887-a846d9de712d, true)
D 16:12:08.835 gatt.setCharacteristicNotification(43ba4402-4cf5-46d8-a887-a846d9de712d, true)
D 16:12:08.837 gatt.setCharacteristicNotification(43ba4403-4cf5-46d8-a887-a846d9de712d, true)
D 16:12:08.840 gatt.setCharacteristicNotification(6e400003-b5a3-f393-e0a9-e50e24dcca9e, true)
I 16:12:09.090 Connection parameters updated (interval: 348.75ms, latency: 0, timeout: 4000ms)
V 16:12:12.239 Reading characteristic 00002a25-0000-1000-8000-00805f9b34fb
D 16:12:12.239 gatt.readCharacteristic(00002a25-0000-1000-8000-00805f9b34fb)
I 16:12:12.937 Read Response received from 00002a25-0000-1000-8000-00805f9b34fb, value: (0x) 31-30-30-32-37-32-42-35, "100272B5"
A 16:12:12.937 "100272B5" received
V 16:12:15.996 Reading characteristic 00002a26-0000-1000-8000-00805f9b34fb
D 16:12:15.996 gatt.readCharacteristic(00002a26-0000-1000-8000-00805f9b34fb)
I 16:12:17.461 Read Response received from 00002a26-0000-1000-8000-00805f9b34fb, value: (0x) 30-32-2E-31-36-2E-30-30, "02.16.00"
A 16:12:17.461 "02.16.00" received
V 16:12:32.949 Writing request to characteristic 43ba4204-4cf5-46d8-a887-a846d9de712d
D 16:12:32.950 gatt.writeCharacteristic(43ba4204-4cf5-46d8-a887-a846d9de712d, value=0xD204)
I 16:12:33.503 Data written to 43ba4204-4cf5-46d8-a887-a846d9de712d, value: (0x) D2-04
A 16:12:33.504 "(0x) D2-04" sent
V 16:12:46.343 [DFU] DFU service started
V 16:12:46.343 [DFU] Opening file...
I 16:12:46.357 [DFU] Firmware file opened successfully
V 16:12:46.357 [DFU] Connecting to DFU target...
D 16:12:46.357 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
I 16:12:46.373 [DFU] Connected to FF:EC:FF:FE:CE:66
V 16:12:46.373 [DFU] Discovering services...
D 16:12:46.373 [DFU] gatt.discoverServices()
I 16:12:46.390 [DFU] Services discovered
D 16:12:46.390 [DFU] wait(1000)
V 16:12:47.392 [DFU] Reading DFU version number...
D 16:12:47.392 [DFU] gatt.readCharacteristic(00001534-1212-efde-1523-785feabcd123)
I 16:12:47.809 [DFU] Read Response received from 00001534-1212-efde-1523-785feabcd123, value (0x): 01-00
A 16:12:47.809 [DFU] Version number read: 0.1
W 16:12:47.809 [DFU] Application with buttonless update found
V 16:12:47.809 [DFU] Jumping to the DFU Bootloader...
V 16:12:47.809 [DFU] Requesting new MTU...
D 16:12:47.809 [DFU] gatt.requestMtu(517)
I 16:12:48.860 [DFU] MTU changed to: 23
V 16:12:48.860 [DFU] Enabling notifications for 00001531-1212-efde-1523-785feabcd123
D 16:12:48.860 [DFU] gatt.setCharacteristicNotification(00001531-1212-efde-1523-785feabcd123, true)
D 16:12:48.860 [DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I 16:12:49.545 [DFU] Data written to descr.00001531-1212-efde-1523-785feabcd123, value (0x): 01-00
V 16:12:49.545 [DFU] Notifications enabled for 00001531-1212-efde-1523-785feabcd123
A 16:12:49.545 [DFU] Notifications enabled
D 16:12:49.545 [DFU] wait(1000)
V 16:12:50.567 [DFU] Writing to characteristic 00001531-1212-efde-1523-785feabcd123
D 16:12:50.567 [DFU] gatt.writeCharacteristic(00001531-1212-efde-1523-785feabcd123)
A 16:12:50.948 [DFU] Jump to bootloader sent (Op Code = 1, Upload Mode = 4)
D 16:12:50.948 [DFU] gatt.refresh() (hidden)
D 16:12:50.948 [DFU] gatt.disconnect()
D 16:12:50.948 [DFU] gatt.close()
V 16:12:50.965 [DFU] DFU service started
I 16:12:50.965 [DFU] Firmware file opened successfully
D 16:12:50.965 [DFU] wait(1000)
D 16:12:51.967 [DFU] wait(1000)
V 16:12:52.988 [DFU] Connecting to DFU target...
D 16:12:52.988 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
I 16:12:52.988 [DFU] Connected to FF:EC:FF:FE:CE:66
V 16:12:52.988 [DFU] Discovering services...
D 16:12:52.988 [DFU] gatt.discoverServices()
I 16:12:53.379 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
D 16:13:03.516 [Callback] Connection state changed with status: 19 and new state: DISCONNECTED (0)
W 16:13:03.517 Connection terminated by peer (status 19)
I 16:13:03.517 Disconnected
E 16:13:03.524 [DFU] Connection failed (0x13): GATT CONN TERMINATE PEER USER
W 16:13:03.524 [DFU] Retrying...
D 16:13:03.524 [DFU] gatt.refresh() (hidden)
D 16:13:03.524 [DFU] gatt.disconnect()
D 16:13:03.622 [DFU] gatt.close()
D 16:13:03.629 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D 16:13:03.647 [DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
V 16:13:03.675 [DFU] DFU service started
I 16:13:03.675 [DFU] Firmware file opened successfully
D 16:13:03.675 [DFU] wait(1000)
D 16:13:04.679 [DFU] wait(1000)
V 16:13:05.703 [DFU] Connecting to DFU target...
D 16:13:05.704 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
E 16:13:10.723 [DFU] Connection failed (0x85): GATT ERROR
W 16:13:10.723 [DFU] Retrying...
D 16:13:10.723 [DFU] gatt.refresh() (hidden)
D 16:13:10.723 [DFU] gatt.disconnect()
D 16:13:10.738 [DFU] gatt.close()
V 16:13:10.786 [DFU] DFU service started
I 16:13:10.786 [DFU] Firmware file opened successfully
D 16:13:10.786 [DFU] wait(1000)
D 16:13:11.791 [DFU] wait(1000)
V 16:13:12.816 [DFU] Connecting to DFU target...
D 16:13:12.816 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
E 16:13:17.832 [DFU] Connection failed (0x85): GATT ERROR
D 16:13:17.832 [DFU] gatt.refresh() (hidden)
D 16:13:17.832 [DFU] gatt.disconnect()
D 16:13:17.832 [DFU] gatt.close()
D 16:13:17.832 [DFU] wait(600)
D 16:13:18.436 gatt.close()
D 16:13:18.438 wait(200)
V 16:13:18.640 Connecting to FF:EC:FF:FE:CE:66...
D 16:13:18.640 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 16:13:23.661 [Callback] Connection state changed with status: 133 and new state: DISCONNECTED (0)
E 16:13:23.661 Error 133 (0x85): GATT ERROR
I 16:13:23.662 Disconnected
D 16:13:38.058 gatt.close()
D 16:13:38.062 wait(200)
V 16:13:38.264 Connecting to FF:EC:FF:FE:CE:66...
D 16:13:38.264 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 16:13:43.297 [Callback] Connection state changed with status: 133 and new state: DISCONNECTED (0)
E 16:13:43.297 Error 133 (0x85): GATT ERROR
I 16:13:43.297 Disconnected
 

Parents Reply Children
  • Hi  we're trying to retrieve a dongle in order to sniff BLE traffic. In the meantime, is the attachment btsnoop_hci_202209131717.cfa enough for the analysis?

  • We cannot find anything interesting there. That's why we ask for the ble sniffer log.

    -Amanda 

  • Thank you for sending the log, I may have a clue now.

    You're using Legacy DFU. In the default implementation of Legacy DFU the bootloader, after switching from app mode, starts advertising with Direct Advertising using the same MAC address.

    In frame 170 the app sends "Jump to bootloader" command (0x0104). This should be replied with a notification 0x0601, but I don't see that in the sniffer logs. That's issue number 1.

    Instead of rebooting (Issue number 2) to the bootloader mode immediately, the device holds connection to the phone for next 12 seconds until frame 206, when it finally sends LL_TERMINATE_IND:

    Error Code: Remote User Terminated Connection (0x13)

    Here how it looks from Android side (your listing Samsung S9 2nd attempt):

    // Android sends "Jump to bootlaoder command"
    A 16:20:42.295 [DFU] Jump to bootloader sent (Op Code = 1, Upload Mode = 4)
    
    // It doesn't wait for the notification (no reason to, disconnects instead)
    D 16:20:42.295 [DFU] gatt.refresh() (hidden)
    D 16:20:42.312 [DFU] gatt.disconnect()
    D 16:20:42.312 [DFU] gatt.close()
    
    // And restarts hoping to connect to bootlaoder mode
    V 16:20:42.345 [DFU] DFU service started
    I 16:20:42.345 [DFU] Firmware file opened successfully
    D 16:20:42.345 [DFU] wait(1000)
    D 16:20:43.331 [DFU] wait(1000)
    V 16:20:44.346 [DFU] Connecting to DFU target...
    D 16:20:44.347 [DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
    
    // The library gets CONNECTED state, as... the device is still connected here (didn't reboot)
    I 16:20:44.368 [DFU] Connected to FF:EC:FF:FE:CE:66
    V 16:20:44.368 [DFU] Discovering services...
    D 16:20:44.368 [DFU] gatt.discoverServices()
    
    // Here Android does something weird. 
    // Usually, before service discovery it switches to 7.5 ms interval, so it tires to,
    // but as it's in a weird state, no such packet is sent.
    I 16:20:45.091 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
    
    // Finally, the termination sent from the slave is received.
    D 16:20:54.868 [Callback] Connection state changed with status: 19 and new state: DISCONNECTED (0)
    W 16:20:54.869 Connection terminated by peer (status 19)
    I 16:20:54.869 Disconnected
    E 16:20:54.979 [DFU] Connection failed (0x13): GATT CONN TERMINATE PEER USER

    The termination matches one sent from the device (0x13).

    Then, 5 seconds later, the device begins advertising directly for 30 seconds.

    DFU library tries to connect twice and fails (Issue number 3, the main one). There may be different reasons for the failure. Most probably, it is related to how Android started reacting to Direct advertising. Have a look at: https://github.com/NordicSemiconductor/Android-DFU-Library/blob/38dad6229fa949dca090cfc8a65aa26f0e4ea7f9/lib_dfu/src/main/java/no/nordicsemi/android/dfu/DfuServiceInitiator.java#L334 and https://github.com/NordicSemiconductor/IOS-DFU-Library/pull/374

    Some phones, as we observed, don't respond to direct advertising correctly, they don't connect to it. The solution was to modify the bootloader to use +1 address instead and ADV_IND, not ADV_DIRECT_IND. Then you'd have to set the flag from the first link to make the app scan for a new address after switching to bootloader mode. You may try it if you have a way to trigger dfu mode with a button. Then it should be using normal advertising, as no data are passed from the app, I think.

    Also, investigate why the device does not reboot properly just after switching to bootloader mode. Perhaps this is the root cause?

  • Try repeating the initial steps using nRF Connect for Android on those phones that done work. But manually. Connect, enable notifications and send Dfu Start command. This should trigger notification and disconnection. When finally does, try to reconnect and see it that works during those 30 sec of direct advertising.

    If possible, please provide the logs.

    Have a good weekend!

  • Hi Aleksander, we tried as you described with the following steps:
    - from NrFConnect app we connected to the BLE device starting the DFU process writing on the characteristic
    - then, the BLE device is rebooted waiting for "someone" to connect
    - trying to connect to the BLE we wasn't able to connect 

    Trying the same process from another phone the process was ok

    I've attached both logs.

    0486.manual_fota_KO.pcapng

    8814.manual_fota_OK.pcapng

    Thanks

Related