Skip to content

SkyTraqGit/skytraq-parser-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

skytraq-parser-api — GNSS Stream Parser

Build License: MIT Platform

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.


Features

  • 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 -a flag for pure-ASCII output on legacy terminals

Supported Messages

SkyTraq Binary (AN0039 — Raw Measurement Data Extension)

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

NMEA 0183

GGA, GLL, GSA, GSV, RMC, VTG, ZDA, THS, HDT

Proprietary $PSTI (SkyTraq)

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)

RTCM 3.3

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

Installation

From source — Linux

git clone https://github.com/SkyTraqGit/skytraq-parser-api.git
cd skytraq-parser-api
make

From source — Windows MSYS2 (UCRT64)

# 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
make

Pre-built binaries

Each push triggers GitHub Actions to build for Linux and Windows. Download the latest artifact from the Actions tab.


Usage

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).

Examples

# 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

Output colours

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)

Project Layout

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

Contributing

Pull requests are welcome. Please ensure:

  1. Code compiles cleanly with -Wall -Wextra on both Linux GCC and MSYS2 UCRT64
  2. New message decoders include a brief test sentence or frame in the PR description
  3. Public API additions are documented in gnss_parser.h

License

MIT — © 2026 SkyTraq Technology, Inc.


References

  • SkyTraq AN0039 — Binary Messages: Raw Measurement Data Extension
  • SkyTraq PX1170AS / PX1120R / PX1125R datasheets — $PSTI proprietary sentences
  • RTCM Standard 10403.3 — Differential GNSS (Global Navigation Satellite Systems) Services
  • NMEA 0183 v4.x sentence specifications

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors