spaxel/firmware/main
jedarden 391ed884e4 feat: implement NVS schema migration on boot
Implement versioned NVS key migration on ESP32-S3 firmware so
OTA-updated firmware gracefully handles NVS written by older versions.

- Add nvs_migration.c/h with migration framework
- On boot, read schema_ver from NVS; initialize to 1 if missing
- Run migrations sequentially if schema_ver < COMPILED_NVS_VERSION
- Each migration commits after each write for durability
- Log all migration steps to UART for debugging
- Example migration v1→v2: rename 'ms_ip' to 'mothership_ip',
  add 'ntp_server' with default 'pool.ntp.org'
- Migration failure leaves NVS in consistent state

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 10:27:38 -04:00
..
ble.c feat(firmware): ESP32-S3 firmware skeleton with CSI/BLE/WebSocket 2026-03-26 07:20:55 -04:00
ble.h feat(firmware): ESP32-S3 firmware skeleton with CSI/BLE/WebSocket 2026-03-26 07:20:55 -04:00
CMakeLists.txt feat: implement NVS schema migration on boot 2026-04-07 10:27:38 -04:00
csi.c feat(protocol): full bidirectional node protocol over WebSocket 2026-03-26 23:14:19 -04:00
csi.h feat(firmware): ESP32-S3 firmware skeleton with CSI/BLE/WebSocket 2026-03-26 07:20:55 -04:00
main.c feat: implement NVS schema migration on boot 2026-04-07 10:27:38 -04:00
nvs_migration.c feat: implement NVS schema migration on boot 2026-04-07 10:27:38 -04:00
nvs_migration.h feat: implement NVS schema migration on boot 2026-04-07 10:27:38 -04:00
provision.c feat(dashboard): per-link motion presence indicator with amplitude time series 2026-03-26 22:55:33 -04:00
provision.h feat(dashboard): per-link motion presence indicator with amplitude time series 2026-03-26 22:55:33 -04:00
spaxel.h feat(firmware): ESP32-S3 firmware skeleton with CSI/BLE/WebSocket 2026-03-26 07:20:55 -04:00
version.h.in feat(firmware): OTA SHA-256 verification and captive portal URL decoding 2026-03-28 19:56:11 -04:00
websocket.c feat: dual-partition OTA rollback validation with 60s role timeout 2026-04-07 01:43:29 -04:00
websocket.h feat(protocol): full bidirectional node protocol over WebSocket 2026-03-26 23:14:19 -04:00
wifi.c feat: implement passive radar auto-detection of router AP 2026-04-06 14:03:03 -04:00
wifi.h feat: implement passive radar auto-detection of router AP 2026-04-06 14:03:03 -04:00