../gps

GPS protocol

Scope

For an RF challenge focused on legacy GPS LNAV as seen by a basic receiver (L1 C/A, L2 P(Y)). No L2C/L5.

Structure (navigational message)

Each 30-bit word = 24 data bits + 6 parity bits (shortened Hamming). Tables below list the 24 data bits only; every word carries +6 parity at the end.

Legend (units, scales, sign)

Header - Common to each frames

Word 1 (TLM): Preamble(8) | Message(14) | Integrity(1) | Reserved(1)

Word 2 (HOW): TOW(17) | Alert(1) | Anti-Spoof(1) | ID(3) | Padding(t,2)

Header notes

Subframe 1 — Clock & status

Word 3: WN(10) | L2 code(2) | URA(4) | Health(6) | IODC

Word 4: L2 P-data flag(1) | Reserved(23)

Word 5: Reserved(24)

Word 6: Reserved(24)

Word 7: Reserved(16) | TGD(8)

Word 8: IODC | t_oc(16)

Word 9: af2(8) | af1(16)

Word 10: af0(22) | Padding(t,2)

Clock model & statuses

Subframe 2 — Ephemeris (1/2)

Word 3: IODE(8) | C_rs(16)

Word 4: Δn(16) | M₀

Word 5: M₀

Word 6: C_uc(16) | e

Word 7: e

Word 8: C_us(16) | √A

Word 9: √A

Word 10: t_oe(16) | Fit(1) | AODO(5) | Padding(t,2)

Notes (SF2)

Subframe 3 — Ephemeris (2/2)

Word 3: C_ic(16) | Ω₀

Word 4: Ω₀

Word 5: C_is(16) | i₀

Word 6: i₀

Word 7: C_rc(16) | ω

Word 8: ω

Word 9: Ω̇

Word 10: IODE(8) | IDOT(14) | Padding(t,2)

Notes (SF3)

Subframes 4–5

Constellation/almanac pages — not required for my use case.

/RF/ /satellite/