DFU distributor for Network core firmware

Hello.

I am developing using nRF5340DK and nRF Connect SDK v2.8.0.
I want to create a DFU distributor that updates both Application core firmware and Network core firmware.
But I think this sample program is not supported Network core firmware.
I checked Application core firmware update with this sample.

samples/bluetooth/mesh/mesh_dfu/distributor

I have some questions.

  • Are there any existing tickets related to this? I have not been found.
  • I think the following changes are needed. What else is needed?
    • main.c
      • Add a "struct bt_mesh_blob_io_flash" instance for Network core firmware.
    • dfu_dist.c
      • Add a "struct bt_mesh_blob_io_flash" instance pointer for Network core firmware.
      • Switch a response pointer from "fw_core_type".
        dfd_srv_recv(), dfd_srv_send().
    • dfu_target.c
      • Add "struct bt_mesh_blob_io_flash" instance pointer for Network core firmware.
      • Switch a response pointer from "fw_core_type".
        dfu_start(), dfu_recover().
      • Add a check logic for Network core firmware.
        dfu_meta_check().
    • mesh_dfu_metadata.py
      • Generate a metadata for Network core firmware.

Thanks for reading.

  • Add a question.

    • Is it possible to simultaneous updates?
      I sent the command using the J-Link RTT Viewer.
      The "dfd receivers-add" commnad can not assign different firmware index to the same address.

      mesh models dfd receivers-add <Addr>,<FwIdx>[;<Addr>,<FwIdx>]...
      Failure
      00> mesh models dfd receivers-add 0x0287,0;0x0287,1
      00> {"status": 0, "target_cnt": 1}
      00> rtt:~$ [03:06:32.161,621] <dbg> bt_mesh_dfd_srv: bt_mesh_dfd_srv_receiver_add: Added receiver 0x0287 img: 0

      Success
      00> mesh models dfd receivers-add 0x0287,0;0x0288,1
      00> {"status": 0, "target_cnt": 2}
      00> rtt:~$ [03:07:03.272,094] <dbg> bt_mesh_dfd_srv: bt_mesh_dfd_srv_receiver_add: Added receiver 0x0287 img: 0
      00> rtt:~$ [03:07:03.272,155] <dbg> bt_mesh_dfd_srv: bt_mesh_dfd_srv_receiver_add: Added receiver 0x0288 img: 1


      I think that I have to download both Application core firmware and Network core firmware before applying it, is that correct?
      But the DFD Server can not download the next firmware until it has completed applying the previous firmware.
      Please give me some ideas on the correct procedure.
  • Hi a.da,

    The DFU over Mesh solution unfortunately isn't fully supported on the nRF5340 yet, as of nRF Connect SDK v2.8.0.

    May I ask what stage your project is at, and if there is any particular reason you want the nRF5340? Perhaps the nRF52840 or the new nRF54L15 can suit your need as well.

    Hieu

  • Hi Hieu, thanks for your reply.

    Currently, we are evaluating nRF5340DK alone.

    I check any particular reason with the chip selector in my project, and I will also share some other tip suggestions.

    If you know, please let me know. Is there a plan for fully support for the DFU over Mesh solution?

    a.da

  • Hi a.da,

    As our discussion starts involving details of your project, I have made this case private. If you want to keep it public, please feel free to change it back.

    Regarding information on the feature planning, we technical support engineers unfortunately cannot discuss that on DevZone. You will need to talk with a Nordic sales representative for this.
    Our sales representative will also be able to support you with choosing the most suitable Nordic product for your project.

    Have you gotten a contact yet? If not, I will happily connect you with one.

    Hieu

  • Hi Hieu, thank you for your thoughtfulness.

    I have removed the details of my project and made the ticket public again to help others.

    I apologize for asking the question in the wrong place.

    I will consult with my project members and distributors first.

    Thank you again for your kind assistance.

    a.da

Related