Langue: en

Autres versions - même langue

Version: 03/22/2009 (ubuntu - 07/07/09)

Section: 1 (Commandes utilisateur)


rtcmdecode - decode RTCM104 streams into a readable format


rtcmdecode [-d] [-e] [-v debuglevel] [-V]


This tool is a decoder for RTCM-104, an obscure and complicated serial protocol used for broadcasting pseudorange corrections from differential-GPS reference stations. RTCM-104 is expected on standard input; an equivalent, 100%-information-preserving text format is written to standard output.

You can use this tool with nc(1) to examine RTCM feeds from DGPSIP servers or Ntrip broadcasters.

The decoder dump format is described in rtcm(5); these lines go to standard output. As well as data the decoder also prints decoder status messages to standard error, as necessary.


The -d option tells the program to decode RTCM-104 presented on standard input to a text dump in the format of rtcm-104(5) on standard output. This is the default behavior.

The -e option option tells the program to encode a text dump in the format of rtcm-104(5) to standard output. Encoding is supported only RTCM104v2, not for RTCM104v3.

The -V option directs the program to emit its version number, then exit.

The -v option sets a verbosity level. It is mainly of interest to developers.


The applicable standard for V2 is RTCM Recommended Standards for Differential NAVSTAR GPS Service RTCM Paper 194-93/SC 104-STD.

Note that rtcmdecode presently recognizes only the 2.1 level of RTCM; the protocol was revised up to a version 2.3 including additional messages relating to GLONASS and real-time kinematics before being deprecated in favor of V3. It is now obsolete.

The applicable standard for V3 is RTCM Standard 10403.1 for Differential GNSS Services - Version 3 RTCM Paper 177-2006-SC104-STD.

Ordering instructions are accessible from the website of the Radio Technical Commission for Maritime Services[1] under "Publications".


RTCM3 decoding is buggy and incomplete.

RTCM-104 represents floating-point quantities as an integer multiple of a fixed scale factor. Editing an RTCM-104 dump can produce numbers that are not an integer multiple of the scale factor for their field. If you do this, the value actually packed into binary RTCM-104 will be rounded down to the nearest scale unit, and dumping will show slightly different numbers than those you entered.

The decoder logic is sufficiently convoluted to confuse some compiler optimizers, notably in GCC 3.x at -O2, into generating bad code.


gpsd(8), cgps(1), libgps(3), libgpsd(3), gpsprof(1), gpsfake(1), rtcm-104(5).


Eric S. Raymond <esr@thyrsus.com>. This is a somewhat hacked version of an RTCM decoder originally written by Wolfgang Rupprecht. There is a project page for gpsd here[2].


Radio Technical Commission for Maritime Services