Mbed OTA functionality on BLE Nano 2


Hello everyone,
I have been using the BLE Nano 1.5 and the mbed environment, that enabled me to update the Firmware-Over-The-Air. Unfortunately, those are not available anymore and I have to move to BLE Nano 2.

They work a bit different - their bootloader doesn’t offer the DFU service in the first seconds after startup. Instead, the out-of-the-box firmware offers the DFU service continuously.
- Is there a bootloader available that brings back the old DFU update stage on the board startup?

I could not find any, so I thought that the new way is to enable the DFU services in my program, just like your out-of-the-box firmware does. Following your guide, I built my application for the Nordic nRF52-DK platform, and I uploaded it using the USB programmer. Unfortunately, the DFU services were not present when I did so.

The mbed guide suggests, that the DFU services will show up by default when I build for a shadow OTA platform. Unfortunately, they do not link the nRF52-DK shadow platform.
- Is there an mbed shadow platform that works with the new BLE Nano 2 and offers the DFU functionality?


Hi @mike-knapnok very interesting question, if you find a solution please post here
thanks a lot


Thanks (: I have no solution for now, but I’ll post once I have it!


The BLE Nano 2 bootloader starts the DFU services when you pull-down D5 at reset. On the BLE Nano 1.5 this was done always after reset resulting in a slow start and unnecessary delay in 99.99% of the resets. But of course the BLE Nano 2 system requires a pull-down.

Unfortunately I can not get the DFU service working with the Nordic nRF Toolbox app on my iPhone. It works perfectly with my BLE Nano 1.0/1.5 modules.
I’ve also added the DFUService in my program (To do this you need to remove the ‘#ifdef TARGET_NRF51822’ in DFUService.h/.cpp). Adding this service allows you to start an upgrade with the Nordic nRF Toolbox app while your program is running. Again it all works fine with 1.0/1.5 modules. With the 2.0 module the iPhone app seems to make contact cause the 2.0 module resets and starts DFU mode (led is blinking = same as pulling D5 low during reset). But then again the app does not seem to be able to send the upgrade file to the 2.0 module.

Waiting for a solution for this from Redbear. Without DFU the 2.0 module is unusable in real-life projects, and the 1.0/1.5 is EOF. Difficult situation, so please Redbear solves this quickly.

And while you busy, also work on persistent storage (eeprom access on 2.0), and standby current (which also seems to be higher compared to 1.0/1.5).


Any update from Redbear reg this? Can we use DFUService in Nano2 now?


Hi there,

I just realize that there is document about the DFU functionality on BLE Nano 2:



@guohui Thanks for the quick response. I did follow the same guide and tried OTA through nRF Toolbox in android. It’s getting uploaded and even progress bar is shown. However the application is not upgraded and still the old firmware remains.

I created application zip by following the guidelines mentioned in the guide. Is there any other detail that I’m missing here? Should I use a downgraded version of nrfutil.exe as mentioned in one of the forums?