How many times can you flash?
Posted: Wed Dec 14, 2016 7:17 am
I'm curious as to what the limit is, something like 10,000 write/erase cycles?
We use the standard Espressif ESP32 4MB WROOM module. It has happened to me several times (4x?) that I had to substitute a board due to a failure of either the NVS or the program memory. This is over the course of several months.ESP_Sprite wrote:FWIW: If you have an official Espressif-made module or board, all flash chips we use are specced to minimum 100,000 program/erase cycles.
Hello WiFive, thanks for responding.WiFive wrote:"Warning: Could not auto-detect Flash size (FlashID=0xffffff, SizeID=0xff), defaulting to 4MB"
Isn't the size obtained by reading nonvolatile chip registers? Did you do a test of your other parts to see how many bytes/sectors were failing?
As WiFive mentioned, esptool.py detects flash size by reading flash chip ID, which itself is not stored in flash. If it reads 0xffffff from that register, it means that SPI communication between ESP32 and the flash chip is not happening, at least in download mode. This isn't a common failure mode when flash is written too many times. With this module, what is the message on UART console when you let it boot from flash?I think auto-detect implies accessing the flash memory to see where it ends.
I reflashed the board to get the boot report. Alas, the board works normally now. Which is behavour also seen before in other boards (not this one). In those boards it would reflash after a cooling down period of say 30m.ESP_igrr wrote:As WiFive mentioned, esptool.py detects flash size by reading flash chip ID, which itself is not stored in flash. If it reads 0xffffff from that register, it means that SPI communication between ESP32 and the flash chip is not happening, at least in download mode. This isn't a common failure mode when flash is written too many times. With this module, what is the message on UART console when you let it boot from flash?I think auto-detect implies accessing the flash memory to see where it ends.