Real-time HF propagation and DX monitor for amateur radio operators — Windows 10/11
v5.0 · May 2026 · PA3FVD / Frank van Dijke · Developed with Claude AI (Anthropic)
## Overview
HF Propagation & Atmosphere Monitor gives amateur radio operators real-time insight into HF propagation conditions, solar weather, DX cluster activity, shortwave schedules, satellite tracking, lightning detection, and direct radio control — all in a modern, fully customisable dark-theme GUI built with PySide6/Qt6.
| Category | Description |
|---|---|
| ☀ Solar / Ionosphere | SFI, SSN, Kp, A-index, Bz, solar wind, X-ray class — colour-coded with full parameter names |
| 📶 HF Band Reliability | Signal quality bars for 11 HF bands (160m–6m), MUF/LUF, click to tune via CAT |
| 📻 Band Conditions | Day/night conditions per band, 24h opening schedule heatmap |
| 🌩 Storm Forecast | NOAA 3-day geomagnetic storm probability (G1–G4+) with HAM radio impact tooltips |
| 📈 Band / Solar History | 90-day CSV archive, interactive 24h/7d/30d/1y range selector, K-index overlay |
| 📡 Live DX Spots | Real-time DX cluster from DXWatch.com, band/continent filter, heatmap |
| 💡 Propagation Advice | AI-style analysis cards per band |
| 🌍 World Map | 4096×2048 map with toggleable overlays — auto-downloaded at first start |
| 🛰 Satellite Tracking | TLE from CelesTrak, real-time position, orbit paths, footprint, QTH zone ping |
| ⚡ Lightning Detection | Live Blitzortung.org feed, animated ripple rings, QRN advice, proximity alert |
| 🔔 Alerts | Aggregated solar / propagation / weather / satellite alerts |
| 📻 EIBI Shortwave | Searchable schedule, auto AM-mode CAT tuning |
| 📡 FT8 / Digital | Reference table for FT8/FT4/WSPR/JS8Call and more |
| 🕵 SpyStations | Numbers stations database with CAT tuning |
| 📟 CAT Interface | Yaesu, Kenwood/Elecraft, Icom CI-V — live frequency display in header |
Toggleable via the 🗺 Overlays button in the header:
- Day/night terminator with grayline band
- Aurora oval (IGRF-2025 geomagnetic dipole model, K-index based)
- Sun and Moon position with live phase icon and QTH horizon indicator (▲/▼)
- Maidenhead locator grid (configurable font size)
- Graticule (configurable 10° / 20° / 30° step)
- Live DX spots with callsign labels
- Satellite positions, orbit paths, footprints
- Lightning strikes with animated ripple rings
- Alert radius circles (warning + beep threshold)
- Download HAMIOS5.exe from the latest release
- Place in an empty folder
- Run — the world map is automatically downloaded on first start (~1–4 MB)
git clone https://github.com/fvdijke/HAMIOS.git
cd HAMIOS
pip install PySide6
pip install pyserial websocket-client # optional
python HAMIOS5.py| Package | Required | Purpose |
|---|---|---|
| PySide6 | ✅ Yes | GUI framework (Qt6) |
| pyserial | Optional | CAT radio interface |
| websocket-client | Optional | Live lightning detection |
All settings are stored in hamios_config.json (auto-created on first run) and applied live without restart:
- Station — callsign, QTH (lat/lon or Maidenhead), mode, power, antenna
- Map — graticule step, Maidenhead / overlay font sizes, sun/moon icon sizes
- Lightning — fade duration, alert radii, animation scale, beep settings
- Alerts — K-index threshold, X-flare alert, satellite zone ping
- CAT — serial port, radio type presets (FT-950, FT-817, TS-590, K3…)
- Layout — save/load named profiles, snap-grid
Configure via ⚙ Settings → CAT. Supports:
- Yaesu FT-950 / 2000 / DX series — 8-digit FA command, default 38400 baud
- Yaesu FT-817 / 857 / 897 — FA command
- Kenwood / Elecraft — 11-digit FA command
- Icom CI-V — binary BCD protocol
Live frequency displayed in the header bar. Click any frequency in the DX, EIBI, FT8, or SpyStations panel to tune directly.
- TLE data from CelesTrak (Amateur, ISS, Weather, CubeSat)
- Real-time position, configurable past/future orbit paths
- Footprint: yellow (QTH outside range) / green (QTH in range)
- Selection filter — show only your selected satellites
- Zone ping — ascending tone when a satellite enters your QTH zone, descending tone on exit
- Live WebSocket feed from Blitzortung.org
- Animated ripple rings: central flash + 2 expanding rings (white → yellow → orange)
- QRN level based on strikes within 2000 km of QTH
- Configurable animation scale in Settings → Lightning
- Header alert + acoustic tick when storms are within threshold distance
HAMIOS/
├── HAMIOS5.py ← Entry point
├── HAMIOS5.spec ← PyInstaller build spec
├── hamios.ico
│
└── hamios5/ ← Python package
├── mainwindow.py ← Main window + panel layout
├── mapview.py ← Hardware-accelerated map (4096×2048)
├── layers.py ← Lightning / Satellite / DX overlay layers
├── panels5.py ← All floating panel widgets
├── charts.py ← NOAA data manager + chart widgets
├── config.py ← AppConfig dataclass (JSON persistence)
├── cat_interface.py ← CAT serial protocol implementation
├── cat_monitor.py ← CAT terminal window
├── settings_dialog.py ← Settings dialog
├── sat_dialog.py ← Satellite tracking dialog
├── spy_dialog.py ← SpyStations dialog
├── eibi_dialog.py ← EIBI shortwave browser
├── ft8_dialog.py ← FT8/digital frequency reference
├── help_dialog.py ← Searchable help
└── theme.py ← Dark theme constants
Auto-created runtime files (not in repository):
| File | Description |
|---|---|
hamios_config.json |
All settings, panel positions, CAT config |
worldmap_eq.jpg |
Standard resolution world map (auto-downloaded) |
worldmap_eq_hires.jpg |
4K world map (auto-downloaded) |
hamios_tle.json |
Satellite TLE data (refreshed from CelesTrak) |
HAMIOS_history.csv |
90-day band reliability history |
| Source | Data |
|---|---|
| NOAA SWPC | Solar data, K-index, Bz, X-ray, storm forecast |
| DXWatch.com | Live DX cluster |
| Blitzortung.org | Worldwide lightning detection (WebSocket) |
| eibispace.de | EIBI shortwave schedules (Eike Bierwirth) |
| CelesTrak | Satellite TLE data (Dr. T.S. Kelso) |
| Wikimedia Commons | NASA Blue Marble world map |
All connections use standard HTTPS/WebSocket. No personal data is transmitted.
Issues and pull requests are welcome. See CONTRIBUTING.md.
© 2026 Frank van Dijke (PA3FVD) · Open-source amateur radio software Developed with Claude AI (Anthropic) · PySide6 · Python 3.10+