Scroll to navigation



gpssubframe - tool to dump subframe sentences from gpsd


gpssubframe [-?] [--count COUNT] [--debug LVL] [--desc] [--device DEVICE] [--file FILE] [--help] [--host HOST] [--load FILE] [--port PORT] [--progress] [--satpos] [--save FILE] [--seconds SECONDS] [--test] [--time SECONDS] [--version] [-D LVL] [-f FILE] [-h] [-n COUNT] [-V] [-x SECONDS] [server [:port [:device]]]


gpssubframe is a tool to connect to gpsd and dump decoded subframe data to stdout. This is only useful if your GNSS receiver can output GPS subframe messages, and is configured to do so. A working knowledge of IS-GPS-200 is also required. Keep your copy close at hand.

gpssubframe does not require root privileges, and can be run concurrently with other tools connecting to the local gpsd without causing problems.

The program will accumulate subframe message and output them by GPS satellite number on exit. By default the program never exits unless the user selects the number of seconds to run or number of messages to capture.

By default gpssubframe connects to a gpsd running on the local host. Optionally a host, TCP/IP port number and remote device can be given.


-?, -h, --help

-Print a usage message and exit.

-c COUNT, --count COUNT

Exit after COUNT subframe messages.

--device DEVICE

Connect to device DEVICE on gpsd host.

-D LVL, --debug LVL

Set debug level to LVL.

--file FILE

Read JSON from FILE instead of from gpsd..

--host HOST

Connect to gpsd on host HOST.

--port PORT

Connect to gpsd on port PORT.


Print progress reports as messages are received.


Compute GPS satellite positions before exit.

--time SEC

Compute satellite position at time SEC in POSIX seconds.


Run --satpos selftest code.

-V, --version

Print the program version, then exit.

-x SEC, --seconds SEC

Seconds of messages to parse. 0 to disable.


First connfigure a u-blox 9-series to output subframe messages. Then have gpssubframe gather one complete set of subframes, then print the data organized by GPS satellite number. Then calculate and print the known satellite positions as well as the azimuth, elevation, and range from the current position:

ubxtool -P 22 -e SFRBX
gpssubframe -x 750 --satpos

If staring at a blank screen for 12.5 minutes is too stressful, then enable progress messages:

gpssubframe -x 750 --satpos --progress


gpsd(8), gps(1), gpsprof(1), gpsfake(1), gpsctl(1), gpscat(1).

IS-GPS-200 "NAVSTAR GPS Space Segment/Navigation User Segment Interfaces"


Gary E. Miller <>.

6 December 2020 The GPSD Project