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

DFU program not loading

Hi,

I am currently using Nordic nRF52 dev board (with nRF52832 SoC) and trying to test "dfu/secure_bootloader" example in that board. Because my target ship is nRF52810 I am using pca10040e_ble project example.

Setup:
* nRF SDK 15.3.0
* SoftDevice S112 v6.1.1
* nRF Connect v3.2.0
* Segger studio V4.20
* Windows10

I have followed the guide form Nordic Getting started with Nordic's Secure DFU bootloader, a step by step guide and done next steps:
1. installed nrfutil tool

2. generated a private and public key

3. changed the public_key.c file instead of generic one in the project

4. downloaded the micro-ecc lib and compile it by executing build_all.sh

5. opened the "dfu/secure_bootloader" project in ses studio, project path: "nRF5_SDK_15.3.0\examples\dfu\secure_bootloader\pca10040e_ble\ses"

6. build the project

7. merge the application hex with the soft device hex to test if the build application works:

mergehex -m secure_bootloader_ble_s112_pca10040e.hex s112_nrf52_6.1.1_softdevice.hex -o outout_dfutarg.hex

8. Download this code over USB to the dev board. The output I get is that LED1 and LED2 are ON and the device is advertising with the name "DfuTarg" which I assume is ok.

9. For testing purposes, I have nRF52840 dongle to use with nRF Connect v3.2.0 - Bluetooth Low Energy software on my PC. Here I see my nRF52 dev board and I can connect to it. When the board is connected the LEDs change their status and LED1 and LED3 are ON. The picture shows the connection on my PC:
 

10. To see the change when the new appication code us updated after the dfu I changed the device name in the sdk_config.h file.  to 
#define NRF_DFU_BLE_ADV_NAME "DfuTargv1" 
and build the application again. 

11. After this I have generated the dfu zip packet with the command:

nrfutil pkg generate --hw-version 52 --application-version 2 --application secure_bootloader_ble_s112_pca10040e.hex --sd-req 0xB8 --key-file private.key app_dfu_package.zip

this command used hex that was created bu the ses after building the project.

12. then I clicked on the DFU icon in the nRF connect studio selected the generated zip file and click to upload the new firmware.

13. After the firmware is uploaded I get this screen which seems ok:

and the nRF52 dev board is disconnected, so the LEDs 1 and 2 are again ON but the device does not change the name to DfuTargv1

I am probably missing some steps, but I can not see which one. If there are some suggestions I am happy to hear them. 

Thank you. 

Voja

Parents
  • Hello,

    Have you checked if the name is redefined? You can

    10. To see the change when the new appication code us updated after the dfu I changed the device name in the sdk_config.h file.  to 
    #define NRF_DFU_BLE_ADV_NAME "DfuTargv1" 
    and build the application again. 

    You changed this in the bootloader or the application? 

     

    13. After the firmware is uploaded I get this screen which seems ok:

    and the nRF52 dev board is disconnected, so the LEDs 1 and 2 are again ON but the device does not change the name to DfuTargv1

    Are you sure that you are uploading the application? As I understand, you changed the name of the bootloader and then you upload the bootloader again though DFU...

    As you see, after your firmware is uploaded, you still see the LED1 and LED2, so it means you are still in the bootloader.

    Please correct me if I misunderstood you.

    Best regards,

        Duy

  • Hi,

    My main concern is that I do not understand how this works. This is what I understand so far, and please correct me if I am wrong:

    There is:
    1. Bootloader
    2. application
    3. Softdevice

    When I am building the nRF5_SDK_15.3.0\examples\dfu\secure_bootloader I get only the bootloader hex, this project does not include the application?
    If that is true then I understand your questions better, and obviously, I am just uploading the new bootloader, but I still do not understand why the adv name is not changing...

    Best  regards,
    Voja.

  • When I am building the nRF5_SDK_15.3.0\examples\dfu\secure_bootloader I get only the bootloader hex, this project does not include the application?

    That is correct.

    If that is true then I understand your questions better, and obviously, I am just uploading the new bootloader, but I still do not understand why the adv name is not changing...

    You upload a bootloader as the application. I.e. you used --application when specifying the hex file. If you wanted to do a bootloader DFU, then you should use --bootloader. See this page.

  • Thank you all for the help, I managed to do the DFU correctly. At first, I did not understand concept correctly so that is why it did not work out. I suggest that you change your DFU guide a bit, and be more clear about every step. 

    Best regards,
    Voja. 

Reply Children
No Data
Related