This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

OTA DFU failing on tablet, works from phone

I cannot get OTA DFU to work on a tablet I have, it works fine with my phone but does not start the transfer, then drops out and reconnects?

Same board, same zipped package, only difference is the device sending the update. Testing with our custom board and PCA10056.

Tablet is a Vankyo S20 (EEA) running Android 9

I have attached logs from the debugger and nRF Connect app for both successful and failed attempts.

Not sure where to begin with this - did find some posts about altering HCI_RX_BUF_QUEUE_SIZE to 16 but it still fails.

Debugger - Failure:

<info> app: Inside main
<debug> app: In nrf_bootloader_init
<debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
<debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
<debug> nrf_dfu_settings: Using settings page.
<debug> nrf_dfu_settings: Copying forbidden parts from backup page.
<debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
<info> nrf_dfu_settings: Backing up settings page to address 0xFE000.
<debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
<debug> app: Enter nrf_bootloader_fw_activate
<info> app: No firmware to activate.
<info> app: Boot validation failed. No valid app to boot.
<debug> app: DFU mode because app is not valid.
<info> nrf_bootloader_wdt: WDT is not enabled
<debug> app: in weak nrf_dfu_init_user
<debug> app: timer_stop (0x20005984)
<debug> app: timer_activate (0x20005984)
<info> app: Entering DFU mode.
<debug> app: Initializing transports (found: 1)
<debug> nrf_dfu_ble: Initializing BLE DFU transport
<debug> nrf_dfu_ble: Setting up vector table: 0x000F1000
<debug> nrf_dfu_ble: Enabling SoftDevice.
<debug> nrf_dfu_ble: Configuring BLE stack.
<debug> nrf_dfu_ble: Enabling the BLE stack.
<debug> nrf_dfu_ble: No advertising name found
<debug> nrf_dfu_ble: Using default advertising name
<debug> nrf_dfu_ble: Advertising...
<debug> nrf_dfu_ble: BLE DFU transport initialized.
<debug> nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
<debug> app: Enter main loop
<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: 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
<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: 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

nRF Connect - Failure

nRF Connect, 2020-11-10
DfuTarg (C2:08:A0:55:5C:D9)
V	15:05:24.866	Connecting to C2:08:A0:55:5C:D9...
D	15:05:24.867	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D	15:05:26.159	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
D	15:05:26.159	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
I	15:05:26.163	Connected to C2:08:A0:55:5C:D9
V	15:05:26.195	Discovering services...
D	15:05:26.195	gatt.discoverServices()
I	15:05:26.423	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
D	15:05:26.628	[Callback] Services discovered with status: 0
I	15:05:26.628	Services discovered
V	15:05:26.639	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	15:05:26.670	Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 6000ms)
V	15:05:30.840	[DFU] DFU service started
V	15:05:30.841	[DFU] Opening file...
I	15:05:30.864	[DFU] Firmware file opened successfully
V	15:05:30.864	[DFU] Connecting to DFU target...
D	15:05:30.865	[DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
I	15:05:30.870	[DFU] Connected to C2:08:A0:55:5C:D9
V	15:05:30.871	[DFU] Discovering services...
D	15:05:30.871	[DFU] gatt.discoverServices()
I	15:05:30.880	[DFU] Services discovered
D	15:05:30.902	[DFU] wait(1000)
V	15:05:31.917	[DFU] Requesting new MTU...
D	15:05:31.917	[DFU] gatt.requestMtu(517)
I	15:05:31.917	[DFU] MTU changed to: 247
V	15:05:31.917	[DFU] Enabling notifications for 8ec90001-f315-4f60-9fb8-838830daea50
D	15:05:31.917	[DFU] gatt.setCharacteristicNotification(8ec90001-f315-4f60-9fb8-838830daea50, true)
D	15:05:31.918	[DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I	15:05:31.946	[DFU] Data written to descr.8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-00
V	15:05:31.946	[DFU] Notifications enabled for 8ec90001-f315-4f60-9fb8-838830daea50
A	15:05:31.946	[DFU] Notifications enabled
D	15:05:31.946	[DFU] wait(1000)
V	15:05:32.985	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:05:32.985	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:05:32.985	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-01
I	15:05:32.985	[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	15:05:32.985	[DFU] Command object info received (Max size = 512, Offset = 0, CRC = 00000000)
V	15:05:32.985	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:05:32.985	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:05:33.011	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 02-00-00
I	15:05:33.011	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-02-01
A	15:05:33.011	[DFU] Packet Receipt Notif disabled (Op Code = 2, Value = 0)
V	15:05:33.011	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:05:33.011	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:05:33.040	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-01-8D-00-00-00
I	15:05:33.040	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:05:33.040	[DFU] Command object created
V	15:05:33.041	[DFU] Writing to characteristic 8ec90002-f315-4f60-9fb8-838830daea50
D	15:05:33.041	[DFU] gatt.writeCharacteristic(8ec90002-f315-4f60-9fb8-838830daea50)
I	15:05:33.044	[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-CA-01-20-00-28-00-30-00-38-98-F0-09-42-24-08-03-12-20-22-A9-39-C7-C2-27-2C-5F-6F-8F-08-50-15-AB-53-A5-1F-78-DC-EA-F3-CC-A9-67-86-F6-3E-0B-F4-49-CF-C8-48-00-52-04-08-01-12-00-10-00-1A-40-AE-9D-ED-E1-C1-7B-DA-E9-5F-2C-C5-73-25-44-E5-2B-04-6C-0F-23-3B-85-AC-9F-84-3C-EF-DC-BF-93-1D-9E-23-7D-64-A8-43-89-38-4E-C7-0F-93-EC-20-2A-0F-54-A7-F1-1C-62-97-BB-71-B7-86-0F-36-32-EA-D5-CE-88
A	15:05:33.045	[DFU] Command object sent (CRC = 882324A1)
V	15:05:33.045	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:05:33.045	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
D	15:05:39.044	[Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E	15:05:39.044	Error 8 (0x8): GATT CONN TIMEOUT
I	15:05:39.044	Disconnected
E	15:05:39.045	[DFU] Error (0x85): GATT ERROR
D	15:05:39.054	[DFU] gatt.refresh() (hidden)
D	15:05:39.054	[DFU] gatt.disconnect()
D	15:05:39.054	[DFU] gatt.close()
D	15:05:39.054	[DFU] wait(600)
D	15:05:39.079	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	15:05:39.092	[DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	15:05:39.655	gatt.close()
D	15:05:39.657	wait(200)
V	15:05:39.859	Connecting to C2:08:A0:55:5C:D9...
D	15:05:39.859	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D	15:05:41.052	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I	15:05:41.052	Connected to C2:08:A0:55:5C:D9
D	15:05:41.053	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
V	15:05:41.072	Discovering services...
D	15:05:41.072	gatt.discoverServices()
I	15:05:41.319	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
D	15:05:41.524	[Callback] Services discovered with status: 0
I	15:05:41.524	Services discovered
V	15:05:41.536	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	15:05:41.565	Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 6000ms)
D	15:07:39.024	[Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E	15:07:39.025	Error 8 (0x8): GATT CONN TIMEOUT
I	15:07:39.025	Disconnected
D	15:07:39.043	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED

Debugger - Success:

<info> app: Inside main
<debug> app: In nrf_bootloader_init
<debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
<debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
<debug> nrf_dfu_settings: Using settings page.
<debug> nrf_dfu_settings: Copying forbidden parts from backup page.
<debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
<info> nrf_dfu_settings: Backing up settings page to address 0xFE000.
<debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
<debug> app: Enter nrf_bootloader_fw_activate
<info> app: No firmware to activate.
<info> app: Boot validation failed. No valid app to boot.
<debug> app: DFU mode because app is not valid.
<info> nrf_bootloader_wdt: WDT is not enabled
<debug> app: in weak nrf_dfu_init_user
<debug> app: timer_stop (0x20005984)
<debug> app: timer_activate (0x20005984)
<info> app: Entering DFU mode.
<debug> app: Initializing transports (found: 1)
<debug> nrf_dfu_ble: Initializing BLE DFU transport
<debug> nrf_dfu_ble: Setting up vector table: 0x000F1000
<debug> nrf_dfu_ble: Enabling SoftDevice.
<debug> nrf_dfu_ble: Configuring BLE stack.
<debug> nrf_dfu_ble: Enabling the BLE stack.
<debug> nrf_dfu_ble: No advertising name found
<debug> nrf_dfu_ble: Using default advertising name
<debug> nrf_dfu_ble: Advertising...
<debug> nrf_dfu_ble: BLE DFU transport initialized.
<debug> nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
<debug> app: Enter main loop
<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: 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
<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: 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
<debug> ap<info> app: Inside main
<debug> app: In nrf_bootloader_init
<debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
<debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
<debug> nrf_dfu_settings: Using settings page.
<debug> nrf_dfu_settings: Copying forbidden parts from backup page.
<debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
<info> nrf_dfu_settings: Backing up settings page to address 0xFE000.
<debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
<debug> app: Enter nrf_bootloader_fw_activate
<info> app: No firmware to activate.
<info> app: Boot validation failed. No valid app to boot.
<debug> app: DFU mode because app is not valid.
<info> nrf_bootloader_wdt: WDT is not enabled
<debug> app: in weak nrf_dfu_init_user
<debug> app: timer_stop (0x20005984)
<debug> app: timer_activate (0x20005984)
<info> app: Entering DFU mode.
<debug> app: Initializing transports (found: 1)
<debug> nrf_dfu_ble: Initializing BLE DFU transport
<debug> nrf_dfu_ble: Setting up vector table: 0x000F1000
<debug> nrf_dfu_ble: Enabling SoftDevice.
<debug> nrf_dfu_ble: Configuring BLE stack.
<debug> nrf_dfu_ble: Enabling the BLE stack.
<debug> nrf_dfu_ble: No advertising name found
<debug> nrf_dfu_ble: Using default advertising name
<debug> nrf_dfu_ble: Advertising...
<debug> nrf_dfu_ble: BLE DFU transport initialized.
<debug> nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
<debug> app: Enter main loop

nRF Connect - Success:

nRF Connect, 2020-11-10
DfuTarg (C2:08:A0:55:5C:D9)
V	15:09:37.357	Connecting to C2:08:A0:55:5C:D9...
D	15:09:37.357	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D	15:09:37.481	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
D	15:09:37.491	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I	15:09:37.491	Connected to C2:08:A0:55:5C:D9
V	15:09:37.494	Discovering services...
D	15:09:37.494	gatt.discoverServices()
I	15:09:38.193	Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 6000ms)
I	15:09:38.368	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
D	15:09:38.409	[Callback] Services discovered with status: 0
I	15:09:38.409	Services discovered
V	15:09:38.422	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	15:09:38.474	Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 6000ms)
V	15:09:49.967	[DFU] DFU service started
V	15:09:49.967	[DFU] Opening file...
I	15:09:49.972	[DFU] Firmware file opened successfully
V	15:09:49.972	[DFU] Connecting to DFU target...
D	15:09:49.972	[DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
I	15:09:49.974	[DFU] Connected to C2:08:A0:55:5C:D9
V	15:09:49.974	[DFU] Discovering services...
D	15:09:49.974	[DFU] gatt.discoverServices()
I	15:09:49.976	[DFU] Services discovered
D	15:09:49.986	[DFU] wait(1000)
V	15:09:50.989	[DFU] Requesting new MTU...
D	15:09:50.989	[DFU] gatt.requestMtu(517)
I	15:09:51.029	[DFU] MTU changed to: 247
V	15:09:51.030	[DFU] Enabling notifications for 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:51.030	[DFU] gatt.setCharacteristicNotification(8ec90001-f315-4f60-9fb8-838830daea50, true)
D	15:09:51.030	[DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I	15:09:51.089	[DFU] Data written to descr.8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-00
V	15:09:51.089	[DFU] Notifications enabled for 8ec90001-f315-4f60-9fb8-838830daea50
A	15:09:51.090	[DFU] Notifications enabled
D	15:09:51.090	[DFU] wait(1000)
V	15:09:52.091	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:52.091	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:52.125	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-01
I	15:09:52.125	[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	15:09:52.126	[DFU] Command object info received (Max size = 512, Offset = 0, CRC = 00000000)
V	15:09:52.126	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:52.126	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:52.169	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 02-00-00
I	15:09:52.169	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-02-01
A	15:09:52.169	[DFU] Packet Receipt Notif disabled (Op Code = 2, Value = 0)
V	15:09:52.169	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:52.169	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:52.199	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-01-8D-00-00-00
I	15:09:52.199	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:09:52.199	[DFU] Command object created
V	15:09:52.200	[DFU] Writing to characteristic 8ec90002-f315-4f60-9fb8-838830daea50
D	15:09:52.200	[DFU] gatt.writeCharacteristic(8ec90002-f315-4f60-9fb8-838830daea50)
I	15:09:52.201	[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-CA-01-20-00-28-00-30-00-38-90-83-05-42-24-08-03-12-20-AF-6C-47-B4-5B-AA-56-75-DA-81-E1-1C-1B-18-A3-E0-A5-85-04-F0-58-4E-FD-FC-DC-19-82-A3-65-81-88-D0-48-00-52-04-08-01-12-00-10-00-1A-40-6B-67-AE-F6-51-DF-00-F0-03-3A-FE-E2-64-F7-B7-06-4F-B8-89-ED-4F-F4-80-7C-50-4D-63-6A-02-E5-96-B5-4E-BE-EB-9A-FF-9F-D1-B3-D5-B0-7A-06-0D-F2-66-6A-BD-15-AB-90-DF-92-4E-F2-1C-27-02-E0-5A-47-7D-DB
A	15:09:52.201	[DFU] Command object sent (CRC = 5B9FA9A5)
V	15:09:52.202	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:52.202	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:52.245	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:09:52.245	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-8D-00-00-00-A5-A9-9F-5B
A	15:09:52.245	[DFU] Checksum received (Offset = 141, CRC = 5B9FA9A5)
V	15:09:52.245	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:52.245	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:52.274	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:09:52.289	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:09:52.289	[DFU] Command object executed
V	15:09:52.289	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:52.289	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:52.319	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-02
I	15:09:52.319	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-06-01-00-10-00-00-00-00-00-00-00-00-00-00
A	15:09:52.320	[DFU] Data object info received (Max size = 4096, Offset = 0, CRC = 00000000)
V	15:09:52.349	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:52.349	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:52.455	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:09:52.456	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:09:52.456	[DFU] Data object (1/21) created
D	15:09:52.457	[DFU] wait(400)
A	15:09:52.857	[DFU] Uploading firmware...
V	15:09:52.857	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:09:52.889	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:52.889	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:53.386	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:09:53.387	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-10-00-00-5F-00-DE-44
A	15:09:53.387	[DFU] Checksum received (Offset = 4096, CRC = 44DE005F)
V	15:09:53.387	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:53.387	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:53.414	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:09:53.415	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:09:53.415	[DFU] Data object executed
V	15:09:53.415	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:53.415	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:53.445	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:09:53.460	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:09:53.460	[DFU] Data object (2/21) created
D	15:09:53.460	[DFU] wait(400)
A	15:09:53.862	[DFU] Uploading firmware...
V	15:09:53.862	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:09:53.889	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:53.889	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:54.240	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:09:54.241	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-20-00-00-D8-C8-B9-43
A	15:09:54.242	[DFU] Checksum received (Offset = 8192, CRC = 43B9C8D8)
V	15:09:54.242	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:54.242	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:54.269	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:09:54.269	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:09:54.269	[DFU] Data object executed
V	15:09:54.269	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:54.269	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:54.315	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:09:54.315	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:09:54.318	[DFU] Data object (3/21) created
D	15:09:54.318	[DFU] wait(400)
A	15:09:54.719	[DFU] Uploading firmware...
V	15:09:54.719	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:09:54.762	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:54.762	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:55.173	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:09:55.173	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-30-00-00-EE-9A-A6-B6
A	15:09:55.173	[DFU] Checksum received (Offset = 12288, CRC = B6A69AEE)
V	15:09:55.173	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:55.174	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:55.202	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:09:55.202	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:09:55.203	[DFU] Data object executed
V	15:09:55.203	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:55.204	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:55.230	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:09:55.230	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:09:55.231	[DFU] Data object (4/21) created
D	15:09:55.231	[DFU] wait(400)
A	15:09:55.632	[DFU] Uploading firmware...
V	15:09:55.632	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:09:55.664	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:55.664	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:56.040	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:09:56.040	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-40-00-00-CA-02-19-BB
A	15:09:56.040	[DFU] Checksum received (Offset = 16384, CRC = BB1902CA)
V	15:09:56.040	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:56.041	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:56.084	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:09:56.084	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:09:56.084	[DFU] Data object executed
V	15:09:56.084	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:56.084	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:56.114	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:09:56.114	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:09:56.114	[DFU] Data object (5/21) created
D	15:09:56.114	[DFU] wait(400)
A	15:09:56.515	[DFU] Uploading firmware...
V	15:09:56.515	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:09:56.559	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:56.559	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:57.029	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:09:57.030	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-50-00-00-87-AB-A2-85
A	15:09:57.030	[DFU] Checksum received (Offset = 20480, CRC = 85A2AB87)
V	15:09:57.030	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:57.030	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:57.104	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:09:57.104	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:09:57.104	[DFU] Data object executed
V	15:09:57.105	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:57.105	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:57.150	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:09:57.150	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:09:57.150	[DFU] Data object (6/21) created
D	15:09:57.150	[DFU] wait(400)
A	15:09:57.551	[DFU] Uploading firmware...
V	15:09:57.551	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:09:57.596	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:57.596	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:57.899	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:09:57.899	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-60-00-00-EF-BB-77-F1
A	15:09:57.899	[DFU] Checksum received (Offset = 24576, CRC = F177BBEF)
V	15:09:57.899	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:57.899	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:57.930	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:09:57.931	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:09:57.931	[DFU] Data object executed
V	15:09:57.931	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:57.931	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:57.959	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:09:57.960	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:09:57.961	[DFU] Data object (7/21) created
D	15:09:57.961	[DFU] wait(400)
A	15:09:58.362	[DFU] Uploading firmware...
V	15:09:58.362	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:09:58.407	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:58.407	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:58.753	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:09:58.769	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-70-00-00-84-6B-E6-69
A	15:09:58.770	[DFU] Checksum received (Offset = 28672, CRC = 69E66B84)
V	15:09:58.770	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:58.770	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:58.800	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:09:58.800	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:09:58.800	[DFU] Data object executed
V	15:09:58.800	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:58.800	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:58.829	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:09:58.830	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:09:58.830	[DFU] Data object (8/21) created
D	15:09:58.830	[DFU] wait(400)
A	15:09:59.231	[DFU] Uploading firmware...
V	15:09:59.232	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:09:59.265	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:59.265	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:59.669	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:09:59.670	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-80-00-00-F3-93-A7-F7
A	15:09:59.670	[DFU] Checksum received (Offset = 32768, CRC = F7A793F3)
V	15:09:59.671	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:59.671	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:59.700	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:09:59.729	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:09:59.730	[DFU] Data object executed
V	15:09:59.730	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:09:59.730	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:09:59.759	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:09:59.759	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:09:59.759	[DFU] Data object (9/21) created
D	15:09:59.759	[DFU] wait(400)
A	15:10:00.160	[DFU] Uploading firmware...
V	15:10:00.160	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:00.205	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:00.205	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:00.495	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:00.495	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-90-00-00-3A-F2-4F-CF
A	15:10:00.495	[DFU] Checksum received (Offset = 36864, CRC = CF4FF23A)
V	15:10:00.496	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:00.496	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:00.525	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:00.525	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:00.526	[DFU] Data object executed
V	15:10:00.526	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:00.526	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:00.555	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:10:00.556	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:00.556	[DFU] Data object (10/21) created
D	15:10:00.556	[DFU] wait(400)
A	15:10:00.957	[DFU] Uploading firmware...
V	15:10:00.957	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:01.006	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:01.006	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:01.441	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:01.441	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-A0-00-00-33-7D-07-2F
A	15:10:01.442	[DFU] Checksum received (Offset = 40960, CRC = 2F077D33)
V	15:10:01.442	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:01.442	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:01.487	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:01.488	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:01.488	[DFU] Data object executed
V	15:10:01.488	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:01.488	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:01.515	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:10:01.515	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:01.515	[DFU] Data object (11/21) created
D	15:10:01.519	[DFU] wait(400)
A	15:10:01.919	[DFU] Uploading firmware...
V	15:10:01.919	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:01.980	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:01.980	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:02.279	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:02.279	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-B0-00-00-A8-81-78-71
A	15:10:02.280	[DFU] Checksum received (Offset = 45056, CRC = 717881A8)
V	15:10:02.280	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:02.280	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:02.324	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:02.324	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:02.324	[DFU] Data object executed
V	15:10:02.324	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:02.324	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:02.372	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:10:02.372	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:02.372	[DFU] Data object (12/21) created
D	15:10:02.372	[DFU] wait(400)
A	15:10:02.773	[DFU] Uploading firmware...
V	15:10:02.773	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:02.801	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:02.801	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:03.195	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:03.210	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-C0-00-00-A3-E1-20-98
A	15:10:03.211	[DFU] Checksum received (Offset = 49152, CRC = 9820E1A3)
V	15:10:03.211	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:03.211	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:03.256	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:03.257	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:03.257	[DFU] Data object executed
V	15:10:03.257	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:03.257	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:03.285	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:10:03.286	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:03.286	[DFU] Data object (13/21) created
D	15:10:03.286	[DFU] wait(400)
A	15:10:03.688	[DFU] Uploading firmware...
V	15:10:03.688	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:03.732	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:03.732	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:04.080	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:04.080	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-D0-00-00-0B-69-80-3E
A	15:10:04.080	[DFU] Checksum received (Offset = 53248, CRC = 3E80690B)
V	15:10:04.080	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:04.080	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:04.110	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:04.111	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:04.111	[DFU] Data object executed
V	15:10:04.111	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:04.111	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:04.139	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:10:04.139	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:04.140	[DFU] Data object (14/21) created
D	15:10:04.140	[DFU] wait(400)
A	15:10:04.541	[DFU] Uploading firmware...
V	15:10:04.541	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:04.578	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:04.578	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:04.904	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:04.905	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-E0-00-00-BC-15-04-71
A	15:10:04.907	[DFU] Checksum received (Offset = 57344, CRC = 710415BC)
V	15:10:04.907	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:04.907	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:04.934	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:04.935	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:04.935	[DFU] Data object executed
V	15:10:04.936	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:04.936	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:04.996	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:10:04.998	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:04.998	[DFU] Data object (15/21) created
D	15:10:04.998	[DFU] wait(400)
A	15:10:05.399	[DFU] Uploading firmware...
V	15:10:05.399	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:05.436	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:05.437	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:05.849	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:05.850	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-F0-00-00-29-2A-59-80
A	15:10:05.850	[DFU] Checksum received (Offset = 61440, CRC = 80592A29)
V	15:10:05.850	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:05.850	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:05.926	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:05.926	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:05.926	[DFU] Data object executed
V	15:10:05.926	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:05.926	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:05.954	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:10:05.955	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:05.955	[DFU] Data object (16/21) created
D	15:10:05.955	[DFU] wait(400)
A	15:10:06.356	[DFU] Uploading firmware...
V	15:10:06.356	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:06.391	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:06.391	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:06.765	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:06.765	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-00-01-00-B5-44-28-70
A	15:10:06.766	[DFU] Checksum received (Offset = 65536, CRC = 702844B5)
V	15:10:06.766	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:06.766	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:06.811	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:06.811	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:06.812	[DFU] Data object executed
V	15:10:06.812	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:06.812	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:06.878	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:10:06.879	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:06.879	[DFU] Data object (17/21) created
D	15:10:06.879	[DFU] wait(400)
A	15:10:07.264	[DFU] Uploading firmware...
V	15:10:07.265	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:07.310	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:07.310	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:07.845	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:07.845	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-10-01-00-68-2F-A8-B6
A	15:10:07.845	[DFU] Checksum received (Offset = 69632, CRC = B6A82F68)
V	15:10:07.845	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:07.845	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:07.906	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:07.907	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:07.907	[DFU] Data object executed
V	15:10:07.907	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:07.907	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:07.941	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:10:07.941	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:07.941	[DFU] Data object (18/21) created
D	15:10:07.941	[DFU] wait(400)
A	15:10:08.320	[DFU] Uploading firmware...
V	15:10:08.320	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:08.370	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:08.370	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:08.719	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:08.719	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-20-01-00-88-DA-38-0D
A	15:10:08.719	[DFU] Checksum received (Offset = 73728, CRC = 0D38DA88)
V	15:10:08.719	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:08.719	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:08.744	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:08.744	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:08.744	[DFU] Data object executed
V	15:10:08.744	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:08.744	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:08.774	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:10:08.775	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:08.775	[DFU] Data object (19/21) created
D	15:10:08.775	[DFU] wait(400)
A	15:10:09.175	[DFU] Uploading firmware...
V	15:10:09.176	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:09.232	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:09.232	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:09.660	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:09.690	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-30-01-00-40-99-71-B2
A	15:10:09.690	[DFU] Checksum received (Offset = 77824, CRC = B2719940)
V	15:10:09.690	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:09.690	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:09.719	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:09.719	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:09.720	[DFU] Data object executed
V	15:10:09.720	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:09.720	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:09.794	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	15:10:09.794	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:09.794	[DFU] Data object (20/21) created
D	15:10:09.794	[DFU] wait(400)
A	15:10:10.198	[DFU] Uploading firmware...
V	15:10:10.198	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:10.243	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:10.243	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:10.634	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:10.634	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-40-01-00-63-B4-0B-6D
A	15:10:10.635	[DFU] Checksum received (Offset = 81920, CRC = 6D0BB463)
V	15:10:10.635	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:10.635	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:10.678	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:10.679	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:10.679	[DFU] Data object executed
V	15:10:10.679	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:10.679	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:10.738	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-90-01-00-00
I	15:10:10.844	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	15:10:10.844	[DFU] Data object (21/21) created
D	15:10:10.844	[DFU] wait(400)
A	15:10:11.245	[DFU] Uploading firmware...
V	15:10:11.245	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	15:10:11.270	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:11.270	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:11.325	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	15:10:11.326	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-90-41-01-00-6E-41-2C-9D
A	15:10:11.326	[DFU] Checksum received (Offset = 82320, CRC = 9D2C416E)
V	15:10:11.326	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	15:10:11.326	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	15:10:11.354	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	15:10:11.639	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	15:10:11.640	[DFU] Data object executed
A	15:10:11.640	[DFU] Upload completed in 19316 ms
D	15:10:12.077	[Callback] Connection state changed with status: 19 and new state: DISCONNECTED (0)
W	15:10:12.077	Connection terminated by peer (status 19)
I	15:10:12.077	Disconnected
I	15:10:12.089	[DFU] Disconnected by the remote device
D	15:10:12.089	[DFU] gatt.refresh() (hidden)
D	15:10:12.089	[DFU] gatt.disconnect()
D	15:10:12.089	[DFU] gatt.close()
D	15:10:12.089	[DFU] wait(1400)
D	15:10:12.103	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	15:10:12.114	[DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	15:10:13.520	gatt.close()
D	15:10:13.521	wait(200)
V	15:10:13.722	Connecting to C2:08:A0:55:5C:D9...
D	15:10:13.722	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)

Parents Reply
  • Hi Tom, 

    Thanks for the sniffer traces. From those traces, we know the two devices execute the same commands and the same data, but it got reset on the failed trace. We need the debug log to say more detail. Please define DEBUG or add DEBUG into the preprocessor symbols in the _debug version, and add a breakpoint inside app_error_fault_handler(), you can find out the line number and the filename of the code that caused the issue inside "info". Hopefully, with the debug version it will not reset (add DEBUG into the preprocessor symbols) and we can find what triggered the reset. 

    -Amanda H. 

Children
  • Hi Amanda,

    Appologies for the delay - had some time off, then the holidays, then catching up with work.

    I have just added DEBUG to the preprocessor symbols and added a breakpoint within app_error_fault_handler but the code does not break at that point.

    I have zipped up the project and attached if you can confirm everything is set up correctly?

    6082.dfu.zip

  • Hi Tom, 

    From the sniffer log failed-DFU_2.pcapng, we found it is the master side that is violating the Bluetooth protocol. In the frame #6021 and #6025, there is a data length exchange. The master sets "Max TX octets" to 27, while the slave sets "Max RX octets" to 251. 

    In the Bluetooth Core specification v5.2, Vol 6, Part B, Section 4.5.10:

    The Controller shall not transmit packets containing LL Data PDUs that have a maximum Payload length greater than connEffectiveMaxTxOctets or that take more than connEffectiveMaxTxTime microseconds to transmit

    connEffectiveMaxTxOctets is defined as the lesser of connMaxTxOctets and connRemoteMaxRxOctets which are the values provided in the LL_LENGTH_REQ and LL_LENGTH_RSP. Therefore the maximum value is 27 bytes. In frame 6135, the master is sending a packet of 148 bytes. That is larger than negotiated. Therefore the slave device does not respond to this packet.

    Not sure where to begin with this - did find some posts about altering HCI_RX_BUF_QUEUE_SIZE to 16 but it still fails.

    We did not really understand how and where that is possible. Is this some configuration on the tablet?

    What is the disconnection code the devkit gets? We cannot see the disconnect in the log marked with.

    Is this only an issue when using the tablet, and that it works fine with the phone?

    -Amanda H.

  • Hi Amanda,

    Just to clarify, so the tablet is setting max TX to 27, the nRF sets this to 251, but then the tablet should pick the smaller of the two (the value itself generated, 27), but then goes head and sends 148 bytes, at which point the nRF doesn't accept it because it's working with the 27 byte limit? Is that correct?

    In the example there's no event handler registered for events - hence no code. I stuck in a log in the library for speed sakes, it matches with the nRF error code 8, BLE_HCI_CONNECTION_TIMEOUT

    Regarding HCI_RX_BUF_QUEUE_SIZE, I was googling and saw it fixed some issue so gave it a shot - this was the issue I found that I thought was worth trying: https://github.com/adafruit/Adafruit_nRF52_Bootloader/issues/35
    I forget whether I added it to sdk_config.h (in the project) or changed the one found in config\nrf52840\config\sdk_config.h

    I did also try changing packet size in the app, under DFU settings.

  • Hi, 

    Tom said:
    Just to clarify, so the tablet is setting max TX to 27, the nRF sets this to 251, but then the tablet should pick the smaller of the two (the value itself generated, 27), but then goes head and sends 148 bytes, at which point the nRF doesn't accept it because it's working with the 27 byte limit? Is that correct?

    That's correct. 

    You could try setting the data length parameters used in the bootloader to 27 bytes. Do so by searching for sd_ble_gap_data_length_update() in nrf_dfu_ble.c. Note that this will slow down the DFU transfer significantly. 

     -Amanda H.

  • Hi Amanda,

    I tried setting the length to 27 and the transfer does work.

    I also tested it on my phone, running it with set to BLE_GAP_DATA_LENGTH_AUTO I get a transfer in 26 seconds, if I drop it to 27 bytes, it increases to 30 seconds.

    On the tablet it takes around 40 seconds.
    I was expecting a much bigger hit on the phone, does that imply that I'm getting poor performance with my phone? I see an average speed of around 5.5kB/s, is that typical or should I be able to get better performance (with all the usual cavitates of it's wireless and surroundings etc).

    I guess what it boils down to is, what performance should I expect and whether changing the transfer size has a big impact or not. From your comment I'm now worried that there's something else wrong with my set up and should be getting much better speeds?

    Also, this is good for testing but hard coding the transfer size isn't a maintainable way forward, so what would be the next step in finding a solution?

Related