Is NVS where Wi-Fi is saved?
Yes. NVS means nonvolatile storage: small persistent key/value data in the board’s flash. The Wi-Fi stack stores provisioned credentials there, and the monitor stores volume and idle preferences. It is appropriate for settings, not large recordings. The separate nvs app is still a placeholder; that does not mean other apps are not using NVS.
| Storage | What it is good for | Survives power off? |
|---|---|---|
| NVS in flash | Saved Wi-Fi and small preferences | Yes, unless erased or overwritten |
| Other flash partitions | Firmware, speech models, app-specific data | Yes, with layout-dependent updates |
| Internal RAM / 8 MB PSRAM | Buffers, graphics and temporary audio | No |
| Removable microSD | Recordings and files | Yes, after successful writes |
The board has 16 MB flash and 8 MB PSRAM. These are different resources. Free PSRAM does not solve every internal DMA or task-stack allocation: monitor integration exposed failures that required early microphone DMA allocation and a reserved status-feed stack.
Updates need compatible boundaries
Leaving Erase device unchecked can preserve settings when the new firmware uses compatible NVS boundaries. It is not a universal guarantee. The current monitor preserves the Arduino 20 KiB NVS region but provides two 4 MiB OTA app slots and a speech-model region; its 0.7.0 migration moves models and overwrites old app/data regions. The standalone speech diagnostic and recorder use a different, 24 KiB NVS boundary; cross-layout interpretation is not guaranteed. Switching layouts can overwrite old app/data regions without a full-chip erase.
Files on SD
The verified interface is four-bit SDIO/SD_MMC. The file manager views existing files without formatting. The recorder writes Ogg Opus to /recordings/, preserving existing names and keeping incomplete files marked .part. Never assume removing power halfway through a write leaves a valid file.
Photo storage
The standalone SD photo frame reads BMP, JPEG,
PNG and still WebP from /photos. BMP playback is owner-confirmed; compressed
formats pass native decoder tests but still need playback checks on the board.
Monitor 0.8.0 uses a separate /monitor-photos directory. Its browser prepares
320 × 196 RGB565 frames before upload, and the board caches one frame in PSRAM.
Two prepared files were written and rendered in USB Micro mode with stable
internal heap; physical BLE transfer and active Wi-Fi speech coexistence remain
unverified. See configuration and file details
and the ordered journey.
Brief your coding agent
Save a small user preference in NVS with a sensible default and validation. Write only when it changes. Explain update compatibility. Keep recordings on SD and preserve existing files; never format automatically.
Sources
Espressif NVS guide. Layout and device evidence are recorded in the monitor and recorder READMEs.