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,

    nrfutil version 4.0.0

    The command for only application:

    nrfutil pkg generate --hw-version 51 --sd-req 0xFFFE --application-version 0xFFFFFFFF --key-file private.key --application buzz_telec.hex RemoteV1_APP.zip

    And for SD+BL:

    nrfutil pkg generate --hw-version 51 --sd-req 0xFFFE --bootloader-version 0xFFFE --sd-id 0x87 --key-file private.key --bootloader bootloaderMonoBankQuartz.hex --softdevice s110_nrf51822_7.1.0_softdevice.hex RemoteV1_SD_BT.zip

    Regards,

    Jerome

  • Hi,

    If you use the legacy bootloader (SDK 11 and earlier) then you need to use version 0.5.2 of nrfutil. (This is stated in the readme of the most recent version. The reason is that the DFU package format changed between SDK 11 and 12.) With that version the DFU packages should work fine.

    Regards,
    Terje

  • Hi,

    I have switched to version 0.5.2.

    For only the application I have the "Invalid CRC Error" at the end of the DFU and for the SD+BL I have "Not Supported".

    The command I use to generate the package are:

    nrfutil.exe dfu genpkg RemoteV1_APP.zip --application buzz_telec.hex --application-version 0xffffffff --dev-revision 0xffff --dev-type 0xffff --sd-req 0xfffe

    nrfutil.exe dfu genpkg RemoteV1_SD_BT.zip --bootloader bootloaderMonoBankQuartz.hex --softdevice s110_nrf51822_7.1.0_softdevice.hex --dev-revision 0xffff --dev-type 0xffff --sd-req 0xfffe

    To perform the DFU I use the nRF Toobox on Android phone. The software version is 2.6.0.

    Regards

  • Hi,

    Did you have another idea about my problem or something I can check?

    Regards

  • Hi,

    Yes, sorry. I talked to a colleague and dug a little deeper.

    It turns out SDK 7.1 is so far back that things were a bit different. You must have a look at the documentation from SDK 7.1 and use scripts from that SDK release, in order to use the bootloader from that SDK to update. You can do a BL+SD update ("SdAndBl"), and from what I understand you should be able to do a direct update to the SDK 11 based bootloader. I highly recommend to first try and upgrade from the SDK 7.1 BL+SD to the same BL+SD (just with new version numbers) in order to confirm you are doing it right, though.

    Regards,
    Terje

Related