nrf52832 + DFU over BLE + External flash


We are trying to make DFU over BLE with external flash to overcome the large application size. This is what we are looking for:
- Use BLE to transfer the OTA image
- Since our application size id >250KB, planning to use an external flash to store the firmware
- Perform OTA when there is no critical task running

Environment:
- nrf52832
- nRF Connect SDK (v1.8.0)
- External flash (W25Q80DV) connected over SPI and tested successfully

We could find the guide on how to add support for DFU in the application at: devzone.nordicsemi.com/.../ncs-dfu

However, couldn't find how to use external flash for the DFU over BLE.

Could you share some sample or guide which shows OTA using BLE with external flash?

So far, we understand we need to do the following changes:
- Modify our application for DFU over Bluetooth. As mentioned in: devzone.nordicsemi.com/.../ncs-dfu
- Add a new file in our application folder pm_static.yaml and modify it.
- Add new child_image/mcuboot/prj.conf in our application. (Not sure if this is required)
- Is there any other configuration required in our application overlay file?

Thanks!

P.S. IMHO, DFU over BLE with external flash is a very common scenario and a good sample or blog around it would definitely help and may reduce some tickets. :)

Parents
  • Hi Edvin,

    I modified the Peripheral LBS example and get it to build. However, once I flash it, I don't see it doing anything (no serial logs/advertisements).

    Could you please check the attached code and help to understand what's wrong?

    So far I've verified the following things:

    - Flash chip works fine (I could read/write/erase using Flash APIs)

    - If I remove the pm_static.yaml and child_image/ folder from the project plus the comment  "nordic,pm-ext-flash" from overlay file, DFU works fine (but it uses internal flash)

    TIA!

Reply
  • Hi Edvin,

    I modified the Peripheral LBS example and get it to build. However, once I flash it, I don't see it doing anything (no serial logs/advertisements).

    Could you please check the attached code and help to understand what's wrong?

    So far I've verified the following things:

    - Flash chip works fine (I could read/write/erase using Flash APIs)

    - If I remove the pm_static.yaml and child_image/ folder from the project plus the comment  "nordic,pm-ext-flash" from overlay file, DFU works fine (but it uses internal flash)

    TIA!

Children
No Data
Related