ESP32 NVS editor
See and change what an ESP32 keeps in NVS: open an nvs.bin or read it straight from a device over USB, edit keys and values in the table, and save the image or write it back. New partitions are built byte for byte as ESP-IDF's nvs_partition_gen.py builds them.
| Namespace | Key | Type | Value |
|---|
CSV (the format nvs_partition_gen.py reads; edit as text if you prefer)
The CSV format
- A row of type
namespacestarts a namespace; every row after it belongs to it until the next. - A row of type
datais a key. Encodings:u8,i8,u16,i16,u32,i32,u64,i64,string,hex2binandbase64(blobs). - A row of type
filetakes its value from a file: choose the files under "Files the CSV names". - Keys and namespace names are at most 15 characters; strings at most 4000 bytes; blobs can span pages.
Encrypted NVS is not supported. Flash the generated image at the offset of the nvs partition in your partition table (0x9000 in most), with the web flasher or esptool.py write_flash 0x9000 nvs.bin.
Settings for devices in the field
Per-device values such as serial numbers, calibration and keys are usually written to NVS at the factory. Changing them later on a device that has shipped needs a way to reach it: Pinscope opens the device's own web page from anywhere, so a settings page in your firmware works remotely too.
Try it
Three devices are free, and no card is needed. Create an account, or read the five-minute guide first.
More
- Remote access to an ESP32 without TLS: what it measured and what it costs
- Reaching an ESP32 web server from outside its network
- Updating ESP32 firmware over the internet, with rollback
- Guru Meditation Error: decoding the backtrace, and crashes from the field
- Remote logging: ESP_LOG without a serial cable
- Heap and stack monitoring in the field
- An ESP32 behind CGNAT, 4G or Starlink
- TLS memory usage on the ESP32, and how to reduce it
- Sharing an ESP32 sensor page with anyone, without port forwarding
- ArduinoOTA over the internet, with a rollback
- ESP32 remote access compared: port forwarding, ngrok, Cloudflare Tunnel, Tailscale
- esp_http_server slow? The 250 ms delay and the fix
- Before the first ESP32 ships: a field support checklist
- ESP32 exception decoder: a Guru Meditation backtrace to lines, in the browser