Repository navigation
Channel Sounding AT Command Set v0.6
Add per-tone validity/quality and FFO support
- Introduce per-procedure frequency compensation (ffo) and per-tone validity (m) and quality (q) fields across docs, parser, and firmware output. README and distance_estimation docs updated to describe new +IQ format, tone masking, and frequency compensation behavior. Python script (cs_distance.py) now parses optional ffo/m/q fields, unpacks validity and 2-bit quality codes, builds a combined tone mask, and applies it to IFFT and phase-slope estimators (also fixes CTF math and phase-slope sign). Firmware changes: iq_output.h/c add storage and emission of valid_mask, tone_quality, and freq_compensation (including helpers to print hex-packed masks), increase output buffer size, and populate these fields in session_mgr.c where subevent headers and steps provide per-procedure FFO and per-tone info. Session manager initializes tone_quality to UNAVAILABLE and marks valid/quality per tone; pending FFO is propagated into reports.
Fix phase sign, IFFT peak handling, and defaults
- Correct channel-sounding math and defaults: adjust CTF sign handling so the IFFT peak and phase-slope distance use the controller's PCT convention (slope is negative for positive distance), implement robust IFFT peak search across both halves with sub-bin interpolation, and apply the correct delay aliasing logic. Add named default weights for combining RTT/IFFT/Phase-Slope estimates and wire them into the CLI help/defaults.