## Exercise 18: GPS Field QA

Survey/reconnaissance firmware for LilyGO T-Beam SUPREME.

This exercise measures GNSS visibility and solution quality, disciplines the RTC from GNSS before creating any capture log, writes CSV captures to SD card, and exposes the SD tree over the field AP for download and erase operations.

Current storage choice:

- `SD`

Current environments:

- `bob_l76k`
- `guy_ublox`

Primary serial commands:

- `status`
- `summary`
- `ls`
- `cat <path>`
- `erase <path>`
- `stop`
- `start`
- `flush`
- `discipline`
- `erase_csv`
- `erase_logs` (compatibility alias)

Notes:

- Default environment is `cy`.
- No log file is created until GNSS UTC plus PPS has disciplined the RTC.
- The capture file naming format is `YYYYMMDD_HHMMSS_<BOARD>.csv`.
- Samples are aggregated once per second.
- Records are double-buffered in RAM and flushed to SD every 10 seconds.
- Satellite snapshot records are written as additional CSV lines when GSV data is available.
- The web UI exposes SD download links and `/cmd?...` actions such as `erase=/logs/20260406_093912_CY.csv`.
- The implementation uses common NMEA parsing so it can normalize L76K and MAX-M10S output without adding a new GNSS dependency.
