> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tracenav.net/llms.txt
> Use this file to discover all available pages before exploring further.

# RTCM Message Map

> Break down the RTCM 3.x message types TraceNav streams and what each field represents

TraceNav services deliver RTCM 3.x frames without modification. For the full specification, see the official RTCM 10403.3 document (available for purchase) at [rtcm.org](https://rtcm.myshopify.com/collections/differential-global-navigation-satellite-dgnss-standards/products/rtcm-10403-3-differential-gnss-global-navigation-satellite-systems-services-version-3-amendment-2-may-20-2021).

## Frame layout

| Field   | Bytes      | Description                                      |
| ------- | ---------- | ------------------------------------------------ |
| `0xD3`  | 1          | Frame sync marker                                |
| Length  | 2 (10-bit) | Payload length (excluding header + CRC)          |
| Payload | *n*        | Message type, data, parity bits packed MSB-first |
| CRC-24Q | 3          | Checksum over header + payload                   |

Most RTCM parsers read payload bits into typed structures. For manual inspection, convert the payload to binary and consult the tables below.

## Core reference messages

| Msg ID | Name                    | Purpose                                                    | TraceNav usage                                |
| ------ | ----------------------- | ---------------------------------------------------------- | --------------------------------------------- |
| 1005   | Reference Station ARP   | Absolute coordinates of the antenna reference point (ECEF) | Broadcast once per minute for VRS context     |
| 1033   | Antenna Descriptor      | Antenna type, serial number, and receiver ID               | Sent hourly on managed bases                  |
| 1230   | GLONASS Code-Phase Bias | Aligns GLONASS FDMA frequencies                            | Included whenever GLONASS signals are enabled |

## Multi-Signal Messages (MSM)

TraceNav primarily streams MSM4 frames. They include pseudorange, carrier phase, Doppler, and C/N₀ for each satellite + signal.

| Msg ID | Constellation | Content                                   |
| ------ | ------------- | ----------------------------------------- |
| 1074   | GPS MSM4      | Observations for GPS L1/L2                |
| 1084   | GLONASS MSM4  | Observations for GLONASS G1/G2            |
| 1094   | Galileo MSM4  | Observations for E1/E5                    |
| 1104   | SBAS MSM4     | WAAS/EGNOS/MSAS observations when enabled |
| 1114   | QZSS MSM4     | QZSS L1/L2 observations when enabled      |
| 1124   | BeiDou MSM4   | Observations for B1/B2                    |

## Ephemeris messages

TraceAssist Ephemeris relies on dedicated message IDs that contain orbital parameters.

| Msg ID | Constellation              | Refresh rate                 |
| ------ | -------------------------- | ---------------------------- |
| 1019   | GPS Broadcast Ephemeris    | Every 5 seconds prior to GGA |
| 1020   | GLONASS Navigation Message | Every 5 seconds prior to GGA |
| 1042   | BeiDou Ephemeris           | Every 5 seconds prior to GGA |
| 1044   | QZSS Ephemeris             | Optional                     |
| 1045   | Galileo I/NAV Ephemeris    | Optional                     |
| 1046   | Galileo F/NAV Ephemeris    | Every 5 seconds prior to GGA |

Once a rover sends its first valid GGA, the ephemeris repetition stops and only MSM + station messages remain. TraceAssist Ephemeris is enabled by default for all TraceNav sessions.

## Example: Message 1005 decoding

A typical TraceNav log line looks like:

```
1005 0 25 d300133ed47e03fdf90ea0683475ad106d0918a798eedb1cb8
```

The final block (`d300…`) is the raw RTCM frame. Decoding the payload (after the `0xD3` header and 24-bit CRC) with the 10403.3 bit layout yields:

| Field                              | Bits      | Value             | Notes                                                                        |
| ---------------------------------- | --------- | ----------------- | ---------------------------------------------------------------------------- |
| Message number                     | 12        | `1005`            | Stationary Antenna Reference Point (no height)                               |
| Reference station ID               | 12        | `1150`            | Device identifier tied to TraceRouter credentials                            |
| ITRF realization year              | 6         | `0`               | `0` = frame unspecified (defaults to current TraceNav reference frame)       |
| GPS / GLONASS / Galileo indicators | 1 / 1 / 1 | `1 / 1 / 1`       | Station supports GPS, GLONASS, and Galileo signals                           |
| Reference-station flag             | 1         | `1`               | Confirms this is a reference (not transient) station                         |
| ARP ECEF-X                         | 38        | `-870641.6536 m`  | Value is broadcast in 0.1 mm units (`-8 706 416 536`)                        |
| Single receiver oscillator         | 1         | `0`               | Separate oscillators per signal (common for network VRS)                     |
| Reserved                           | 1         | `0`               | Always zero                                                                  |
| ARP ECEF-Y                         | 38        | `-4956533.1347 m` | Signed two’s-complement value                                                |
| Quarter-cycle indicator            | 2         | `0`               | Carrier-phase quarter-cycle offset not applied                               |
| ARP ECEF-Z                         | 38        | `3906834.2510 m`  | Signed value in 0.1 mm units (TraceNav defaults to ITRF2020 @ current epoch) |
