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, and you will likely use the newer MSM messages. If your user community is made up of both old and new devices, you will probably have to support legacy messages as well as MSM style messages. You can use the PFAT® functions to divide message types in various different streams when needed. The definitive way to learn more about RTCM 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.) as well a MSM messages 4~7 and will process these messages to provide a basic navigation filter solution on the live data stream which you can then use for quality monitoring. The navigation filter uses only the GPS signal at this time.
When you see a correctly filled out Caster Table Entry for a Base Station, it lists the messages being send as well as the rate they are sent. The rates are optional, and many devices do not complete this part of the table. A typical line might be:
STR;SCSC;Glendora, CA;RTCM 3.1;1004(1),1005(10),1012(1);2;GPS+GLO;SNIP;USA;34.13;-117.83;0;0;sNTRIP;none;N;N;0;
In the above entry a Base Station named “SCSC” is sending the message types 1004 and 1012 which are being sent once a second, while 1005 is being sent every tenth second. [Format: MTxxxx(z) where z = how often the message (xxx) is repeated]
RTCM Rev3 Common Message Types
Most common message used for >90% 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. All 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 (popular) |
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 (popular) |
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. Support for the use of MSM has reached above 20% of the installed rover base at this time, but good deployment data is still scarce.
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.
Hint: Have an older Legacy GNSS Base Station that you want to send MSM messages? Or the reverse, an older GNSS Rover? Use PFAT to translate from MSM back to Legacy messages.
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 (but No Doppler) |
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 |
1111-1117 | QZSS |
1121-1127 | 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 MSM4 or 7 message as they contain the most details and features. For this reason one can say that over time the MSM7 message is the one you are mostly going to find being sent (1077, 1087, etc.) especially with newer devices that provide Doppler data. Older devices will most often be found using MSM5 (or MSM4 when no Doppler is available). The MSM1~3 types are provided for message set completeness and at this time have almost no use in deployment.
At this time, SNIP lists these messages in the RTCM3 decoder dialog as they occur, and provides an basic element level decoding of the element within. The the Lite edition of the tool, only the top level decoding is provided. Several deployment have asked that SNIP provide automatic translations between legacy messages (1004, 1012) and MSM messages, and this has now been added (in both directions) from Release 2-12 onward.
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 (2019) 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, accepted, 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. SNIP also decodes and displays their binary content. |
See Also
These related message sets may also be of interest to you.
A complete list of all adopted RTCM 3 Messages with commentary.
BKG has produced a nice summary list in table form which provide a quick RTCM 3 summary view.
A complete list of all adopted RTCM 2 Messages with commentary.
A complete list of all adopted SAE DSRC J2735 Messages with commentary
(this is how RTCM is sent to vehicles using new ‘smart’ car technologies)
Common NMEA-183 messages of interest to GNSS NTRIP users Site-1 and Site-2.
(this is how the rover/vehicle/NTRIP Client sends its position back to the NTRIP Caster)
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.
Need to translate one message type into another? Use SNIP‘s PFAT and Translate features.