DFU in field deployments

I am getting ready to release a nrf52 based ble product. These products are connected to a BLE to wifi bridge. So I can talk to them at any time. 

I have been using the secure DFU examples very successfully to push firmware from my phone to each device, and it works great (during dev and test phase). 

After sales/ deployment , I want a way to update firmware on these devices without any user intervention. 

Are there any examples to support this usecase? I have read something about SMP here on the forum. Not sure if it applies.

Is there any solution (Nordic or 3rd party you can recommend)  to deploy new firmware to large number of device eg 1000s from a centralized location ( say a web admin console or so?)

** edit: after some poking around I found out about IoT sdk. Why have the IoT sdk examples been removed while moving from SDK ver 16 to 17? Is it no longer supported?**

Thanks, 

Hari 

Parents
  • Hi Hari,

    I assume you are using the nRF5 SDK?

    After sales/ deployment , I want a way to update firmware on these devices without any user intervention. 

    Can you explain a bit more about how you want to do this? Even though no user, something has to initiate and be responsible for the update. And a mechanism must be used. What is your BLE-WiFi bridge like? Could you implement a BLE DFU master there? If so, you could perhaps use the same DFU solution that you have successfully used in the past, but replace the phone with another DFU master (your bridge).

    I have read something about SMP here on the forum

    That is probably in the context of the nRF Connect SDK, which had a entirely different DFU approach. There the transport happens in the application, and it used the Simple Management Protocol (SMP) and MCUMgr protocol.

    after some poking around I found out about IoT sdk. Why have the IoT sdk examples been removed while moving from SDK ver 16 to 17? Is it no longer supported?**

    Regarding the IoT SDK DFU solution this was always experimental, and the IoT SDK components were removed from SDK 16 as you like. It was not much used and never made it out of experimental before it was removed. That said, you can take inspiration from there and make a DFU solution where the transport happens in the application, and the bootloader only do activation if that is what you want. 

    Einar

Reply
  • Hi Hari,

    I assume you are using the nRF5 SDK?

    After sales/ deployment , I want a way to update firmware on these devices without any user intervention. 

    Can you explain a bit more about how you want to do this? Even though no user, something has to initiate and be responsible for the update. And a mechanism must be used. What is your BLE-WiFi bridge like? Could you implement a BLE DFU master there? If so, you could perhaps use the same DFU solution that you have successfully used in the past, but replace the phone with another DFU master (your bridge).

    I have read something about SMP here on the forum

    That is probably in the context of the nRF Connect SDK, which had a entirely different DFU approach. There the transport happens in the application, and it used the Simple Management Protocol (SMP) and MCUMgr protocol.

    after some poking around I found out about IoT sdk. Why have the IoT sdk examples been removed while moving from SDK ver 16 to 17? Is it no longer supported?**

    Regarding the IoT SDK DFU solution this was always experimental, and the IoT SDK components were removed from SDK 16 as you like. It was not much used and never made it out of experimental before it was removed. That said, you can take inspiration from there and make a DFU solution where the transport happens in the application, and the bootloader only do activation if that is what you want. 

    Einar

Children
Related