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.
✅ 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
View all connected NTRIP streams with status, data rates, and uptime.
Real-time RTCM message statistics with constellation-colored donut chart.
Live satellite constellation tracking with interactive donut chart and color-coded cards.
Geographic visualization of caster locations with detailed popups.
Browse and automatically add mountpoints from NTRIP casters with location data.
- 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.
Linux / Raspberry Pi:
git clone https://github.com/UserRmM/ntrip-checker-pro.git
cd ntrip-checker-pro
chmod +x install.sh
./install.shWindows:
git clone https://github.com/UserRmM/ntrip-checker-pro.git
cd ntrip-checker-pro
.\install.ps1The 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
See INSTALL.md for detailed manual installation instructions for all platforms.
-
Launch the application
-
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
-
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
-
Sync Selection:
- Select a caster in Messages tab — the Map and Satellites tabs auto-sync
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
}
]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.pyLinux/Mac:
export NTRIP_CASTERS_PATH="/path/to/your/casters.json"
python ntrip_checker_pro_v5_2.pyUse Cases:
- Keep personal caster configurations separate from the repository
- Share casters between multiple installations
- Use different configurations for testing vs production
Logs are written to:
- Console (INFO level)
ntrip_checker.log(INFO level, rotating: 5 MB per file, up to 3 backups)
- Verify NTRIP server address and port
- Check firewall/network connectivity
- Review logs in
ntrip_checker.log
- Ensure PyQt6 is properly installed:
pip install --upgrade PyQt6 - On Linux, may need X11 forwarding for remote display
- Some incomplete message fragments are silently skipped (expected behavior)
- Check log for parser exceptions
- 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
- 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
- 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
MIT License — See LICENSE file for details.
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push and open a Pull Request
For issues, questions, or suggestions, please open a GitHub Issue.
See CHANGELOG.md for version history and updates.
Version: 5.1
Last Updated: December 2025




