This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Logging interval data into flash memory. FDS or fstorage? Wear levelling?

Hi Nordic DevTeam,

I am using nRF52840 (1MB Flash, 256kB RAM). I would like to store a log data to flash memory that I can extract them to my Android phone later on when connected. I have concern about the 10,000 write cycle of the nrRF52, I have to write this frequently to the flash.

Let's say after I allocate bootloader, SD s140 library and application (total : ~250kB in flash).  I expect the device to last 5-6 years and I allocate 500kB just for logging purposes and continuously log data every 1 minute when the device is on in csv format : eg. "time, voltage, current, etc." (let's say 40 Bytes each minute). Before I save to flash, I will allocate this data in RAM first (maybe fixed-sized array of 50kB), and whenever the allocated RAM is almost full or the device is about to be turned off. I will write this RAM data into the flash page, using the FDS library provided it has the wear-levelling mechanism in the background. My understanding is the bigger the flash allocated to it, wear-levelling will be more effective as there are more probability to use unused space to store data.

Does my implementation make sense in this case considering the write cycle of the flash?

Would it be recommended to log and save logged data into internal flash memory or would I really need external flash memory like SD Card?

Parents
  • Hi Einar,

    Sorry for asking too much questions.

    I look up that  #define NRF_FSTORAGE_SD_MAX_WRITE_SIZE 4096.  

    Since fds is built on top of fstorage,

    If my data currently stored in the RAM exceeds 4096 (Eg. 50000 bytes), do I need to write the logic to queue the writing from RAM to flash? or is already taken account by the fds library?

  • Also,

    Is there any advantage/disadvantage of increasing the FDS_VIRTUAL
    _PAGE_SIZE? default is 1024 words (4-byte words), and the other option is 2048 words?

Reply Children
No Data
Related