Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

Updating Bootloader+Softdevice fails with error The new SoftDevice is of a different family than the present SoftDevice. Compatibility cannot be guaranteed.

Hi,

I'm trying to perform a Bootloader+Softdevice DFU over BLE. The image that I currently have in the NRF52 DK is BL+S112 and I'm trying to perform a DFU with BL+S132.

I'm using the nRF5 SDK 17.1.0 and the soft devices versions are s112nrf52720 and s132nrf52720.

I stumble upon the error "The new SoftDevice is of a different family than the present SoftDevice. Compatibility cannot be guaranteed." Is there any solution to overcome this besides commenting the check performed in the else if statement at line 739 of the nrf_dfu_validation.c?

    else if (SD_PRESENT && (SD_ID_GET(MBR_SIZE) != SD_ID_GET(sd_start_addr)))
    {
        NRF_LOG_ERROR("The new SoftDevice is of a different family than the present SoftDevice. Compatibility cannot be guaranteed.");
        result = false;
    }



Parents
  • Hi André,

    There is no fundamental reason that updating to a SoftDevice should not work, except from that check. The reason for the check is that we do not test it, and therefor it is not supported and prevented by the code snippet you have referred to. If you have devices you want to update to a different SoftDevice type via DFU that is still possible, but you would have to do it in two stages. First, update the bootloader to a temporary bootloader using the same old SoftDevice where you remove this test, so that updates to different SoftDevice types is not prevented. Then you can do a new DFU update with a new package that include the new SoftDevice and new bootloader built for that SoftDevice.

    Br,

    Einar

Reply
  • Hi André,

    There is no fundamental reason that updating to a SoftDevice should not work, except from that check. The reason for the check is that we do not test it, and therefor it is not supported and prevented by the code snippet you have referred to. If you have devices you want to update to a different SoftDevice type via DFU that is still possible, but you would have to do it in two stages. First, update the bootloader to a temporary bootloader using the same old SoftDevice where you remove this test, so that updates to different SoftDevice types is not prevented. Then you can do a new DFU update with a new package that include the new SoftDevice and new bootloader built for that SoftDevice.

    Br,

    Einar

Children
No Data
Related