GPSDECODE(1)
π GPSDECODE β the manual page but make it a group chat π
okay so bestie, welcome to gpsdecode from the GPSD docs. yes it's a manpage, yes I made it cute, no I did not drop a single fact. let's go β¨
πΈ NAME πΈ
gpsdecode β decode GPS, RTCM or AIS streams into a readable format π°οΈ
π SYNOPSIS π
gpsdecode [OPTIONS]
gpsdecode -h
gpsdecode -V
π¦ DESCRIPTION π¦
So like, gpsdecode is a batch-mode decoder for NMEA and all the various binary packet formats that hang out with GPS, AIS, and differential-correction services. It takes binary on standard input and produces a JSON dump on standard output. And the JSON? It's literally the exact same format documented by gpsd β same decoding logic, no cap β except this tool has a simpler interface built for batch processing of data files. it's giving "gpsd but low-key".
Every sensor-input format the GPSD project knows about can be decoded by this thing. The roster:
- NMEA
- AIVDM β that's the NMEA-derived sentence format used by AIS, the marine Automatic Identification System, bestie
- RTCM2
- and all supported GPS binary formats, notably including SiRF π
Head over to gpsd(8) for the applicable standards and the known limitations of the decoding logic. iykyk.
Also, you can totally use this tool with nc(1) to snoop on AIS feeds from AIS pooling services, or RTCM feeds from RTCM receivers or NTRIP broadcasters. main character energy fr fr π«Ά
β¨ OPTIONS β¨
-?,-h,--helpβ prints a usage message, then dips out. bye π-c,--jsonβ sets the AIS dump format so fields get separated by an ASCII pipe symbol. Fields come out in the order they occur in the AIS packet. Numerics are not scaled (-ugets forced on, periodt). Strings get unpacked from six-bit to full ASCII.-d,--decodeβ decode packets coming in on standard input, send them to standard output. This is the default behavior, so it's the chill one.-D LVL,--debug LVLβ sets the debug verbosity level to LVL. mostly for troubleshooting, ngl.-e,--encodeβ encode JSON on standard input to JSON on standard output. This one is only useful for regression-testing the JSON dumping and parsing code. niche but valid.-j,--jsonβ sets the output dump format to JSON. this is the default behavior btw, so she's already the moment.-m,--minlengthβ dumps minimum lengths for each packet type in the input (ignoring comment packets). probably only interesting to GSD developers, not gonna lie.-n,--nmeaβ dumps the generated pseudo-NME0183.-s,--split24β reports AIS Type 24 sentence halves separately instead of trying to aggregate them. choose chaos π«Ά-t TYPES,--types TYPESβ a comma-separated list of numeric types. Packets with a numeric AIS, RTCM2, or RTCM3 type get passed through and output only if they match a type in the list. Packets of other kinds β in particular GPS packets β are passed through unconditionally. no filter, no problem.-u,--unsscaledβ suppresses scaling of AIS data to float quantities, and suppresses text expansion of numeric codes. a dump with this option is lossless β¨-v,--verboseβ dumps textual packets to output as they're received on input, immediately preceding the corresponding output. so you see everything as it happens π-V,--versionβ prints the version number, then exits.
π AIS DSV FORMAT π
With the -c or --ais option, dump lines are values of AIS payload fields, pipe-separated, in the order that they occur in the payload.
Spans of fields that express a date get emitted as an ISO8601 timestamp β look for colons and the trailing Z that means Zulu/UTC time, bestie, that Z is doing a lot of work.
The 19-bit group of TDMA status fields found at the end of message types 1-4 gets dumped as a single unsigned integer (in hex, preceded by "0x").
Unused regional-authority fields also get dumped (in hex, preceded by "0x").
Variable-length binary fields get dumped as an integer bit length, followed by a colon, followed by a hex dump. cute little sandwich π₯ͺ
π RETURN VALUES π
0β on success π1β if the action was unknown or the write to the control socket failed π
π₯ SEE ALSO π₯
β 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
okay that's the whole thing bestie, go decode something slay π β¨
This was the GPSD, Version 3.27.5 manual page, dated 2025-11-04 β gpsdecode(1), out π¦π
π¦ where this page comes from
- arch rolling: gpsd 3.27.5-1 Β· BSD
- fedora 44: gpsd-clients 1:3.27.5-3.fc44 Β· BSD-2-Clause
- fedora 44: gpsd-clients 1:3.27.5-5.fc44 Β· BSD-2-Clause
- nixos 26.05: gpsd 3.27.5
- nixpkgs unstable: gpsd 3.27.5
- opensuse-leap 16.0: gpsd-devel 3.27.5-160000.1.1 Β· BSD-3-Clause
- opensuse-leap 16.0: gpsd-devel 3.27.5-160000.1.1 Β· BSD-3-Clause
- opensuse-leap 16.0: gpsd-devel 3.27.5-160000.1.1 Β· BSD-3-Clause
- opensuse-leap 16.0: gpsd-devel 3.27.5-160000.1.1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms