DFU problem Android

Hello,

I work with NRF52832 evaluation board.

SDK 17.1.0

I try to implémente DFU -> pca10040_s132_ble / pca10040_s132_ble_debug.

Applicatif is : ble_app_buttonless_dfu

No code modification (only key), I run with exemple code. I use same DFU pakage for all Device.

Works fine with :

  • NRFconnect  IOS Iphone XR and Ipad
  • NRFconnect Desktop
  • NRFconnect Sony Xperia (E5823) Android 7.1.1

Not work with :  

  • Galaxy tab A8 Android 11

Log DFU with Galaxy tab A8 :

Log PC debug nrf52832 :

<debug> nrf_dfu_ble: Received BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST (request: 517, reply: 247).
<debug> nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST.
<debug> nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE (27, max_rx_time 328).
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_SELECT (command)
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> nrf_dfu_ble: Set receipt notif
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_RECEIPT_NOTIF_SET
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> app: Shutting down transports (found: 1)
<debug> nrf_dfu_req_handler: Handle NRF_DFU_OP_OBJECT_CREATE (command)
<debug> app: timer_stop (0x20005984)
<debug> app: timer_activate (0x20005984)
<debug> nrf_dfu_req_handler: Request handling complete. Result: 0x1
<debug> nrf_dfu_ble: Advertising...
<debug> nrf_dfu_settings: Using settings page.
<debug> nrf_dfu_settings: Copying forbidden parts from backup page.
<debug> nrf_dfu_ble: Connected
<debug> nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST.
<debug> nrf_dfu_ble: Received BLE_GAP_EVT_DATA_LENGTH_UPDATE (27, max_rx_time 328).
<debug> nrf_dfu_ble: Received BLE_GAP_EVT_CONN_PARAM_UPDATE
<debug> nrf_dfu_ble: max_conn_interval: 12
<debug> nrf_dfu_ble: min_conn_interval: 12
<debug> nrf_dfu_ble: slave_latency: 0
<debug> nrf_dfu_ble: conn_sup_timeout: 600
<debug> nrf_dfu_ble: Received BLE_GAP_EVT_CONN_PARAM_UPDATE
<debug> nrf_dfu_ble: max_conn_interval: 6
<debug> nrf_dfu_ble: min_conn_interval: 6
<debug> nrf_dfu_ble: slave_latency: 0
<debug> nrf_dfu_ble: conn_sup_timeout: 500
<debug> nrf_dfu_ble: Received BLE_GAP_EVT_CONN_PARAM_UPDATE
<debug> nrf_dfu_ble: max_conn_interval: 12
<debug> nrf_dfu_ble: min_conn_interval: 12
<debug> nrf_dfu_ble: slave_latency: 0
<debug> nrf_dfu_ble: conn_sup_timeout: 600

Log NRFconnect Galaxy Tab :

nRF Connect, 2022-06-14
DfuTarg (DE:A4:47:3E:E8:41)
V	09:34:29.820	[DFU] DFU service started
V	09:34:29.820	[DFU] Opening file...
I	09:34:29.820	[DFU] Firmware file opened successfully
V	09:34:29.820	[DFU] Connecting to DFU target...
D	09:34:29.820	[DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
I	09:34:29.827	[DFU] Connected to DE:A4:47:3E:E8:41
V	09:34:29.828	[DFU] Discovering services...
D	09:34:29.828	[DFU] gatt.discoverServices()
I	09:34:29.830	[DFU] Services discovered
D	09:34:29.836	[DFU] wait(1000)
V	09:34:30.862	[DFU] Requesting new MTU...
D	09:34:30.862	[DFU] gatt.requestMtu(517)
I	09:34:30.868	[DFU] MTU changed to: 247
V	09:34:30.868	[DFU] Enabling notifications for 8ec90001-f315-4f60-9fb8-838830daea50
D	09:34:30.868	[DFU] gatt.setCharacteristicNotification(8ec90001-f315-4f60-9fb8-838830daea50, true)
D	09:34:30.869	[DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I	09:34:30.898	[DFU] Data written to descr.8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-00
V	09:34:30.898	[DFU] Notifications enabled for 8ec90001-f315-4f60-9fb8-838830daea50
A	09:34:30.898	[DFU] Notifications enabled
D	09:34:30.898	[DFU] wait(1000)
V	09:34:31.903	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	09:34:31.903	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	09:34:31.949	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-01
I	09:34:31.949	[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	09:34:31.950	[DFU] Command object info received (Max size = 512, Offset = 0, CRC = 00000000)
V	09:34:31.950	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	09:34:31.950	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	09:34:31.978	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 02-00-00
I	09:34:31.978	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-02-01
A	09:34:31.978	[DFU] Packet Receipt Notif disabled (Op Code = 2, Value = 0)
V	09:34:31.978	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	09:34:31.978	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	09:34:32.008	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-01-8D-00-00-00
I	09:34:32.008	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	09:34:32.008	[DFU] Command object created
V	09:34:32.008	[DFU] Writing to characteristic 8ec90002-f315-4f60-9fb8-838830daea50
D	09:34:32.008	[DFU] gatt.writeCharacteristic(8ec90002-f315-4f60-9fb8-838830daea50)
I	09:34:32.013	[DFU] Data written to 8ec90002-f315-4f60-9fb8-838830daea50, value (0x): 12-8A-01-0A-44-08-01-12-40-08-02-10-34-1A-02-81-02-20-00-28-00-30-00-38-D0-BC-04-42-24-08-03-12-20-69-ED-60-0A-27-8D-1D-FD-46-F5-C2-CB-4C-8D-82-C4-49-B9-5D-72-16-0F-78-64-88-13-FA-DE-16-7A-F4-85-48-00-52-04-08-01-12-00-10-00-1A-40-13-87-49-A3-49-EC-28-7A-AE-D2-EC-BC-BD-74-58-0E-4D-23-55-A7-88-02-DF-22-94-BA-5B-03-D4-93-70-98-18-8A-14-3E-29-21-15-9B-6B-B9-C6-C9-3D-8A-F5-4F-7F-96-0A-8A-07-1A-5F-AA-D0-C6-2A-67-BD-4D-61-13
A	09:34:32.013	[DFU] Command object sent (CRC = 1CDAB9F2)
V	09:34:32.013	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	09:34:32.013	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
   E	09:34:38.013	[DFU] Error (0x85): GATT ERROR
V	09:34:38.013	[DFU] Disconnecting...
D	09:34:38.014	[Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
   E	09:34:38.014	Error 8 (0x8): GATT CONN TIMEOUT
I	09:34:38.014	Disconnected
D	09:34:38.038	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	09:34:38.038	[DFU] gatt.disconnect()
I	09:34:38.038	[DFU] Disconnected
D	09:34:38.038	[DFU] gatt.refresh() (hidden)
D	09:34:38.038	[DFU] gatt.disconnect()
D	09:34:38.038	[DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	09:34:38.050	[DFU] gatt.close()
D	09:34:38.050	[DFU] wait(600)
D	09:34:38.649	gatt.close()
D	09:34:38.654	wait(200)
V	09:34:38.855	Connecting to DE:A4:47:3E:E8:41...
D	09:34:38.855	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D	09:34:39.023	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
D	09:34:39.028	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I	09:34:39.028	Connected to DE:A4:47:3E:E8:41
I	09:34:39.823	Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 6000ms)
I	09:34:40.048	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
V	09:34:40.055	Discovering services...
D	09:34:40.055	gatt.discoverServices()
D	09:34:40.061	[Callback] Services discovered with status: 0
I	09:34:40.061	Services discovered
V	09:34:40.067	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)
- DFU Packet [WNR] (8ec90002-f315-4f60-9fb8-838830daea50)
- DFU Control Point [N W] (8ec90001-f315-4f60-9fb8-838830daea50)
   Client Characteristic Configuration (0x2902)
I	09:34:40.131	Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 6000ms)

I have no more idea to solve my problem.

Thanks

Related