Release Notes — v0.7.3¶
Real-time MADOCA-PPP PPP-AR/IONO — L6D wide-area ionospheric augmentation¶
Release date: 2026-06-29 Type: Feature (real-time MADOCA-PPP PPP-AR/IONO) Branch: release/v0.7.3
Overview¶
v0.7.3 wires the MADOCA-PPP L6D wide-area ionospheric augmentation (QZS PRN 200/201) into the real-time mrtk run path. With this change, ionosphere = est-stec + iono_correction = on applies the same slant-TEC (STEC) constraint in real time as it already did in post-processing.
Previously this mode was post-processing only. In real time the L6E SSR was decoded and applied, but the L6D iono augmentation was never routed into the server — so an est-stec real-time run silently degraded to plain PPP-AR.
The design is SBF-first (mosaic-G5): a single SBF stream carries the observations, the L6E SSR and the L6D ionosphere in one slot. The Septentrio SBF L6D decoder steers PRN 200/201 to the iono decoder via a dedicated return code that rtksvr feeds into nav.pppiono.
1. What's new¶
Real-time PPP-AR/IONO¶
rtksvr now decodes the L6D ionospheric frames (QZSRawL6D, PRN 200/201) into nav.pppiono and applies the wide-area STEC constraint live, mirroring update_qzssl6d() in the post-processing path.
The path is gated on:
correction = qzs-madocaionosphere = est-steciono_correction = on
The GPST week is anchored lazily from the first stream time (the CLAS week_ref pattern), so recorded-stream replay decodes in the correct week (#223, PR #233).
New sample configuration¶
conf/madocalib/rtkrcv_madoca_pppar_iono.toml— a real-time single-SBF MADOCA-PPP PPP-AR/IONO sample configuration, plus a real-time subsection added to the MADOCA-PPP quickstart.
2. Changed¶
Septentrio SBF L6D routing¶
The Source = 1 (L6D) branch now returns a dedicated decoder code for PRN 200/201/197 (MADOCA ionosphere), so the frame is steered to the iono decoder instead of the CLAS redirect.
The discriminator is the PRN: 200/201 carry the iono augmentation and are disjoint from CLAS (193–199) per IS-QZSS-MDC-004 Table 3-1. There is no effect on CLAS — in MADOCA mode the CLAS context is absent, and in CLAS mode PRN 200/201 were already rejected.
3. Validation¶
Offline decode of a mosaic-G5 SBF capture:
- 3660 L6D iono frames → 366 complete decodes →
nav.pppionoregions populated. - 89 L6E SSR satellites decoded from the same stream.
Live mosaic-G5 hardware (over TCP):
- The real-time iono path fires (
pppionoregions filled). - L6E SSR age ≈ 1 s.
- PPP-AR/IONO reached a fixed solution (Q=1) ≈ 1 minute after start, holding continuous Q=1 at ~1.2 cm horizontal / ~3.4 cm vertical std.
The fast fix is the L6D ionospheric augmentation working as intended — the same STEC constraint that post-processing already applied, now applied live.
4. Known limitations¶
- The augmentation is gated on
correction = qzs-madoca+ionosphere = est-stec+iono_correction = on; outside that mode the L6D iono frames are not consumed. - L6D iono routing keys on PRN 200/201 (disjoint from CLAS 193–199 per IS-QZSS-MDC-004 Table 3-1); PRN 197 is included in the dedicated return code.
Compatibility & migration¶
No configuration changes are required for existing workflows. The real-time iono augmentation is opt-in through the est-stec + iono_correction = on gate; without it, mrtk run MADOCA-PPP behaves exactly as before. A new sample configuration (conf/madocalib/rtkrcv_madoca_pppar_iono.toml) is provided for the new mode.
Issues / PRs¶
- #223 — wire the L6D iono (PRN 200/201) augmentation into the real-time
mrtk runpath. - PR #233 — implementation (real-time L6D iono decode into
nav.pppiono, lazy GPST week anchor, SBF L6D routing return code, sample configuration). - PR #235 — release/v0.7.3.
References¶
- IS-QZSS-MDC-004 — MADOCA-PPP L6E SSR and L6D wide-area ionospheric augmentation message formats; Table 3-1 PRN allocation (CLAS 193–199, iono 200/201).
- Septentrio SBF Reference Guide —
QZSRawL6D(L6D) block layout and theSourcefield.