An RTCM 3 message cheat sheet

We are often asked for a list of what the most common RTCM version 3 messages are.  Here is a handy cheat sheet to answer this.  The first section lists the messages which you are most likely to be concerned about.  But if you are developing PPP filters or state space filters the second list will be of more concern, or possibly the newer MSM messages.    The definitive way to learn more is to purchase a copy of the current RTCM 10403.3 standard itself, which you can obtain directly from RTCM here.

Hint: Most folks use SNIP as their preferred  NTRIP Casters of choice.
But others use SNIP as just for its detailed message decoding abilities.
Need an RTCM message decoder? We suggest you Download your own copy of SNIP today.

SNIP supports and sends all of these message types to the NTRIP Clients if the source data stream provides it with the data.  SNIP is message agnostic in that it can convey all of these message types, as well as any other type of data stream you care to send to it (disable parsing in a stream if you wish to send any non RTCM3 content in it).

SNIP also decodes and displays the most common messages (1004, 1012, 1019, 1020, etc.) and processes these messages to provide a basic navigation filter solution on the live data stream which you can use for quality monitoring.

RTCM Rev3 Common Message Types

Most common message used for >99% of all RTK applications
1004 Extended L1&L2 GPS RTK Observables for GPS RTK Use, the main msg  X
1005 Stationary RTK Reference Station ARP  X
1006 Stationary RTK Reference Station ARP plus the Antenna Height  X
1007 Antenna Descriptor (msg 1008 (X) is also commonly used) X
1012 Extended L1&L2 GLONASS RTK Observables, the other main msg  X
1013 System Parameters, time offsets, lists of messages sent
1017 GPS Combined Geometric and Ionospheric Correction Differences
1019 GPS Broadcast Ephemeris (orbits)  X
1020 GLONASS Broadcast Ephemeris (orbits)  X
1029 Unicode Text String (used for human readable text)
1033 Receiver and Antenna Descriptors
1045 Galileo Broadcast Ephemeris

A typical modern reference station will provide raw observational data in the 1004 and 1012 messages and send these at a 1Hz rate. While at the same time, sending its ECEF location (a 1005, 1006 or 1007 message) every 10~30 seconds or so.   Most reference stations do not send broadcast orbital data, called Ephemeris, (messages 1019, 1020) presuming that the local user can simply look up at the sky to obtain the data.

Note:   In the table above, X = Indicates that the internal message element details of these messages are fully decoded by SNIP ‘s RTCM3 Decoder Viewer and displayed in the free Lite model.   The other models of SNIP decode the internal message element details of many other messages.

Hint: If your application requires quickly downloading orbital data, connect to a server which is sending it. Seek for a stream called RTCM3EPH, which is the common industry name used.  Our open caster service provides this as well, for all GNSS types, all orbits worldwide 24×7.  If your user community will require a rapid start-up (a low Time To First Fix – TTFF), then be sure that one of your SNIP streams can provide orbital data to your NTRIP Clients.


State Space Representation (SSR) Message Types

If you are interested in State Space Representation (SSR) or Precise Point Positioning (PPP) filtering uses, these are the messages of most interest to you. (other SSR messages also are defined).

  These “state space” messages are of interest to PPP user
1057 SSR GPS orbit corrections to Broadcast Ephemeris
1058 SSR GPS clock corrections to Broadcast Ephemeris
1059 SSR GPS code biases
1060 SSR Combined orbit and clock corrections to GPS Broadcast Ephemeris
1061 SSR GPS User Range Accuracy
1062 SSR High-rate GPS clock corrections to Broadcast Ephemeris
1063 SSR GLONASS orbit corrections for Broadcast Ephemeris
1064 SSR GLONASS clock corrections for Broadcast Ephemeris
1065 SSR GLONASS code biases
1066 SSR Combined orbit and clock corrections to GLONASS Broadcast Ephemeris
1067 SSR GLONASS User Range Accuracy (URA)
1068 High-rate GLONASS clock corrections to Broadcast Ephemeris


Multiple Signal Messages (MSM) Message Types

The Multiple Signal Messages (MSM) can be found in the range of 1070 to 1129.  A short press release from RTCM regarding MSM content can be found here.  These messages add support for direct Doppler observations (finally!), which can be a critical factor in achieving ambiguity resolution when using L1 only devices on the move.

An overall intent of the MSM message development effort has been to have more uniform and more modernized set of messages that can employed with any GNSS system (not just GPS and GLONASS).  To that end, seven new basic message types were defined (see the table below).  And then each of these was applied to each separate GNSS system.  So for example; an MSM7 style message for QZSS is nearly identical to an MSM7 style message for GPS, only their message ID assignment numbers vary.  The seven basic messages each have more informational details than the one that precedes it.

Here is  quick summary:

    The seven defined MSM message types, reused with each GNSS type
MSM1 DGNSS uses, Pseudorange, (conventional and advanced)
MSM2 RTK uses, Pseudorange only
MSM3 RTK uses, Pseudorange (i.e. Code) and PhaseRange (i.e. Carrier)
MSM4 RTK uses, Pseudorange, PhaseRange, CNR
MSM5 RTK uses, Pseudorange, PhaseRange, Doppler, CNR
MSM6 RTK uses, Pseudorange, PhaseRange CNR, with high resolution
MSM7 RTK uses, Pseudorange, PhaseRange, Doppler, CNR, with high resolution
Three other messages have reserved number assignments as well,
but at present there is no active development of them.

These seven messages are then assigned to a range grouped for each GNSS system as follows:

 Msg ID Range
  MSM message type IDs assigned to each GNSS type
1071-1077 GPS  (1077 is the best to use.  Setting up uBlox with RTKLIB? – use this)
1081-1087 GLONASS  (and 1087 would be the one to use here)
1091-1097 Galileo
1101-1107 SBAS
1201-1207 QZSS
1301-1307 BeiDou

As always, see the actual RTCM SC104 standard for the details.  In a way much like the popular use of the 1004 message (even when no L2 data was present), many deployment send the MSM7 message as it contains the most details and features.  For this reason one can say that the MSM7 message is the one you are mostly going to find being sent (1077, 1087, etc.).    At this time, SNIP lists these messages in the RTCM3 decoder dialog as they occur, but does not provide an exhaustive decoding of the element contents in the Lite edition of the tool.

Private Messages

Several other interesting streams developed for various specialty uses also bear mentioning:

4001~4095 Various Proprietary Messages   A number of firms (including SCSC, the maker of SNIP) have private message assignments in this range.  As a rule these streams provide some form of information compression, as well unique content. In some places (such as the SAE DSRC message set work for vehicle to vehicle safety), these are referred to as the “compressed” RTCM, messages.
0~100 Defined for temporary experimental development and testing use.  Currently (2Q 2016) there are a number of STEC  (slant TEC) messages which are being developed in this range.  These will be given a different permanent  assignment once they are fully developed and tested by the RTCM SC-104 committee. Messages found in this range should be considered works in progress of the RTCM SC-104 committee.

See Also

These related message sets may also be of interest to you.

A complete list of all adopted RTCM 3 Messages with commentary.

A complete list of all adopted RTCM 2 Messages with commentary.

A complete list of all adopted SAE DSRC J2735 Messages with commentary.

Common NMEA-183 messages of interest to GNSS NTRIP users  Site-1  and Site-2.


Next Steps…

Need to see the internal contents of these messages?  Use SNIP‘s RTCM3 Decoder feature.

Need to use these messages in a navigation solution?  Use SNIP‘s Graphical Display feature

Need to quickly plot the ECEF location of a base station?  Use SNIP‘s Mapping feature.

Need to quickly plot the location of a Caster Table Entries?  Use SNIP‘s Monitor feature.


Download your own copy of SNIP today

Was this article helpful?

Related Articles

1 Comment

  1. Pingback: A Hacker’s Guide to the K501G – Deep South Robotics

Leave A Comment?

You must be logged in to post a comment.