Incorrect Software Version Displayed in Processing Log

Hello.

I am currently testing nRF Cloud and encountering an issue.

I have flashed the Peripheral Memfault Diagnostic Service (MDS) sample program to an nRF54L15DK and connected it to the nRF Device Manager app on my iPhone.
Upon checking the Processing Log in the Memfault web portal, I noticed that the Software Version value varies depending on the type of event received:

  • Reboot events / Trace events / Metrics Reports: Displayed as "0.0.1+0" ( Correct )
      "event_data": {
        "software_version": {
          "version": "0.0.1+0",
          "software_type": "peripheral_mds",
          "existence_ensured": true
        },

  • OTA check for update events: Displayed as "0.0.1 0" ( Incorrect - the plus sign is replaced by a space )
      "event_data": {
        "hardware_version": "nrf54l15dk",
        "software_version": {
          "version": "0.0.1 0",
          "software_type": "peripheral_mds",
          "existence_ensured": true
        },

The expected value is "0.0.1+0".
My configuration is as follows:

  • CONFIG_MEMFAULT_NCS_FW_VERSION="0.0.1+0"
  • The value is automatically derived from the VERSION file because it exits in the project and CONFIG_MEMFAULT_NCS_FW_VERSION_STATIC is set to y.

Thanks for reading.

a.da

  • Hi a.da -

    Thanks for trying it out, and figuring out the workaround! Indeed it is the BT DIS value the mobile app is using for firmware version. All versions should be synchronized, i.e. this section of the sample `prj.conf`:

    # Set MCUBoot image header version to match DIS and Memfault version
    CONFIG_BT_DIS_FW_REV_STR="0.0.1"
    CONFIG_MEMFAULT_NCS_FW_VERSION_STATIC=y
    CONFIG_MEMFAULT_NCS_FW_VERSION="0.0.1"
    CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="0.0.1"

    Regarding this:

    > First, even after redefining the default value in my project’s 'Kconfig' file

    This usually means the `source "Kconfig.zephyr"` line preceded where you tried to override the default. If you keep that at the end, it should work:

    https://github.com/memfault/memfault-firmware-sdk/blob/050c1a5748f9c668cb1c152735438596e528ad9c/examples/nrf-connect-sdk/nrf5/memfault_demo_app/Kconfig#L99

    But you will need to make sure you include all settings, i.e:

    config MEMFAULT_NCS_FW_VERSION
        default "$(VERSION_MAJOR).$(VERSION_MINOR).$(PATCHLEVEL)"

    config MCUBOOT_IMGTOOL_SIGN_VERSION
        default MEMFAULT_NCS_FW_VERSION
    config BT_DIS_FW_REV_STR
        default MEMFAULT_NCS_FW_VERSION

    On the iOS app update- we've made the changes and will be releasing the app shortly. It can take a few days to be available on the app store, we'll let you know when it's ready to update!

    And thank you very much for your patience, and for providing the excellent bug report, greatly appreciated!

    Thanks,

    Noah

  • Hi a.da -

    Just wanted to let you know, we have a new release of nRF Connect Device Manager for iOS, v1.14.0, that includes the fix for the `+` character in version strings.

    apps.apple.com/.../id1519423539

    Thanks!
    Noah

  • Hi Noah,

    Unfortunately, even after updating the iOS app to v1.14.0, I did not get the expected result.

    The behavior remains unchanged from before; the version is still displayed as "0.0.1 0" in the OTA events.

    To make sure we are on the same page, could you clarify if my understanding of the fix is correct?
    I expected that if 'CONFIG_BT_DIS_FW_REV_STR' is set to "0.0.1+0", it should now be displayed exactly as "0.0.1+0".
    Is this the intended behavior of the new update?

    I apologize for the repeated inquiries on this matter, and I truly appreciate your continued support.

    a.da

  • Hi Shogo,

    I’m sorry to hear that the update did not resolve the issue.

    We’ll take a closer look and follow up with you, most likely next week, with an update.

    Thank you for your patience!

Related