Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Hardware version number must be 52

I have been using a JTAG to program a nrf52832 chip (SD v15) during development and am now testing firmware updates from iOS. As part of it, I've made a firmware package using nrfutil and setting --hw-version 0. However, when I attempt an update process it fails due to a HW version error. When I change the hw version to 52 it then works without an issue.

I've been following the instructions at http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.0.0%2Fsdk_app_serial_dfu_bootloader.html&anchor=lib_dfu_image

The relevant section is below:

  • Hardware version: The hardware version is determined by the device. In the example implementation, the hardware of the device is specified by the NRF_DFU_HW_VERSION macro in the sdk_config file. For the nRF52 Series, the default version number is defined to be 52. However, you should not use this default version number in a product, but use your own version numbering scheme.

Do the instructions need to be updated? Or how can I set the hw version of the device initially? My plan going forward is to simply use 52 but for future reference it would be good to have clarified.

  • Hi,

    52 is just our default value for the hardware version number in the SDK. For real products you should have your own versioning scheme where every single different hardware version of your product has different hardware versions. The first version of your product can have version 0, and if you in the future release a version where you changed the GPIO pin for a button or something else you set the hardware version of this firmware to 1 etc. This ensures that a new firmware for version 0 will never be flashed to the version 1 device which would most likely brick it. In addition to updating the NRF_DFU_HW_VERSION in the source code, you also have to update the "hw-version" parameter used with nrfutil when generating DFU packages.

    Best regards,
    Rune Holmgren

Related