Files
galileo/docs/inav_icd_mapping.md
T

5.9 KiB
Raw Blame History

Galileo I/NAV ICD source mapping

The sole normative source for this decoder is European Union, Galileo Open Service Signal-in-Space Interface Control Document, Issue 2.2, November 2025. The implementation does not infer layouts from SignalSim. SignalSim is an RF stimulus and an independent post-decode truth source only.

Bit positions below are zero-based, MSB-first positions in the reconstructed 128-bit nominal I/NAV word. ICD table positions are one-based on-air order. Signed values use two's complement. A scale written 2^-n*pi converts an ICD semi-circle value to radians.

Channel coding and page construction

Implementation ICD reference Implemented definition
E1-B symbol rate §3.4.2 and Table 3 250 symbols/s; one symbol spans one 4 ms primary-code epoch
Page-part layout §4.3.2 and Table 37 10 uncoded sync symbols followed by 240 interleaved FEC symbols; one second total
Synchronization §4.3.2.1 0101100000; repeated boundaries 250 symbols apart are required
Nominal page §4.3.2.3 and Table 38 Sequential even/odd one-second page parts form one 2-second vertical E1-B page
Tail §4.3.2.2 and Table 38 Six zero tail bits terminate each 120-bit page part
Convolutional FEC §4.1.4.1, Figure 13, Table 26 Rate 1/2, K=7, G1=171 octal, G2=133 octal, second encoder output inverted
Interleaver §4.1.4.2 and Table 27 30 columns × 8 rows; write by column and read by row; decoder applies the reverse permutation
Independent coded vector Annex D.2 Exact ICD I/NAV encoded and interleaved page-part vector is used by unit tests
CRC §5.1.9.4, Equations 25–26 24-bit CRC, generator 0x1864CFB, zero initial remainder, MSB-first protected bits
CRC coverage §4.3.2.3 and Table 38 Even/odd, page type, both data parts, OSNMA, SAR and spare; sync, SSP and tails excluded

InavPageDecoder reconstructs the 128-bit data word from even bits 2–113 and odd bits 2–17. CRC is evaluated over even bits 0–113 and odd bits 0–81, against odd bits 82–105, exactly matching the E1-B vertical-page allocation in Table 38.

Critical word layouts and scales

Word Field Word bit range Width Signed Scale Unit ICD allocation ICD definition
1 Type 0–5 6 No 1 — Table 42 §4.3.5
1 IODnav 6–15 10 No 1 — Table 42 §5.1.8.1
1 t0e 16–29 14 No 60 s Table 42 Table 67
1 M0 30–61 32 Yes 2^-31*pi rad Table 42 Table 67
1 e 62–93 32 No 2^-33 — Table 42 Table 67
1 sqrt(A) 94–125 32 No 2^-19 m^1/2 Table 42 Table 67
2 IODnav 6–15 10 No 1 — Table 43 §5.1.8.1
2 Omega0 16–47 32 Yes 2^-31*pi rad Table 43 Table 67
2 i0 48–79 32 Yes 2^-31*pi rad Table 43 Table 67
2 omega 80–111 32 Yes 2^-31*pi rad Table 43 Table 67
2 i-dot 112–125 14 Yes 2^-43*pi rad/s Table 43 Table 67
3 IODnav 6–15 10 No 1 — Table 44 §5.1.8.1
3 Omega-dot 16–39 24 Yes 2^-43*pi rad/s Table 44 Table 67
3 Delta-n 40–55 16 Yes 2^-43*pi rad/s Table 44 Table 67
3 Cuc 56–71 16 Yes 2^-29 rad Table 44 Table 67
3 Cus 72–87 16 Yes 2^-29 rad Table 44 Table 67
3 Crc 88–103 16 Yes 2^-5 m Table 44 Table 67
3 Crs 104–119 16 Yes 2^-5 m Table 44 Table 67
3 SISA(E1,E5b) 120–127 8 No index — Table 44 §5.1.11.1
4 IODnav 6–15 10 No 1 — Table 45 §5.1.8.1
4 SVID 16–21 6 No 1 — Table 45 §5.1.8.2
4 Cic 22–37 16 Yes 2^-29 rad Table 45 Table 67
4 Cis 38–53 16 Yes 2^-29 rad Table 45 Table 67
4 t0c 54–67 14 No 60 s Table 45 Table 70
4 af0 68–98 31 Yes 2^-34 s Table 45 Table 70
4 af1 99–119 21 Yes 2^-46 s/s Table 45 Table 70
4 af2 120–125 6 Yes 2^-59 s/s^2 Table 45 Table 70
5 ai0 6–16 11 No 2^-2 sfu Table 46 Table 74
5 ai1 17–27 11 Yes 2^-8 sfu/degree Table 46 Table 74
5 ai2 28–41 14 Yes 2^-15 sfu/degree^2 Table 46 Table 74
5 Disturbance flags 1–5 42–46 5 No Boolean — Table 46 Table 74
5 BGD(E1,E5a) 47–56 10 Yes 2^-32 s Table 46 Table 72
5 BGD(E1,E5b) 57–66 10 Yes 2^-32 s Table 46 Table 72
5 E5b/E1B health 67–70 2+2 No status — Table 46 Table 84
5 E5b/E1B DVS 71–72 1+1 No status — Table 46 §5.1.10
5 GST week 73–84 12 No 1 week Table 46 Table 69
5 GST TOW 85–104 20 No 1 s Table 46 Table 69
6 A0 6–37 32 Yes 2^-30 s Table 47 Table 75
6 A1 38–61 24 Yes 2^-50 s/s Table 47 Table 75
6 Delta-tLS 62–69 8 Yes 1 s Table 47 Table 75
6 t0t 70–77 8 No 3600 s Table 47 Table 75
6 WN0t 78–85 8 No 1 week modulo 256 Table 47 Table 75
6 WNLSF 86–93 8 No 1 week modulo 256 Table 47 Table 75
6 DN 94–96 3 No 1 day Table 47 Table 75
6 Delta-tLSF 97–104 8 Yes 1 s Table 47 Table 75
6 TOW 105–124 20 No 1 s Table 47 Table 69

Implemented support boundary

Word types 1–6 are parsed into typed dataclasses. They provide the complete four-word ephemeris, satellite clock polynomial, BGD, E1B health/DVS, GST, ionosphere coefficients and GST–UTC parameters required by the pre-PVT gate. Almanac words and OSNMA authentication are intentionally outside this milestone. Unsupported word types remain preserved as CRC-valid raw page evidence and do not update the active navigation database.