Skip to content

UserRmM/ntrip-checker-pro

Repository files navigation

NTRIP Checker PRO v5.3

A professional GNSS NTRIP client application for monitoring and analyzing NTRIP caster streams. Built with PyQt6, provides real-time data visualization, RTCM message statistics, interactive mapping with RTK coverage visualization, automatic mountpoint discovery, desktop alerts, and CSV export capabilities.

Features

Multi-Caster Management — Add, edit, and remove multiple NTRIP casters
Sourcetable Browser — Automatically discover and add mountpoints from any NTRIP caster
Desktop Alerts — Configurable notifications for connection status, low data rate, and low satellites
System Tray Integration — Minimize to tray with context menu and quick access
CSV Export — Export casters, messages, satellites, map data, or all data to CSV files
Real-Time Monitoring — Live byte rate (B/s) and uptime tracking
Satellite Tracking — Real-time GNSS constellation monitoring (GPS, GLONASS, Galileo, BeiDou, QZSS, SBAS)
RTCM Message Analysis — Parse and visualize RTCM message types with constellation-colored MSM messages
Interactive Mapping — Leaflet-based map with real-time updates and 20 km RTK coverage circles
Detail Panels — Context-sensitive panels on all tabs showing real-time statistics
Real-Time Map Popups — Auto-updating popups showing live status, data rate, satellites, and RTCM messages
Smart Reconnect — Intelligent reconnection logic distinguishing network issues from mount point problems
Dark Theme UI — Modern dark interface with excellent contrast and readability
Data Persistence — Caster configurations and user preferences saved to JSON
User-Controlled Connections — Manual connect/disconnect with smart reconnect for network issues only
Logging — Console and rotating file logging for debugging
Cross-Platform — Windows, Linux, Raspberry Pi support

Screenshots

Casters Tab

View all connected NTRIP streams with status, data rates, and uptime.

Casters Tab

Messages Tab

Real-time RTCM message statistics with constellation-colored donut chart.

Messages Tab

Satellites Tab

Live satellite constellation tracking with interactive donut chart and color-coded cards.

Satellites Tab

Map Tab

Geographic visualization of caster locations with detailed popups.

Map Tab

Sourcetable Tab

Browse and automatically add mountpoints from NTRIP casters with location data.

Sourcetable Tab

Requirements

  • Python 3.8+
  • PyQt6 (GUI framework)
  • PyQt6-WebEngine (Interactive map display)
  • pyrtcm (RTCM message parsing)
  • qt-material (Modern dark theme)

See requirements.txt for full dependency list.

Installation

Quick Install (Recommended)

Linux / Raspberry Pi:

git clone https://github.com/UserRmM/ntrip-checker-pro.git
cd ntrip-checker-pro
chmod +x install.sh
./install.sh

Windows:

git clone https://github.com/UserRmM/ntrip-checker-pro.git
cd ntrip-checker-pro
.\install.ps1

The installer will:

  • ✅ Install all dependencies automatically
  • ✅ Create desktop shortcuts and application menu entries
  • ✅ Set up virtual environment (Linux/Raspberry Pi)
  • ✅ Optionally enable autostart on boot

Manual Installation

See INSTALL.md for detailed manual installation instructions for all platforms.

Quick Start

  1. Launch the application

  2. Add a Caster (two methods):

    Method A: Manual Entry

    • Click "+ Add caster"
    • Enter NTRIP server details (Host, Port, Mountpoint, Username, Password)
    • Optionally add Location (Lat/Lon/Alt) for map display
    • Click "Save"

    Method B: Sourcetable Browser (Recommended)

    • Go to the Sourcetable tab
    • Enter caster host, port, and credentials
    • Click "Fetch Mountpoints"
    • Browse available mountpoints with locations
    • Select one or more mountpoints
    • Click "Add Selected to Casters"
    • Coordinates are automatically added from sourcetable
  3. Monitor:

    • View live connection status and data rates on the Casters tab
    • Switch to Messages tab to see RTCM message statistics
    • Use the Satellites tab to track GNSS constellations
    • Use the Map tab to visualize caster locations
  4. Sync Selection:

    • Select a caster in Messages tab — the Map and Satellites tabs auto-sync

Configuration

Caster Storage

All casters are saved in casters.json in the application directory:

[
  {
    "name": "Station Name",
    "host": "caster.example.com",
    "port": 2101,
    "mount": "MOUNT_POINT",
    "user": "username",
    "password": "password",
    "lat": 60.1234,
    "lon": 25.5678,
    "alt": 50.0
  }
]

Custom Casters File Location (Optional)

You can override the default casters.json location using the NTRIP_CASTERS_PATH environment variable:

Windows (PowerShell - Permanent):

[System.Environment]::SetEnvironmentVariable('NTRIP_CASTERS_PATH', 'D:\Path\To\Your\casters.json', 'User')

Windows (PowerShell - Temporary):

$env:NTRIP_CASTERS_PATH = "D:\Path\To\Your\casters.json"
python ntrip_checker_pro_v5_2.py

Linux/Mac:

export NTRIP_CASTERS_PATH="/path/to/your/casters.json"
python ntrip_checker_pro_v5_2.py

Use Cases:

  • Keep personal caster configurations separate from the repository
  • Share casters between multiple installations
  • Use different configurations for testing vs production

Logging

Logs are written to:

  • Console (INFO level)
  • ntrip_checker.log (INFO level, rotating: 5 MB per file, up to 3 backups)

Troubleshooting

Connection Issues

  • Verify NTRIP server address and port
  • Check firewall/network connectivity
  • Review logs in ntrip_checker.log

UI Rendering Issues

  • Ensure PyQt6 is properly installed: pip install --upgrade PyQt6
  • On Linux, may need X11 forwarding for remote display

RTCM Parsing

  • Some incomplete message fragments are silently skipped (expected behavior)
  • Check log for parser exceptions

Development

Code Structure

  • NTRIPClient: Threading-based NTRIP connection handler with auto-reconnect
  • NTRIPCheckerPro: Main GUI class, handles UI and data aggregation
  • Signals: PyQt signals for thread-safe GUI updates
  • Helper Functions: Color mapping, SVG chart generation, time formatting

Threading Model

  • Each NTRIP caster runs in a daemon thread (non-blocking)
  • Data parsing happens in the main GUI thread (thread-safe)
  • Per-caster buffering with locks ensures concurrent access safety

Future Enhancements

  • Configuration profiles (save/load multiple setups)
  • Export statistics to CSV/JSON
  • Web-based dashboard (Flask backend)
  • Alerts for connection loss / data anomalies
  • DGPS/RTK solution visualization

License

MIT License — See LICENSE file for details.

Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push and open a Pull Request

Support

For issues, questions, or suggestions, please open a GitHub Issue.

Changelog

See CHANGELOG.md for version history and updates.


Version: 5.1
Last Updated: December 2025

About

GNSS NTRIP Client with PyQt6 GUI

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors