Hello,
I checked most tickets on devzone but didn't find the answer for my issue, if you can please help me about this.
I'm using: nRF52832QFAB - SDK16 - SD132 v7.0.1 - Custom board - Secure bootloader
I'm trying to add DFU to my project and when trying to update the application it fails.
I tried 2 ways to update the firmware:
- Method 1: MERGED HEX
- I merge all HEX files and program the device (BL+SD+Setting+app)
- Switch to bootloader (I use the uart to send osp command to switch to bootloader)
- the device advertise DfuTarg
- connect to it by phone using nrfconnect
- start dfu
- the dfu stop at 16% and stack in bootloader without advertising (error: Error 8 (0x8): GATT CONN TIMEOUT), for all dfu retries the dfu stop in the same place, below nrfconnect logs:
nRF Connect, 2020-03-20 DfuTarg (D0:80:0A:5F:A4:D0) I 15:30:28.426 [Server] Server started V 15:30:28.436 Immediate Alert (0x1802) - Alert Level [WNR] (0x2A06) V 15:30:28.980 Connecting to D0:80:0A:5F:A4:D0... D 15:30:28.980 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M) D 15:30:29.172 [Server callback] Connection state changed with status: 0 and new state: CONNECTED (2) I 15:30:29.172 [Server] Device with address D0:80:0A:5F:A4:D0 connected D 15:30:29.175 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2) I 15:30:29.175 Connected to D0:80:0A:5F:A4:D0 D 15:30:29.218 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED V 15:30:29.235 Discovering services... D 15:30:29.235 gatt.discoverServices() I 15:30:29.631 Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 6000ms) I 15:30:29.816 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms) D 15:30:29.937 [Callback] Services discovered with status: 0 I 15:30:29.937 Services discovered V 15:30:29.950 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:30:30.004 Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 6000ms) V 15:30:37.568 [DFU] DFU service started V 15:30:37.568 [DFU] Opening file... I 15:30:37.568 [DFU] Firmware file opened successfully V 15:30:37.568 [DFU] Connecting to DFU target... D 15:30:37.568 [DFU] gatt = device.connectGatt(autoConnect = false) I 15:30:37.587 [DFU] Connected to D0:80:0A:5F:A4:D0 V 15:30:37.587 [DFU] Discovering services... D 15:30:37.587 [DFU] gatt.discoverServices() I 15:30:37.604 [DFU] Services discovered D 15:30:37.619 [DFU] wait(1000) V 15:30:38.639 [DFU] Requesting new MTU... D 15:30:38.639 [DFU] gatt.requestMtu(517) I 15:30:38.749 [DFU] MTU changed to: 247 V 15:30:38.749 [DFU] Enabling notifications for 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:38.749 [DFU] gatt.setCharacteristicNotification(8ec90001-f315-4f60-9fb8-838830daea50, true) D 15:30:38.750 [DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00) I 15:30:38.779 [DFU] Data written to descr.8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-00 V 15:30:38.779 [DFU] Notifications enabled for 8ec90001-f315-4f60-9fb8-838830daea50 A 15:30:38.779 [DFU] Notifications enabled D 15:30:38.779 [DFU] wait(1000) V 15:30:39.779 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:39.779 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:39.814 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-01 I 15:30:39.815 [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:30:39.815 [DFU] Command object info received (Max size = 512, Offset = 0, CRC = 00000000) V 15:30:39.815 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:39.815 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:39.845 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 02-00-00 I 15:30:39.845 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-02-01 A 15:30:39.845 [DFU] Packet Receipt Notif disabled (Op Code = 2, Value = 0) V 15:30:39.845 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:39.845 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:39.874 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01 I 15:30:39.875 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01 A 15:30:39.875 [DFU] Command object created V 15:30:39.875 [DFU] Writing to characteristic 8ec90002-f315-4f60-9fb8-838830daea50 D 15:30:39.875 [DFU] gatt.writeCharacteristic(8ec90002-f315-4f60-9fb8-838830daea50) I 15:30:39.876 [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-CB-01-20-00-28-00-30-00-38-84-F2-03-42-24-08-03-12-20-82-49-9C-C6-AF-C2-C1-60-79-B5-8B-84-4A-42-96-D9-37-50-85-D8-D2-39-7D-07-98-B0-F1-4D-53-12-06-B2-48-00-52-04-08-01-12-00-10-00-1A-40-E6-6B-C6-B6-DF-96-1D-89-3C-54-30-75-0C-79-2A-AF-9E-62-98-64-F4-EF-6C-D7-80-59-2C-EE-9C-A1-DC-85-BE-FA-76-5D-82-F6-F0-BF-7C-0E-45-20-BB-F0-CD-43-1D-C4-BE-A2-DD-99-ED-48-F1-32-82-B9-8C-41-D5-B7 A 15:30:39.876 [DFU] Command object sent (CRC = 0A84D504) V 15:30:39.877 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:39.877 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:39.919 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03 I 15:30:39.938 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-8D-00-00-00-04-D5-84-0A A 15:30:39.938 [DFU] Checksum received (Offset = 141, CRC = 0A84D504) V 15:30:39.939 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:39.939 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:39.964 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04 I 15:30:40.100 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01 A 15:30:40.100 [DFU] Command object executed V 15:30:40.101 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:40.101 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:40.130 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 02-0A-00 I 15:30:40.131 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-02-01 A 15:30:40.131 [DFU] Packet Receipt Notif Req (Op Code = 2) sent (Value = 10) V 15:30:40.132 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:40.132 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:40.250 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-02 I 15:30:40.250 [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:30:40.250 [DFU] Data object info received (Max size = 4096, Offset = 0, CRC = 00000000) V 15:30:40.293 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:40.293 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:40.384 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00 I 15:30:40.385 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01 A 15:30:40.385 [DFU] Data object (1/16) created D 15:30:40.385 [DFU] wait(400) A 15:30:40.799 [DFU] Uploading firmware... V 15:30:40.799 [DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50... V 15:30:41.397 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:41.397 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:41.705 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03 I 15:30:41.705 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-10-00-00-BE-B1-3F-D1 A 15:30:41.705 [DFU] Checksum received (Offset = 4096, CRC = D13FB1BE) V 15:30:41.706 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:41.706 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:41.735 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04 I 15:30:41.736 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01 A 15:30:41.736 [DFU] Data object executed V 15:30:41.736 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:41.736 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:41.765 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00 I 15:30:41.766 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01 A 15:30:41.766 [DFU] Data object (2/16) created A 15:30:41.766 [DFU] Uploading firmware... V 15:30:41.766 [DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50... V 15:30:42.445 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:42.445 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:42.786 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03 I 15:30:42.786 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-20-00-00-58-D8-7E-44 A 15:30:42.786 [DFU] Checksum received (Offset = 8192, CRC = 447ED858) V 15:30:42.786 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:42.786 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:42.814 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04 I 15:30:42.815 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01 A 15:30:42.815 [DFU] Data object executed V 15:30:42.815 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:30:42.815 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:30:42.844 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00 I 15:30:42.844 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01 A 15:30:42.845 [DFU] Data object (3/16) created A 15:30:42.845 [DFU] Uploading firmware... V 15:30:42.845 [DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50... D 15:30:48.896 [Server callback] Connection state changed with status: 0 and new state: DISCONNECTED (0) I 15:30:48.896 [Server] Device disconnected D 15:30:48.926 [Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0) E 15:30:48.927 Error 8 (0x8): GATT CONN TIMEOUT I 15:30:48.927 Disconnected E 15:30:48.947 [DFU] Device has disconnected D 15:30:48.947 [DFU] gatt.close() D 15:30:48.958 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED D 15:30:48.975 [DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED V 15:30:48.975 [DFU] DFU service started I 15:30:48.975 [DFU] Firmware file opened successfully D 15:30:48.975 [DFU] wait(1000) D 15:30:49.967 [DFU] wait(1000) V 15:30:50.967 [DFU] Connecting to DFU target... D 15:30:51.008 [DFU] gatt = device.connectGatt(autoConnect = false) D 15:31:21.022 [Server callback] Connection state changed with status: 0 and new state: DISCONNECTED (0) I 15:31:21.022 [Server] Device disconnected E 15:31:21.050 [DFU] Error 133: Connection timeout W 15:31:21.050 [DFU] Retrying... D 15:31:21.050 [DFU] gatt.refresh() (hidden) D 15:31:21.050 [DFU] gatt.close() V 15:31:21.055 [DFU] DFU service started I 15:31:21.056 [DFU] Firmware file opened successfully D 15:31:21.056 [DFU] wait(1000) D 15:31:22.067 [DFU] wait(1000) V 15:31:23.056 [DFU] Connecting to DFU target... D 15:31:23.058 [DFU] gatt = device.connectGatt(autoConnect = false) E 15:31:53.091 [DFU] Error 133: Connection timeout W 15:31:53.091 [DFU] Retrying... D 15:31:53.091 [DFU] gatt.refresh() (hidden) D 15:31:53.092 [Server callback] Connection state changed with status: 0 and new state: DISCONNECTED (0) I 15:31:53.092 [Server] Device disconnected D 15:31:53.118 [DFU] gatt.close() V 15:31:53.124 [DFU] DFU service started I 15:31:53.124 [DFU] Firmware file opened successfully D 15:31:53.124 [DFU] wait(1000) D 15:31:54.132 [DFU] wait(1000) V 15:31:55.128 [DFU] Connecting to DFU target... D 15:31:55.130 [DFU] gatt = device.connectGatt(autoConnect = false) E 15:32:25.158 [DFU] Error 133: Connection timeout D 15:32:25.159 [Server callback] Connection state changed with status: 0 and new state: DISCONNECTED (0) I 15:32:25.159 [Server] Device disconnected D 15:32:25.174 [DFU] gatt.refresh() (hidden) D 15:32:25.174 [DFU] gatt.close() D 15:32:25.174 [DFU] wait(600) D 15:32:25.768 gatt.close() D 15:32:25.770 wait(200) V 15:32:25.971 Connecting to D0:80:0A:5F:A4:D0... D 15:32:25.972 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M) D 15:32:56.005 [Callback] Connection state changed with status: 133 and new state: DISCONNECTED (0) E 15:32:56.005 Error 133 (0x85): GATT ERROR I 15:32:56.005 Disconnected D 15:32:56.006 [Server callback] Connection state changed with status: 0 and new state: DISCONNECTED (0) I 15:32:56.006 [Server] Device disconnected
2. Method 2: Start in bootloader
a. Flash on the device the softdevice and the bootloader
b. The device start in bootloader and advertise DfuTarg
c. connect to it by phone using nrfconnect
d. start DFU
e. the DFU fail from the beginning with error INSUFFICIENT RESOURCES, below nrfconnect logs:
nRF Connect, 2020-03-20 DfuTarg (D0:80:0A:5F:A4:D0) I 15:36:11.565 [Server] Server started V 15:36:11.574 Immediate Alert (0x1802) - Alert Level [WNR] (0x2A06) V 15:36:12.122 Connecting to D0:80:0A:5F:A4:D0... D 15:36:12.122 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M) D 15:36:12.210 [Server callback] Connection state changed with status: 0 and new state: CONNECTED (2) I 15:36:12.210 [Server] Device with address D0:80:0A:5F:A4:D0 connected D 15:36:12.219 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2) I 15:36:12.219 Connected to D0:80:0A:5F:A4:D0 D 15:36:12.252 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED V 15:36:12.278 Discovering services... D 15:36:12.278 gatt.discoverServices() I 15:36:12.670 Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 6000ms) I 15:36:12.823 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms) D 15:36:12.914 [Callback] Services discovered with status: 0 I 15:36:12.915 Services discovered V 15:36:12.928 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:36:12.981 Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 6000ms) V 15:36:18.293 [DFU] DFU service started V 15:36:18.293 [DFU] Opening file... I 15:36:18.293 [DFU] Firmware file opened successfully V 15:36:18.293 [DFU] Connecting to DFU target... D 15:36:18.293 [DFU] gatt = device.connectGatt(autoConnect = false) I 15:36:18.315 [DFU] Connected to D0:80:0A:5F:A4:D0 V 15:36:18.316 [DFU] Discovering services... D 15:36:18.316 [DFU] gatt.discoverServices() I 15:36:18.329 [DFU] Services discovered D 15:36:18.348 [DFU] wait(1000) V 15:36:19.390 [DFU] Requesting new MTU... D 15:36:19.390 [DFU] gatt.requestMtu(517) I 15:36:19.477 [DFU] MTU changed to: 247 V 15:36:19.477 [DFU] Enabling notifications for 8ec90001-f315-4f60-9fb8-838830daea50 D 15:36:19.477 [DFU] gatt.setCharacteristicNotification(8ec90001-f315-4f60-9fb8-838830daea50, true) D 15:36:19.479 [DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00) I 15:36:19.523 [DFU] Data written to descr.8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-00 V 15:36:19.523 [DFU] Notifications enabled for 8ec90001-f315-4f60-9fb8-838830daea50 A 15:36:19.523 [DFU] Notifications enabled D 15:36:19.523 [DFU] wait(1000) V 15:36:20.524 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:36:20.524 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:36:20.558 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-01 I 15:36:20.558 [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:36:20.559 [DFU] Command object info received (Max size = 512, Offset = 0, CRC = 00000000) V 15:36:20.559 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:36:20.559 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:36:20.587 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 02-00-00 I 15:36:20.587 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-02-01 A 15:36:20.587 [DFU] Packet Receipt Notif disabled (Op Code = 2, Value = 0) V 15:36:20.587 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:36:20.587 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:36:20.617 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-01-8D-00-00-00 I 15:36:20.617 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01 A 15:36:20.617 [DFU] Command object created V 15:36:20.617 [DFU] Writing to characteristic 8ec90002-f315-4f60-9fb8-838830daea50 D 15:36:20.618 [DFU] gatt.writeCharacteristic(8ec90002-f315-4f60-9fb8-838830daea50) I 15:36:20.620 [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-CB-01-20-00-28-00-30-00-38-84-F2-03-42-24-08-03-12-20-82-49-9C-C6-AF-C2-C1-60-79-B5-8B-84-4A-42-96-D9-37-50-85-D8-D2-39-7D-07-98-B0-F1-4D-53-12-06-B2-48-00-52-04-08-01-12-00-10-00-1A-40-E6-6B-C6-B6-DF-96-1D-89-3C-54-30-75-0C-79-2A-AF-9E-62-98-64-F4-EF-6C-D7-80-59-2C-EE-9C-A1-DC-85-BE-FA-76-5D-82-F6-F0-BF-7C-0E-45-20-BB-F0-CD-43-1D-C4-BE-A2-DD-99-ED-48-F1-32-82-B9-8C-41-D5-B7 A 15:36:20.621 [DFU] Command object sent (CRC = 0A84D504) V 15:36:20.621 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:36:20.621 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:36:20.662 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03 I 15:36:20.662 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-8D-00-00-00-04-D5-84-0A A 15:36:20.663 [DFU] Checksum received (Offset = 141, CRC = 0A84D504) V 15:36:20.663 [DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50 D 15:36:20.663 [DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50) I 15:36:20.706 [DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04 I 15:36:20.841 [DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-04 E 15:36:20.842 [DFU] Remote DFU error: INSUFFICIENT RESOURCES V 15:36:20.842 [DFU] Disconnecting... D 15:36:20.876 [DFU] gatt.disconnect() I 15:36:20.876 [DFU] Disconnected D 15:36:20.876 [DFU] gatt.refresh() (hidden) D 15:36:20.876 [DFU] gatt.close() D 15:36:20.876 [DFU] wait(600) I 15:36:20.984 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms) I 15:36:21.163 Connection parameters updated (interval: 15.0ms, latency: 0, timeout: 6000ms)
Notes:
- The device is not bonded
- I already made DFU using my phone and it worked (using the SDK examples) so no issue with the phone.
- With the method 2 I succeed to update the device when I used the example ble_app_buttonless_dfu: created the zip file of the app and sent it with nrfconnect.
- With method 1 when I tried to send the app ble_app_buttonless_dfu it failed in the same condition as before
- all of this show that I missed something when adding DFU to my application (I followed the Application note "Add Nordic Semiconductor DFU to SDK Example" to add DFU.
I'm using this config for ram and flash:
- APPLICATION
MEMORY { FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0x12000 RAM (rwx) : ORIGIN = 0x20002270, LENGTH = 0x5d90 uicr_bootloader_start_address (r) : ORIGIN = 0x10001014, LENGTH = 0x4 }
- BOOTLOADER
MEMORY { FLASH (rx) : ORIGIN = 0x38000, LENGTH = 0x6000 RAM (rwx) : ORIGIN = 0x20003278, LENGTH = 0x4d88 uicr_bootloader_start_address (r) : ORIGIN = 0x10001014, LENGTH = 0x4 bootloader_settings_page (r) : ORIGIN = 0x0003F000, LENGTH = 0x1000 uicr_mbr_params_page (r) : ORIGIN = 0x10001018, LENGTH = 0x4 mbr_params_page (r) : ORIGIN = 0x0003E000, LENGTH = 0x1000 }
My application size:
text data bss dec hex filename
62828 920 7300 71048 11588 _build/nrf52832_xxaa.out
Can you please help me about this?