GPSCAT(1)

πŸ’– GPSCAT(1) πŸ’–

okay bestie, welcome to the gpscat page from the GPSD Documentation β€” yes it's a manual page, no it doesn't have to be boring, let's go ✨


🌸 NAME 🌸

gpscat β€” dump the output from a GPS πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

gpscat [OPTIONS] file-or-serial-port
gpscat -h
gpscat -V

✨ DESCRIPTION ✨

so gpscat is literally just a simple little program for logging and packetizing GPS data streams. she takes input from a file or a serial device you point her at (the vibe being that there's a GPS attached to it, iykyk) and she reports everything to standard output. she keeps going until the input ends or until you hit her with a ^C or some other interruption. and listen β€” she does not terminate on a bad packet. that's intentional, bestie. that's the whole point. 🫢

in raw mode (which is the default, no cap) gpscat just dumps her input straight to standard output. nonprintable characters that aren't ASCII whitespace get rendered as hexadecimal string escapes. cute, clean, readable.

in packetizing mode, she uses the exact same code as gpsd(8)'s packet sniffer to break the input into packets. packets get reported one per line, and any line breaks inside the packets themselves get escaped. slay.

this program is genuinely useful as a sanity checker when you're examining a new device 🌱. you can use it as a primitive NMEA logger too, BUT β€” and this is the important part, don't skip it β€” beware that:

  • (a) interrupting it is likely to cut off output in mid-sentence 😭 and
  • (b) to avoid displaying incomplete NMEA sentences right up next to shell prompts that often contain a $, raw mode always emits an extra final linefeed.

also be aware, fr fr: packetizing mode will produce useless results β€” probably consuming the entirety of input and appearing to hang β€” if it gets fed data that isn't a sequence of packets of one of the known types. πŸ’€


πŸŽ€ OPTIONS πŸŽ€

the program accepts the following options:

  • -?, -h, --help β€” display program usage and exit. that's it, that's the whole thing πŸ’…
  • -D LVL, --debug LVL β€” in packetizer mode, enable progress messages from the packet getter. probably only of interest to developers testing packet getter changes. higher arguments to -D produce more output. πŸ”
  • -p, --packetizer β€” invoke packetizer mode. ✨
  • -s SPEED, --speed SPEED β€” set the port's baud rate (and optionally its parity and stop bits) to SPEED before reading. the argument should begin with one of the normal integer baud rates (300, 1200, 4800, 9600, 19200, 38400, etc.). it may be followed by an optional suffix [NOE][12] to set parity (None, Odd, Even) and stop bits (1 or 2). specifying -s 4800N1 is frequently helpful with unknown devices β€” that combo is iconic, honestly πŸ‘‘
  • -t, --typeflag β€” invoke packetizer mode, with the packet type and length (in parentheses) reported before a colon and space on each line. so like, extra context on every line, we love a labeled queen 🏷️
  • -V, --version β€” display program version and exit. 🌈

πŸ’œ RETURN VALUES πŸ’œ

  • 0 β€” on success ✨
  • 1 β€” on failure 😭

🌈 SEE ALSO 🌈

gpsd(8), gps(1), gpsfake(1). cgps(1)


🧚 RESOURCES 🧚

project web site: https://gpsd.io/ 🌐


πŸ“ COPYING πŸ“

this file is Copyright 2013 by the GPSD project.

SPDX-License-Identifier: BSD-2-clause


⭐ AUTHOR ⭐

Eric S. Raymond πŸ‘‘


and that's the whole page, bestie!! this was GPSD Version 3.27.5, dated 2025-11-04, and she ate πŸ’…βœ¨ go read your GPS data, you main character 🫢