Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

nRF Connect SDK - options for DFU using BLE

Hello,

We have a software running on the nRF52832 which was developed with the nRF5 SDK. It contains a bootloader, S132 softdevice and our custom application.

The bootloader is able to update the application via DFU received over BLE.

For new products we're planning to use the nRF Connect SDK. So I was wondering which options we have to keep our application code updateable over BLE.

In my eyes there are 3 theoretical options:

1. MCUboot as bootloader and integrate SMP Server into our application code
Downside: We are loosing half of the flash space which is used for application code for the swap partition. Also the code that is responsible for updating (here the SMP Server) is part of the update as it is part of the application. We need 64k for our filesystem so we would only have around 200 MB for our application and a lot of that is already used by the SMP Server code (~ 75% when using smp_srv sample with bt-tiny config)

2. Modifiy MCUboot so that it does support BLE
Downside: Probably a lot of work and not recommended by Zephyr developers (see here)

3. Use our "old" bootloader with an application developed with Zephyr
Downside: If that's even possible this may lead to a lot of problems in the future. For example because the bootloader is located at 0x78000 which is conflicting with the littlefs partition.

My questions:

  • Are there any other options that I'm missing?
  • Are options 2 & 3 even worth to spending further time on or are they not practicable?
  • If option 1 is the only practicable way, is there a way to increase the possible application size?

 

Thank you in advance!

Kind regards,

Jonas

Parents Reply Children
No Data
Related