Bootloader+Application DFU package

We are using the Nordic iOS and Android DFU libraries to perform firmware updates of a nRF52840.

When I attempt to use nrfutil pkg generate to create a DFU package that contains an only an application and a bootloader I get the following error message, "Invalid combination: use two .zip packages instead".

However, the update seems to work fine (at least on nRF Connect for Desktop) if I create an application package and a bootloader package via nrfutil pkg generate and then manually create a package that contains the assets from both the application and bootloader packages with a manifest file that appropriately references each. Is this manual package generate approach an appropriate way to get around the nrfutil limitation? What are the consequences of using this approach?

Parents
  • Hi Jackson,

    There may be a historic reason for this limitation, but at least for recent SDK versions this should work as you have found. It is not supported though, meaning we do not test it. And as this operation is split in two by the DFU master, this would effectively be the same as using two separate zip files, one with the application and one with the bootloader (which you could then zip up and extract again in your app without the end user ever seeing it).

    The consequence of manually creating the package with application + bootloader is that you are using a combination that we never do in release testing of the SDK or our tools, so you need to be even more careful to test this properly on your end.

    Br,

    Einar

Reply
  • Hi Jackson,

    There may be a historic reason for this limitation, but at least for recent SDK versions this should work as you have found. It is not supported though, meaning we do not test it. And as this operation is split in two by the DFU master, this would effectively be the same as using two separate zip files, one with the application and one with the bootloader (which you could then zip up and extract again in your app without the end user ever seeing it).

    The consequence of manually creating the package with application + bootloader is that you are using a combination that we never do in release testing of the SDK or our tools, so you need to be even more careful to test this properly on your end.

    Br,

    Einar

Children
No Data
Related