Difficulty with Memfault UI managing FOTA images with different software_type values

  • Target device: nRF9151
  • NCS 3.4.0
  • Memfault Integrated
  • FOTA architecture in place with four slots, 2 in internal flash and 2 in external flash
  • Background COAP updates of both 2 independent images to external flash before overwrite to internal partitions

We need to manage FOTA updates for two different images on the same physical device. Each image has its own software_type and version and must be released independently. mcuboot has no problem with this arrangement. The images have different roles, where one of them corresponds to nRF's 'app' nomenclature.

So far, I have only been able to represent this in the Memfault UI by adding an extra hardware device. This workaround does not reflect the actual product architecture, since both images belong to and are installed on the same device. It's meant that my device-side FOTA handling has to pretend to be two different hardware devices (yukk!).

Could you please clarify:

  • Is managing multiple independently versioned images on one device supported by the Nordic/Memfault integration? The REST API seems to indicate 'yes'.
  • How should releases and deployments be configured when each image has a different software_type and version? I can't add an additional OTA payload with a software_type other than the primary. Even doing this through REST methods won't work.
  • Is there a recommended way to target and track each image independently without creating a duplicate hardware device?
  • Why are there limitations in the Memfault UI or Nordic integration that prevent this workflow?

Our desired model is:

  • One physical device and hardware identity
  • Two (or more) independently updatable images. 
  • A distinct software_type and version for each image
  • Independent FOTA release, targeting, status, and rollback tracking

Have I missed something? Is this a bug or intentional? If this is in the pipeline but not yet exposed, I would be grateful to know that it is coming and when. Any documentation or configuration examples for this use case would be appreciated. 

Related