This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

DFU from S110 (V7.1.0) to S130 (V2.0.1)

Hello,

I have a device that use a NRF51822 with softdevice S110 V7.1.0 with the corresponding bootloader.

The new firmware I develop for this device is base on softdevice S130 V2.0.1 with the corresponding bootloader.

Now I would like to perform a DFU from the old software (S110 V7.1.0) currently running in production to the new one (S130 V2.0.1).

I generate a DFU package (zip file) with the new bootloader+firmware+softdevice.

I modify the two .dat files into the package to have only the CRC in 2 bytes (with this I have a CRC error).

I use nRF Toolbox to perform the DFU but I receive a "NOT SUPPORTED" response.

I have put a breakpoint into the booloader at the both places where I found the "NRF_ERROR_NOT_SUPPORTED" (in dfu_image_size_set() when the size is not multiple of 4 and in nrf_error_to_dfu_resp_val()) but I never enter into this case.

So my question is where this error come from? (is it from the softdevice?)

And more generaly is it possible to upgrade everything (bootloader+application+softdevice) with the old S110 V7.1.0 to the new S130 V2.0.1?

Thank you

Best regards

  • Hi,

    The problem is that for the update we will use a mobile phone (Android or iOS) with the sdk that you provide, so a python script is not usable.

    Maybe it's better to develop the new application to this old Softdevice.

    Regards,

    Jerome

  • Hi,

    Both the iOS and Android libraries supports DFU back to 7.1 (and even further back) so if you manage to create the correct zip file then you should be fine. So it is only for generating the zip that you will need to do as described in the SDK documentation.

    It may still be a good idea to do everything as described in SDK 7.1 documentation, and do an upgrade from SDK 7.1 firmware to SDK 7.1 firmware, in order to assess that you do everything right. Then use smartphone app, and then SDK 11 based firmware (or vice versa). I.e. small steps, so it is easier to figure out where the error is (if something does not work.)

    Regards,
    Terje

Related