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

Update firmware from .hex which already stored in flash

Hello ,

I am using SDK for mesh,
I have saved .hex image file in flash.

Is there any example or any suggestion how can I run bootloader which will read data from flash?

Thanks in advance!

Parents
  • Hello,

    I am not sure I quite understand your issue.

    Do you just want to run the application that you have flashed on your DK, or do you want to do a firmware update over the air in the mesh network? 

     

    If you want to do an Over The Air (OTA) Device Firmware Update (DFU), are you sure that your application is working?

    If you just want to run your initial application (that you flashed to the DK), are you sure that this application is working? Have you tried to compile any of the examples in the Mesh SDK? Do they work on your board?

     

    Best regards,

    Edvin

Reply
  • Hello,

    I am not sure I quite understand your issue.

    Do you just want to run the application that you have flashed on your DK, or do you want to do a firmware update over the air in the mesh network? 

     

    If you want to do an Over The Air (OTA) Device Firmware Update (DFU), are you sure that your application is working?

    If you just want to run your initial application (that you flashed to the DK), are you sure that this application is working? Have you tried to compile any of the examples in the Mesh SDK? Do they work on your board?

     

    Best regards,

    Edvin

Children
  • Hello,
    Thanks for answer,

    I have stored .hex file to flash from external device via UART interface.
    I need Update Firmware using already stored image in flash.

    Is there any suggestions?

    Yeah, examples and my app also is working.

  • Hello,

    I believe the Mesh DFU getting started guide will be quite useful for you.

    It does not accept the raw .hex file, but there is a description on how to generate a DFU packet. You can use this to update all the nodes in the network. Note that this is update is done in parallel with the application, meaning you can update without stopping the original application. This does however take some time (to perform the DFU update).

     

    Best regards,

    Edvin

  • Thanks, I have reviewed nrfutil and use secure bootloader with uart. I have load same image using serial port , but after loading seems it doesn't work correctly, it prints continuous.
    Maybe for activating loaded image needed restrart the board or something else?

  • Well. Yes. A bootloader starts up by checking whether it has a valid application stored. Valid meaning that the application.hex file is matching the public key. It doesn't actually do that calculation every time it starts up, but the result of this process which is done after a DFU operation is stored in something called "bootloader settings".

     

    I guess this is better documented in the non-mesh BLE bootloader, but it should work similar in the mesh-bootloader.

     

    As I said, it requires a restart, but it should do that by itself (The bootloader should do a soft reset).

    Can you please specify what it prints after loading the image using the serial port?

     

    Best regards,

    Edvin

Related