Version 15 (modified by stoecker, 8 years ago) ( diff )


This page is dedicated to the development of an RTCM3 Navigation data frames (NDF) message for the transport of raw GNSS messages.


Many users need all the information contained in the data transmission by the satellite in an unmodified form. Lots of receivers and services already support output of raw frames, but there exists no standard. This message tries to solve this situations – a transport format for raw Navigation Data Frames (NDF).

This message is in line with lately introduced MSM observation messages. MSM messages are generic and Message Type numbers are reserved for up to 16 GNSS systems. Similarly, NDF data messages are also claimed as generic, i.e. their high level structure is the very same for each GNSS and Signal.

Like in case of MSM description, first we describe generic NDF message structure. Then for each available GNSS we specify signals containing binary data and provide recommendations for data framing.

A GNSS application can use NDF data as it, or they can be preliminary converted into [e.g. already standardized MT 1019, 1020 etc] ephemeris structures for further processing archiving.

NDF message

Message header

Message Number DF002 uint12 12 4075 (proprietary number for this purpose)
Reference Station ID DF003 uint12 12 stream identification
Reserved field uint2 2 reserved bits, maybe used to separate different type 4075 message, always 0 for NDF
Frame Count (FC) uint6 6 Number of frame entries to follow
Frame Entry depends on FC and frame size frame data according to following table
TOTAL 32 + Frames

The message allows grouping multiple frames into one block. These can be

  • multiple signals for one satellite,
  • multiple satellites for one time or,
  • multiple frames for one signal,
  • multiple satellite systems.

Also combinations of these are possible. For realtime raw frame transport probably bullets one and two or a combination of these is most useful.

Frame Entry

Satellite system uint5 4 0 == GPS, 1 == GLONASS, 2 == Galileo, 3 = SBAS, 4 = QZSS, 5 = BDS
Satellite number uint6 6 Satellite ID, index from MSM satellite mask bit field (0..63, see DF394)
Signal Type uint5 5 Signal type specification, index from MSM signal mask bit field (0..31, see DF395)
Epoch Time uint30 30 Epoch time, specific for the satellite system always 30 bits (see table below)
Continuous Tracking bit(1) 1 Tracking this satellite frame data was continous (1 = continous, 0 not continues or unset)
Frame Data Size (N) uint12 12 Number of bits to follow
Frame Data N Bit data from satellite (see data section below)
TOTAL 48 + N

Layout of a frame block always follows this structure, so unknown satellite systems or satellites can be skipped in messages with more than one frame.

Epoch Time (accuracy in milli seconds, equal to MSM)

Satellite systemDF NUMBER(s)NOTES
GPS DF004 in milliseconds (0..604799.999 ms)
GLONASS DF416 (3 bit) + DF034 (27 bit) Like for MSM, Day of week (0 == Sunday, 6 == Saturday, 7 == unknown) + time of day in ms (0..86400.999 ms)
Galileo DF248 equals GPS
SBAS equals GPS
QZSS DF428 equals GPS
BDS DF427 similar to GPS, but with a 14 leap second difference

Frame Data (implementation recommendation)

While the format general has variable bit length support, to reduce confusion about the data contents the standard should define the bits sizes and data to be transferred for all existing satellite systems. Data should always include checksums and other non-informational parts of the transmission.

  • GPS
    • Old Style: 300 bits including the checksums
    • New Style: 300 bits including the CRC
  • SBAS
    • 250 bits including CRC
  • QZSS
    • 300 bits for GPS-compatible signals Needs to be verified
    • 250 bits for SBAS-compatible signal Needs to be verified
    • 2000 bits for LEX signal Needs to be verified
  • Galileo
    • I/NAV 244 bits Needs to be verified
    • F/NAV 120 bits Needs to be verified
  • Beidou:
    • 300 bits Needs to be verified
    • 85 bits

Data senders need to decide whether data with bad checksum is transferred or not. While generally data with a bad checksum may be discarded, in disturbed environments even such data may be useful.

NDF as ephemeris transport

RTCM3 already has a set of navigational data messages like 1019 (GPS), 1020 (GLONASS) or planned messages like 1044 (QZSS) 1045, 1046 (Galileo). With the additional satellite systems more and more navigation messages become necessary and also the existing system navigation messages are changing and thus additional formats are required.

The above message structure allows to use this message also as a replacement or enhancement of existing ephemeris messages simply by filling the message not with the real-time stream, but with all frames necessary to for an ephemeris set (e.g. for GPS C/A this would be subframes 1 to 3). Advantages of this approach:

  • Receivers already must support the frame format, so data decoding is no longer special for RTCM messages, but can use already existing algorithms
  • No assumptions are taken about which data is required and which not
  • Changing data formats are handled easily
  • Unique structure for all satellite systems and signal types (even private services, ...)
Note: See TracWiki for help on using the wiki.