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

Query on feasibility of firmware-upgrade, via a particular flow involving Wifi

Hi All.

Currently we are using buttonless-dfu service to upgrade firmware via ble on an nrf peripheral-device (via nrf-connect app on mobile central-device). Next, in order to speed up the dfu, we are thinking of  the following flow, kindly help us know if it is feasible :

1. Integrate wifi-module with the peripheral-device. The nrf-device and wifi-module would interface via a uart.

2. Download the firmware-binary on the peripheral-device itself, and save it in external/nrf flash.

3. Switch to dfu mode.

4. Read the saved binary byte by byte, and follow the firmware-upgrade.

Above is obviously a very high-level intention, so we will be grateful if we could let be known if above makes sense and is feasible, and whether there are caveats to the above.

Thanks and Regards,

Ajay

Parents
  • Hi Ajay, 

    Could you tell more about your wifi-module  ? Is it a thin-modem or it has a MCU inside ? 

    I assume it's just a thin modem with no MCU.

    I think what you plan to do is feasible. Mainly, it's about receiving an image via UART, store that to flash then switch to a bootloader. The bootloader take care of swapping the new image with the original application. 

    In this case most of the work is done with the application, the bootloader only taking care of switching image. 

    You can even optimize it to no bootloader but using the MBR (if you have softdevice) and use the MBR to swap the image, but it's more advance and has more risk. If you update a bad image, you have no way to roll back or DFU another image. When with the bootloader (that support BLE DFU) you can do an DFU. 

Reply
  • Hi Ajay, 

    Could you tell more about your wifi-module  ? Is it a thin-modem or it has a MCU inside ? 

    I assume it's just a thin modem with no MCU.

    I think what you plan to do is feasible. Mainly, it's about receiving an image via UART, store that to flash then switch to a bootloader. The bootloader take care of swapping the new image with the original application. 

    In this case most of the work is done with the application, the bootloader only taking care of switching image. 

    You can even optimize it to no bootloader but using the MBR (if you have softdevice) and use the MBR to swap the image, but it's more advance and has more risk. If you update a bad image, you have no way to roll back or DFU another image. When with the bootloader (that support BLE DFU) you can do an DFU. 

Children
No Data
Related