I am using a custom board with an nRF52840.
For OTA updates, I’m using SDK 17.1.0 based on the sample codes:
-
Bootloader:
secure_bootloader
-
Application: A custom application based on
ble_app_blinky
.
After flashing my custom application, I try to perform a Firmware Update using the Android version of nRF Connect. However, the update process gets stuck right after "DFU Initialization", and eventually results in a GATT ERROR.
Below is the log from J-Link RTT Viewer:
Fullscreen
1
2
Device is preparing to enter bootloader mode
Device will enter bootloader mode
The relevant source code is shown below:
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static void ble_dfu_buttonless_evt_handler(ble_dfu_buttonless_evt_type_t event)
{
switch (event)
{
case BLE_DFU_EVT_BOOTLOADER_ENTER_PREPARE:
NRF_LOG_INFO("Device is preparing to enter bootloader mode");
break;
case BLE_DFU_EVT_BOOTLOADER_ENTER:
NRF_LOG_INFO("Device will enter bootloader mode");
break;
case BLE_DFU_EVT_BOOTLOADER_ENTER_FAILED:
NRF_LOG_INFO("Device failed to enter bootloader mode");
break;
default:
NRF_LOG_INFO("Unknown event from ble_dfu.");
break;
}
}
The nRF Connect (Android) screen during the update is shown below:
Any help or suggestions would be greatly appreciated.
Thank you in advance!