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

About DFU of Mesh 3.10

Hi

I have some question about DFU for Mesh3.10.

1.How to update Softdevice or Bootloader?such as I'm going to update SD from version 6.0.0 to 6.1.0.

2.Because my firmware was very large,so could`t be use side-by-side DFU mode(background DFU mode).If I want to use bootloader DFU mode,this mode what's the difference with the BLE bootloader DFU?

3.If I want to use bootloader DFU mode,could you tell me how to do?How to add this mode to my project?

4.Can you provide about bootloader DFU test Application  of IOS (or Android)?

My English is so bad!sorry!

 

Parents
  • 1) I believe it should be very similar to the getting started guide, only that you update the bootloader and/or softdevice instead of the application in Step 1: Generate a DFU file with nrfutil. Let me double check this & get back to you.

    2) The mesh bootloader is quite different to the BLE bootloader. You

    3) Take a look at this DevZone case, specifically: "To enter Bootloader DFU mode, you can run without an application, or you can call the nrf_mesh_dfu_jump_to_bootloader() in nrf_mesh_dfu.h. When you receive the NEW_FIRMWARE event, you can call that function. Then the bootloader will run for 10 sec. and switch back if nothing happens."

    4) There is no bootloader DFU test app for iOS or Android at this moment unfortunately.

  • I did it according to this Configuring DFU over Mesh,but when I setup "nrfutil --verbose dfu serial -pkg dfu_test.zip -p <COM4> -b 115200 -fc --mesh",the shell display "closing serial port....",the log show of cause was "serial port could not be opened on 115200"

    For mesh is there any way to use BLE bootloader DFU?Because I want to pass through app not serial of DFU.

  • Could you try the nrfutil command using COM4 instead of <COM4>? Does it make any difference? Are you sure that you are using the correct COM port?

    listenYes said:
    For mesh is there any way to use BLE bootloader DFU?Because I want to pass through app not serial of DFU.

     The mesh bootloader is different to the BLE bootloader. Therefore, you cannot use the BLE bootloader in a Bluetooth Mesh application.

    Have you tried to run the bootloader verification script to see if the bootloader is flashed & initialized correctly? Have you used the same DFU archive before? If so, you will need to see the documentation: "When finished, the bootloader switches to the application and one of the LEDs starts blinking on each kit. Note that you cannot do the DFU twice with the same DFU archive, because the application version in the device page on your device is incremented to the latest version. Therefore, the bootloader will reject any attempt to transfer the same firmware again.

    To try another DFU transfer, run the configuration steps and the transfer command again, but with an increased version number. For example, --application-version 3. Also, use the new zip file."

Reply
  • Could you try the nrfutil command using COM4 instead of <COM4>? Does it make any difference? Are you sure that you are using the correct COM port?

    listenYes said:
    For mesh is there any way to use BLE bootloader DFU?Because I want to pass through app not serial of DFU.

     The mesh bootloader is different to the BLE bootloader. Therefore, you cannot use the BLE bootloader in a Bluetooth Mesh application.

    Have you tried to run the bootloader verification script to see if the bootloader is flashed & initialized correctly? Have you used the same DFU archive before? If so, you will need to see the documentation: "When finished, the bootloader switches to the application and one of the LEDs starts blinking on each kit. Note that you cannot do the DFU twice with the same DFU archive, because the application version in the device page on your device is incremented to the latest version. Therefore, the bootloader will reject any attempt to transfer the same firmware again.

    To try another DFU transfer, run the configuration steps and the transfer command again, but with an increased version number. For example, --application-version 3. Also, use the new zip file."

Children
  • , I believe what   meant to ask with

    For mesh is there any way to use BLE bootloader DFU?Because I want to pass through app not serial of DFU.

    was if there is any other way, to pass the Mesh DFU-OTA packets to the node that relays the packets, besides SERIAL. I think he was asking if you could pass the new firmware image via BLE to the first node which then relays to the other nodes via normal Mesh DFU. Is this possible? (By the way, how could you download from the cloud the firmware update that gets disseminated in the mesh?)

    Thank you :D

  • We have not prioritized this use case unfortunately. The issue is that the DFU can take up to an hour (maybe even longer), so it would not be that fun to wait for an hour with your phone to do a DFU.

    EAn said:
    I think he was asking if you could pass the new firmware image via BLE to the first node which then relays to the other nodes via normal Mesh DFU. Is this possible? (By the way, how could you download from the cloud the firmware update that gets disseminated in the mesh?)

     You could achieve this, but we do not have an implementation of this at the moment. You would need to have some sort of gateway node (like an nRF91) to download the zip file from the cloud. You could then reverse engineer the code in the interactive py script to work on a nRF52 device to see how the zip file is disseminated in the mesh & leads to the DFU update procedure.

Related