MCUMGR not working for DFU after upgrading from NCS 2.7.0 to 2.8.0

NCS 2.7.0/2.8.0

mcuboot + MCUMGR in the application for BLE DFU

NRF52840

We have been developing our next version of our product, transitioning from NRF SDK 5 to NCS.  I initially got most of the features working on NCS 2.7.0 including DFU based on MCUMGR.  I have recently updating the application from NCS 2.7.0 to 2.8.0.  I am testing DFU with NRF Connect on Android.

After OTA DFU update from firmware based on NCS 2.7.0 to a new release based on NCS 2.8.0, DFU is no longer working with the NCS 2.8.0 release.  When I try to start DFU, now it starts bonding, which it did not do with NCS 2.7.0.  It won't continue until I accept bonding.  After bonding the DFU still does not proceed. 

the mcumgr log from nrfconnect shows only "Connected to ...",   "Services discovered"   "MTU changed to 247"  and nothing more.

Parents
  • Hi,

    Do you enforce static partitioning?

    Do you use Sysbuild for any/both of the versions?

    Try to compare build/project_name/zephyr/.config and build/project_name/zephyr/zephyr.dts between versions. Anything suspicious in the diff?

    Regards,
    Sigurd Hellesvik

  • yes I'm using pm_state file to maintain consistent partitioning.

    I used sysbuild in both NCS 2.7 and 2.8.

    I'm currently comparing the diffs.  The first few that jumped out at me:

    NCS 2.8 has

    CONFIG_MCUMGR_GRP_IMG_IMAGE_SLOT_STATE_STATES=15

    CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_AUTHEN=y

    NCS 2.7 has

    CONFIG_MCUMGR_TRANSPORT_BT_DYNAMIC_SVC_REGISTRATION=y

    I will investigate these further.

  • Anthony Ambuehl said:

    NCS 2.8 has

    CONFIG_MCUMGR_GRP_IMG_IMAGE_SLOT_STATE_STATES=15

    CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_AUTHEN=y

    NCS 2.7 has

    CONFIG_MCUMGR_TRANSPORT_BT_DYNAMIC_SVC_REGISTRATION=y

    I will investigate these further.

    Worth looking into yes. Let me know what you find!

    After OTA DFU update from firmware based on NCS 2.7.0 to a new release based on NCS 2.8.0, DFU is no longer working with the NCS 2.8.0 release. 

    I got one more question:

    Is it only 2.7.0 -> 2.8.0 DFU that fails?
    Or does 2.8.0 -> 2.8.0 DFU also fail?

  • The failure occurred while running an application built on NCS 2.8. It didn't matter if the previous upgrade was from an image built on NCS 2.7. The fix was to switch from 

    CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_AUTHEN=y

    to

    CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW=y

    I will need to investigate more to understand why the authentication creates an issue, but for now at least I have releases that achieve same functionality as before.

    Now to explain to my client why I have bricked a precious engineering build of a waterproof-sealed unit. Disappointed

Reply
  • The failure occurred while running an application built on NCS 2.8. It didn't matter if the previous upgrade was from an image built on NCS 2.7. The fix was to switch from 

    CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_AUTHEN=y

    to

    CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW=y

    I will need to investigate more to understand why the authentication creates an issue, but for now at least I have releases that achieve same functionality as before.

    Now to explain to my client why I have bricked a precious engineering build of a waterproof-sealed unit. Disappointed

Children
Related