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

OTA DFU not working

Hi,

I've got buttonless OTA DFU working on nRF52 DK by following this tutorial:

academy.novelbits.io/.../

However, when I try to run the exact same thing on my own board which uses a BMD-300 (nRF52832) module, it doesn't work. I've erased the BMD-300 and programmed it with a hex file containing the secure bootloader, SoftDevice s132, bootloader settings and the application, which seems to run correctly and allows me to connect, as seen in this screenshot from the nRF Connect app on iOS:

However, when I click through to DFU and try to run the update (which works fine on the nRF52 DK), it gives the following error:

The full text output is below - any help on how to debug this would be much appreciated!

*****

File Name: app_update_0_3.zip
Parts: 1
Size: 85 KB
Soft Device Size: Zero KB
Bootloader Size: Zero KB
[Callback] Central Manager did update state to: Powered ON
Connecting to [app name] v0.2...
centralManager.connect(peripheral, options: nil)
[Callback] Central Manager did connect peripheral
Connected to [app name] v0.2
Discovering services...
peripheral.discoverServices(nil)
Services discovered
Starting Secure DFU...
Connected to [app name] v0.2
Services discovered
Secure DFU Service found
Discovering characteristics in DFU Service...
peripheral.discoverCharacteristics(nil, for: FE59)
DFU characteristics discovered
Enabling indications for 8EC90003-F315-4F60-9FB8-838830DAEA50...
peripheral.setNotifyValue(true, for: 8EC90003-F315-4F60-9FB8-838830DAEA50)
Indications enabled for 8EC90003-F315-4F60-9FB8-838830DAEA50
Buttonless DFU indications enabled
Application with buttonless update found
Writing to characteristic 8EC90003-F315-4F60-9FB8-838830DAEA50...
peripheral.writeValue(0x01, for: 8EC90003-F315-4F60-9FB8-838830DAEA50, type: .withResponse)
Data written to 8EC90003-F315-4F60-9FB8-838830DAEA50
Indication received from 8EC90003-F315-4F60-9FB8-838830DAEA50, value (0x):200101
Response (Op Code = 1, Status = 1) received
[Callback] Central Manager did disconnect peripheral
Disconnected by the remote device
Scanning for the DFU Bootloader...
centralManager.scanForPeripherals(withServices, [FE59]
Scanning timed out returning no matching peripherals!
centralManager.stopScan()

Related