2 years ago.

nRF52(832) DFUService problem

Hello world,

I am building the nRF52832 firmware (nRF52_DK then custom hardware) for DFU FOTA using MBED OS 5.9.3 and ARM_GCC offline compiler (using mbed compile). That does not seem to work at all.

According to [1] "When building for a FOTA-enabled platform, an instance of the DFUService gets added to an application implicitly during the call to ble.init();". But I have no FOTA enabled devices in the FOTA mobile application, nor DFU endpoints on my device.. so I have added the magic line of code to enable FOTA DFU:

#include "DFUService.h"

DFUService dfu(ble);

and now my code does not build. [1] does not specify where exactly this line of code should be placed. When I place it in any function I get

[Error] main.cpp@27,5: 'DFUService' was not declared in this scope

when I put that as global declaration before main() I get this compile error:

[Error] main.cpp@19,1: 'DFUService' does not name a type; did you mean 'UARTService'?

Is FOTA DFU supported on nRF52832? The nRF52840 chip is already out.. and I saw Secure FOTA DFU on Nordic website.

[1] https://os.mbed.com/teams/Bluetooth-Low-Energy/wiki/Firmware-Over-the-Air-FOTA-Updates

1 Answer

2 years ago.

I was able to do over the air updates following this instruction. https://os.mbed.com/users/kord123/notebook/fota-mbed-app-to-nrf52_dk-with-nordic-dfu-boot-loa/#

Accepted Answer

Hello Kentaro! Thanks for your reply! This shows also the new secure DFU way :-)

I am now mostly concerned about my Application part, on a custom hardware, as I would like to trigger this DFU availability, just like pairing, on boot when some button is pressed. However I am unable to compile the Application even in its basic form and this seems to be my main concern at this point..

I did update the whole mbed-os.. but I will update the nRF52832 features too, maybe that would help.. thanks! :-)

posted by Tomasz CEDRO 02 Aug 2018