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

Single Bank DFU over thread

Hi Everyone, 

We are using nRF52840 IC for our products which has 1 MB of flash.   

Thread Secure DFU Example provided with Nordic SDK supports Dual Bank DFU. This limits the application size.  

Given -  dfu client is incorporated into user application, can we perform Single Bank DFU over Thread ? 

Our Application size is increasing and therefore Dual Bank DFU cannot accommodate new application image. 

What should be right approach to solve this ? 

Thanks.  

 

Parents
  • HI Ashish, 

    There is a fundamental difficulty that it's not possible to do Thread Secure DFU is that the DFU process happens in the background on Thread protocol. This means the application handles the process of receiving the image and the bootloader only does the swapping of the image. 
    So it's not possible to do singlebank update because the application can't be erased prior to receiving the new image. 

    If we implement the Thread protocol in the bootloader, it would increase the size of the bootloader significantly and make it not feasible. 

    I think you have some options here: 

    1. Use external storage, external EEPROM for example. 

    2. Implement Bluetooth DFU in the bootloader, if doing DFU via a phone directly to a node is an option. 

    3. Optimize your application for less space so that it would fit for dual bank update. 

Reply
  • HI Ashish, 

    There is a fundamental difficulty that it's not possible to do Thread Secure DFU is that the DFU process happens in the background on Thread protocol. This means the application handles the process of receiving the image and the bootloader only does the swapping of the image. 
    So it's not possible to do singlebank update because the application can't be erased prior to receiving the new image. 

    If we implement the Thread protocol in the bootloader, it would increase the size of the bootloader significantly and make it not feasible. 

    I think you have some options here: 

    1. Use external storage, external EEPROM for example. 

    2. Implement Bluetooth DFU in the bootloader, if doing DFU via a phone directly to a node is an option. 

    3. Optimize your application for less space so that it would fit for dual bank update. 

Children
No Data
Related