Page 1 of 1

Maximum usable nvs in wroom32

Posted: Thu Jun 21, 2018 5:34 am
by hemant.chaudhari
Hello,

I am currently using wroom 32 module for my project. My current partition details is as follows

# Espressif ESP32 Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,24K,
phy_init,data,phy,0xf000,4K,
factory,app,factory,0x10000,1M,

I am need of more nvs, what is maximum amount of nvs I can use for my data storage?
Also kindly elaborate the meaning of each partition name i.e.nvs,phy_init,factory?
out of them where my code lies?

Re: Maximum usable nvs in wroom32

Posted: Thu Jun 21, 2018 7:26 am
by kolban
I'm not sure there is a hard-limit on NVS storage other than the amount of flash available and that you allocate. You may have to move the partition to a different location. If it starts at 0x9000 and the next partition starts at 0xf000 then the difference is 24K. You couldn't (for example) make it 25K AND have it start at 0x9000 as it would then overlap with the next partition.

The partitions you show:

* nvs - Where NVS data lives
* phy_init - Where ESP32 physical device data lives. There is nothing in there for you. It is required by ESP32 / ESP-IDF internals
* factory - Where the "factory loaded" application resides. This is typically your "user" application. If you need versioning of applications, you may also have OTA partitions for versions where the factory then becomes the "restoration" app that runs when all else fails.

If you need more storage for NVS ... might that be because you want to store lots and lots of data records? If so, consider the idea ofusing a flash based file system such as FAT or SPIFFS which includes wear levelling and a good way of organizing and working with such data.

Re: Maximum usable nvs in wroom32

Posted: Fri Jun 29, 2018 6:40 am
by hemant.chaudhari
Thanks...I will definitely look for documentation regarding SPIFFS and will try to implement that

Re: Maximum usable nvs in wroom32

Posted: Mon Jul 02, 2018 11:01 am
by mr1000
Hello, I have a similar question.

I want to save a 128Kb file (coming from a server via Https) to the internal memory, so it can be read by pieces.
I was thinking to create a partition and saving it there, but I'm not sure if using partitions is too much complexity.

Should NVS do the thing? Increasing the NVS partition by 128Kb and changing its position.

Thanks in advance.
(I'm reading documentation, but I prefer to ask in case I'm overlooking something :oops: )

Edit: after rereading, seems like the partition option should be simple. Just using esp_partition_write() and esp_partition_read() functions.

Re: Maximum usable nvs in wroom32

Posted: Mon Jul 02, 2018 6:03 pm
by fly135
I found it extremely easy to set up and use a FAT file partition. Check out the esp_vfs_fat_spiflash_mount function.

https://esp-idf.readthedocs.io/en/lates ... fatfs.html

John A

Re: Maximum usable nvs in wroom32

Posted: Tue Jul 03, 2018 12:41 am
by urbanze
I actually use 1MB of flash to store bultin log of embbebed, however, the truth size of log is less than 1MB, but I choose this for wear leveling do some working and rotate addresses... Without OTA partitions, probablly, you can use >=2MB nvs partition