How to place BLE for FOTA / DFU in mcuboot partition

Hi

I use nRF52832 and nRF Connect SDK v2.6.1 with visual code

I went through this exercise (academy.nordicsemi.com/.../) and the FOTA works so far. However, in this example the Bluetooth part is not stored in the boot partition but in the application partition. This just makes the application unnecessarily large. As with a firmware update, the Bluetooth part must also be sent.

My goal is to link the Bluetooth part for the FOTA into the mcuboot partition. The remaining memory should be used for an app partition so that it is as large as possible. Bluetooth is not needed in the application, it is only for FOTA needed.

------------------------
| mcuboot + BLE + DFU  |
| If switch pushed     |
|   start BLE and DFU  |
| Else                 |
|   start application  |
|                      |
|----------------------|
| Application          |
|                      |
|                      |
|                      |
------------------------

Can you tel me how I have to configure the mcuboot that it is possible to do this?

Alternative it would be possible to have three partition. mcuboot, BLE + DFU and Application. During a firmware update only Application partition should be updated.

------------------------
| mcuboot              |
| If switch pushed     |
|   start BLE and DFU  |
| Else                 |
|   start application  |
|                      |
|----------------------|
| BLE + DFU            |
|                      |
|----------------------|
| Application          |
|                      |
|                      |
|                      |
------------------------

Thanks and best regards
Markus

  • Hi Markus,

    As of now this is not supported in nRF Connect SDK. Your only options currently for BLE OTA currently is dual bank, either with the secondary partition on internal flash (which won't give you anything to work with for the nRF52832 if you're desigining a BLE app w.r.t available app space) or the secondary partition on external flash.

    I will add this to an inquiry I have going regarding a feature request for placing BLE in the bootloader so that single bank BLE OTA would be possible.

    If you wish, you could also reach out to your Nordic Regional sales manager w.r.t this feature request.

    Kind regards,
    Andreas

  • Hi Andreas

    thanks for your information. Oh I see, thanks

    Is there already a possibility to have a configuration like this?

    ------------------------
    | mcuboot         40kB |
    | Go to Application |
    |  if valid            |
    |----------------------|
    | BLE + DFU      130kB |
    |                      |
    |----------------------|
    | Application    302kB |
    |  Push button and go  |
    |  to "BLE + DFU"      |
    |                      |
    |----------------------|
    | Img scratch     40kB |
    |                      |
    ------------------------

    After start mcuboot checks if in image in "Application" is valid. If valid always go to "Application" if not valid go to "BLE + DFU". In the "Application" there is the possibiltity to push a button. If button is pushed, then got to "BLE + DFU". While doing a DFU the new image is always written into the "Application" partition.

    Kind regards
    Markus

  • Hi Markus,

    No, currently the BLE + DFU will be inside the Application partition, or on the Network core if you're using a nRF5340 or nRF54H device. You will have a "Settings" partition, which is BLE related that contains information about connections, but thats all that is outside of "Application".

    Kind regards,
    Andreas

Related