nRF52 BLE OTA DFUs in mbed OS >=5.13


This is, as per new policy, a re-open of the following github issue:

Please see that thread for more comments of maintainers and people that are affected by this.

Target: Nordic NRF52840
Mbed OS: Version 5.13
Related PR: [#10709]

I would like to perform BLE OTA direct firmware upgrades (DFU) using the nRF52840. Until now this was doable via the Nordic S140 softdevice, for example by following this guide. #10709 changed the default Bluetooth stack to Cordio. Does that mean, that the S140 can no longer be used with the current version and DFUs are not possible any longer?

So far, I found [#3363], [#4587] and [#5412], but all of them are closed or inactive. I also found this mbed forum thread from 4 months ago, that said that this feature is high priority and still in planing. But nothing newer than that.


Re-commenting to keep track of the discussion here.

Same question, we are building a smart educational toy for children with special needs and we really do need to be able to update the firmware OTA.

The BLE module is not chosen yet, we are still running tests, but we definitely need one that does/will support mbed-os OTA firmware update.

@vcoubard @jrobeson - moving the conversation here should be better.

@vcoubard said here:

Not really, it never worked portably across all targets. It was a proprietary extension that made its way through mbed-os. We try to avoid that kind of scenario because if the vendor is not able to maintain it’s proprietary extension, we don’t have the bandwidth to do it.
It is exactly what happened in that instance and one of the reason why the softdevice has been removed.
If BLE DFU makes a comeback, that will certainly be as a component supported by all BLE targets.

If BLE DFU makes a comeback”?

Really? So that not even a “when” question? Is there any work going on about this? Is there a way to help?

As a broader question, is there a development road map somewhere?

1 Like

@ladislas There’s no work going on BLE DFU at the moment.


+1. Switching MBED-OS to CORDIO seems a nice move, but some basic backward compatibility should have been provided first - DFU, BLE UART, etc - or the solution is more or less useless :frowning:

MBED seems full of nice ideas, but unfinished ideas, that are not really that easy to implement in commercial products as they are advertised… I know people are not even considering it because of that.

1 Like

@vcoubard: can you explain this then?

We understand that this is a important feature from evaluation to production, unfortunately there is no available example now, it’s under planning and is our first priority. We hope to provide it soon.

I’ve seen variations of this message for the past 2 years, and stuck with mbed os because of it. I understood that changing to cordio would be a big deal, so I figured i could wait a bit longer. So it’s strange to hear that it’s not even being considered now.

1 Like


If there is currently no DFU Service support for the nRF52840 via mBed, are there any alternative solutions? Is there any other way in which i can achieve OTA?

I’m working on a product where OTA is seen as a critical requirement so any help here would be greatly appreciated.

@vcoubard: here’s another person saying it’s on the roadmap. Who is correct?

Hi @jrobeson,

For clarity - the Nordic DFU Service is a Nordic-specific component and we are not planning work on it. Our focus is on providing Bluetooth solutions which work across most Mbed platforms, which is why Cordio aligns well with this strategy.

In terms of firmware update over BLE - we do understand the need and we’re tracking it. As you can imagine we need to balance priorities in terms of improving Mbed OS - especially in terms of developing new features.

On the later topic I suggest creating a dedicated topic on Firmware Update over BLE.


I’ve been searching online for information about firmware updates with Cordio BLE stack and came across this post.

We are now +2 years since this post and so wondered what is the status and where do I find information about how to implement using nRF52840 and mbed BLE stack.

Same issue, There’s no doc to introduce how to do it clearly.

And I found this mcuboot, and it’s with origin mbed build system.

I’m struggle with dev our project base on PlatformIO, but this way maybe help you.

1 Like

Thanks for the link. Looks very interesting.