Assistance Needed for BLE DFU of Device B Using Device A as Central

Hi Nordic Team,

I am currently working on a project that involves two devices, both using the nRF52840 microcontroller.

Current Setup:

  1. Device A: I have successfully integrated the BLE DFU library provided by the SDK into my project. Device A acts as a peripheral and we can perform successful firmware upgrades of Device A using the Nordic Dev Manager app, where the mobile device acts as the central.

  2. Device B: I have also configured Device A to act as a central and connect with another device, Device B (which also uses the nRF52840 chipset). I can successfully read and write data from Device B through its pre-defined services and characteristics. Device B also supports BLE DFU via the Nordic Dev Manager app and it acts as a peripheral.

Target Goal:

My target goal is to upgrade the firmware of Device B (acting as a peripheral) without using the Nordic Dev Manager mobile app. Instead, I want to use Device A as the central to perform the firmware upgrade.

Specifically:

  • Device A will act as the central device and manage the firmware upgrade of Device B (acting as a peripheral).
  • Device A has already downloaded the .bin file via a modem and stored it in external flash memory.
  • I can read the contents of the .bin file from external flash, and now I need to transfer the contents of the .bin file to Device B using a BLE transport layer and possibly mcumgr libraries.

Can you tell is it possible to achieve the above task and could you please point me to the appropriate example or documentation that will help me achieve this task? Additionally, can you recommend which libraries I should use for transferring the firmware file over BLE from Device A to Device B?

Thank you for your assistance.

Related