A cross-platform console tool that parses mixed GNSS data streams containing
SkyTraq Binary, NMEA 0183 (including SkyTraq proprietary $PSTI), and
RTCM 3.3 messages — from a serial port or a captured log file.
- Auto-syncs on three protocol headers simultaneously (
0xA0 0xA1,0xD3,$/!) - Cross-platform serial input (Linux
termios, Windows Win32) at any baud rate - Per-message checksum / CRC verification with red flagging on mismatch
- Pass-through of plain ASCII text not matching any protocol
- UTF-8 console output for non-ASCII glyphs (auto-enabled on Windows)
- Optional
-aflag for pure-ASCII output on legacy terminals
| ID | Name |
|---|---|
| 0xB1 | GPS Ephemeris Data |
| 0xDC | Measurement Time |
| 0xDD | Raw Measurements |
| 0xDE | SV and Channel Status |
| 0xDF | Navigation State |
| 0xE0 | GPS Subframe Data |
| 0xE1 | GLONASS String |
| 0xE2 | BeiDou2 D1 Subframe |
| 0xE3 | BeiDou2 D2 Subframe |
| 0xE5 | Extended Raw Measurement v1 |
| 0xE6 | General Subframe Data |
| 0xE7 | GNSS SV and Channel Status |
| 0xE8 | GNSS SV Elevation / Azimuth |
| 0xE9 | Time Stamp Message |
GGA, GLL, GSA, GSV, RMC, VTG, ZDA, THS, HDT
| Sub-ID | Description |
|---|---|
| 005 | Event-triggered Time Stamp (pin-4 trigger) |
| 012 | Authenticated Ephemeris Availability |
| 013 | OSNMA Status (Galileo authentication) |
| 015 | AJAS General Status (anti-jam / anti-spoof) |
| 030 | Recommended Minimum 3D GNSS Data (RTK + ENU velocity) |
| 032 | RTK Baseline Data |
| 033 | RTK RAW Measurement Monitoring (cycle slips) |
| 035 | RTK Baseline Data (Rover Moving Base) |
| MT | Description |
|---|---|
| 1005 | Stationary ARP |
| 1019 | GPS Ephemeris |
| 1020 | GLONASS Ephemeris |
| 1033 | Receiver / Antenna Descriptors |
| 1041 | NavIC / IRNSS Ephemeris |
| 1042 | BeiDou Ephemeris |
| 1046 | Galileo I/NAV Ephemeris |
| 1230 | GLONASS L1/L2 Code-Phase Biases |
| 1074 / 1077 | GPS MSM4 / MSM7 |
| 1084 / 1087 | GLONASS MSM4 / MSM7 |
| 1094 / 1097 | Galileo MSM4 / MSM7 |
| 1104 / 1107 | SBAS MSM4 / MSM7 |
| 1114 / 1117 | QZSS MSM4 / MSM7 |
| 1124 / 1127 | BeiDou MSM4 / MSM7 |
| 1134 / 1137 | NavIC MSM4 / MSM7 |
git clone https://github.com/SkyTraqGit/skytraq-parser-api.git
cd skytraq-parser-api
make# Inside the MSYS2 UCRT64 shell
pacman -S --needed make mingw-w64-ucrt-x86_64-gcc
git clone https://github.com/SkyTraqGit/skytraq-parser-api.git
cd skytraq-parser-api
makeEach push triggers GitHub Actions to build for Linux and Windows. Download the latest artifact from the Actions tab.
gnss_parser [OPTIONS]
-h Show help.
-i <filename> Read from a file instead of a serial port.
-p <port> Serial port (e.g. COM3 or /dev/ttyUSB0).
-b <baudrate> Baud rate (default: 115200).
-a ASCII-only output (replaces non-ASCII glyphs with text).
# Parse a captured log
gnss_parser -i mylog.bin
# Live capture from a SkyTraq receiver on Linux
gnss_parser -p /dev/ttyUSB0 -b 115200
# Live capture on Windows
gnss_parser -p COM3 -b 115200| Colour | Meaning |
|---|---|
| Cyan | SkyTraq Binary message |
| Green | NMEA / $PSTI sentence |
| Magenta | RTCM 3 message |
| White | Plain text pass-through |
| Red | Checksum / CRC error indicator |
| Yellow | Security warning (PSTI 015 spoofing) |
skytraq-parser-api/
├── src/
│ ├── gnss_parser.h # shared types, BitReader API
│ ├── util.c # BitReader, CRC-24Q, NMEA checksum
│ ├── skytraq.c # SkyTraq Binary decoders
│ ├── nmea.c # NMEA + $PSTI decoders
│ ├── rtcm3.c # RTCM 3.3 frame + message decoders
│ └── main.c # stream sync, serial I/O, CLI
├── .github/workflows/ # CI builds (Linux + Windows MSYS2)
├── Makefile
├── LICENSE # MIT
└── README.md
Pull requests are welcome. Please ensure:
- Code compiles cleanly with
-Wall -Wextraon both Linux GCC and MSYS2 UCRT64 - New message decoders include a brief test sentence or frame in the PR description
- Public API additions are documented in
gnss_parser.h
MIT — © 2026 SkyTraq Technology, Inc.
- SkyTraq AN0039 — Binary Messages: Raw Measurement Data Extension
- SkyTraq PX1170AS / PX1120R / PX1125R datasheets —
$PSTIproprietary sentences - RTCM Standard 10403.3 — Differential GNSS (Global Navigation Satellite Systems) Services
- NMEA 0183 v4.x sentence specifications