You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openhamclock/CHANGELOG.md

249 lines
9.5 KiB

# Changelog
All notable changes to OpenHamClock will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Planned
- SOTA API integration
- WebSocket DX cluster connection
- Azimuthal equidistant projection option
## [3.9.0] - 2026-02-01
### Added
- **Hybrid Propagation System** - Best-of-both-worlds HF prediction
- Combines ITURHFProp (ITU-R P.533-14) base predictions with real-time ionosonde corrections
- Automatic fallback to built-in calculations when ITURHFProp unavailable
- Configurable via `ITURHFPROP_URL` environment variable
- **ITURHFProp Service** - Deployable microservice for ITU-R P.533-14 predictions
- REST API wrapper around ITURHFProp engine
- Docker/Railway deployable
- Endpoints: `/api/predict`, `/api/predict/hourly`, `/api/bands`, `/api/health`
- **Ionospheric Correction Factor** - Adjusts model predictions based on actual conditions
- Compares expected foF2 (from model) vs actual foF2 (from ionosonde)
- Applies geomagnetic (K-index) penalties
- Reports correction confidence (high/medium/low)
### Changed
- Propagation API now reports hybrid mode status
- Response includes `model` field indicating prediction source
- Added `hybrid` object to propagation response with correction details
### Technical
- New functions: `fetchITURHFPropPrediction()`, `applyHybridCorrection()`, `calculateIonoCorrection()`
- 5-minute cache for ITURHFProp predictions
- Graceful degradation when services unavailable
## [3.8.0] - 2026-01-31
### Added
- **DX Cluster Paths on Map** - Visual lines connecting spotters to DX stations
- Band-specific colors: 160m (red), 80m (orange), 40m (yellow), 20m (green), 15m (cyan), 10m (purple), 6m (magenta)
- Toggle visibility with button in DX Cluster panel
- Click paths to see spot details
- **Hover Highlighting** - Hover over spots in DX list to highlight path on map
- Path turns white and thickens when hovered
- Circle markers pulse on hover
- **Grid Square Extraction** - Parse grid squares from DX cluster comments
- Supports "Grid: XX00xx" format in spot comments
- Shows grid in spot popups on map
- **Callsign Labels on Map** - Optional labels for DX stations and spotters
- Toggle with label button in DX Cluster panel
- **Moon Tracking** - Real-time sublunar point on map
- Shows current moon phase emoji
- Updates position and phase in real-time
### Changed
- Improved DX path rendering with antimeridian crossing support
- Better popup formatting with grid square display
- Enhanced spot filtering works on map paths too
## [3.7.0] - 2026-01-31
### Added
- **DX Spider Proxy Service** - Dedicated server for DX cluster data
- Real-time Telnet connection to DX Spider nodes
- WebSocket distribution to multiple clients
- Grid square parsing from spot comments
- Fallback to HTTP APIs when Telnet unavailable
- **Spotter Location Mapping** - Show where spots originate from
- Circle markers for spotters with callsign popups
- Lines connecting spotter to DX station
- **Map Layer Controls** - Toggle various map overlays
- POTA activators toggle
- DX cluster paths toggle
- Satellite footprints toggle (placeholder)
### Technical
- New `/api/dxcluster-paths` endpoint returns enriched spot data
- Grid-to-coordinate conversion for spotter locations
- Improved caching for DX cluster data
## [3.6.0] - 2026-01-31
### Added
- **Real-Time Ionosonde Data Integration** - Enhanced propagation predictions using actual ionospheric measurements
- Fetches real-time foF2, MUF(3000), hmF2 data from KC2G/GIRO ionosonde network (~100 stations worldwide)
- Inverse distance weighted interpolation for path midpoint ionospheric parameters
- 10-minute data cache with automatic refresh
- New `/api/ionosonde` endpoint to access raw station data
### Changed
- **ITU-R P.533-based MUF Calculation** - More accurate Maximum Usable Frequency estimation
- Uses real foF2 and M(3000)F2 values when available
- Distance-scaled MUF calculation for varying path lengths
- Fallback to solar index estimation when ionosonde data unavailable
- **Improved LUF Calculation** - Better Lowest Usable Frequency (D-layer absorption) model
- Accounts for solar zenith angle, solar flux, and geomagnetic activity
- Day/night variation with proper diurnal profile
- **Enhanced Reliability Algorithm** - ITU-R P.533 inspired reliability calculations
- Optimum Working Frequency (OWF) centered predictions
- Multi-hop path loss consideration
- Polar path and auroral absorption penalties
- Low-band nighttime enhancement
### UI Improvements
- Propagation panel shows MUF and LUF values in MHz
- Data source indicator (📡 ionosonde name vs ⚡ estimated)
- Green dot indicator when using real ionosonde data
- foF2 value displayed when available (replaces SSN in bar view)
- Distance now shown in km (not Kkm)
### Technical
- New `fetchIonosondeData()` function with caching
- `interpolateFoF2()` for spatial interpolation of ionospheric parameters
- `calculateMUF()` and `calculateLUF()` helper functions
- `calculateEnhancedReliability()` with proper diurnal scaling
## [3.3.0] - 2026-01-30
### Added
- **Contest Calendar** - Shows upcoming and active ham radio contests
- Integrates with WA7BNM Contest Calendar API
- Fallback calculation for major recurring contests (CQ WW, ARRL, etc.)
- Weekly mini-contests (CWT, SST, NCCC Sprint)
- Active contest highlighting with blinking indicator
- **Classic Layout** - New layout option inspired by original HamClock
- Side panels for DE/DX info, DX cluster, contests
- Large centered map
- Compact data-dense design
- **Theme System** - Three visual themes
- 🌙 Dark (default) - Modern dark theme with amber/cyan accents
- ☀️ Light - Bright theme for daytime use
- 📟 Legacy - Classic green-on-black CRT style
- **Quick Stats Panel** - Overview of active contests, POTA activators, DX spots
- **4-column modern layout** - Improved data organization
- **Settings persistence** - Theme and layout saved to localStorage
### Changed
- Modern layout now uses 4-column grid for better information density
- Improved DX cluster API with multiple fallback sources
- Settings panel now includes theme and layout selection
## [3.2.0] - 2026-01-30
### Added
- Theme support (dark, light, legacy)
- Layout selection in settings
- Real-time theme preview in settings
## [3.1.0] - 2026-01-30
### Added
- User settings panel with callsign and location configuration
- Grid square entry with automatic lat/lon conversion
- Browser geolocation support ("Use My Current Location")
- Settings saved to localStorage
### Fixed
- DX cluster now uses server proxy only (no CORS errors)
- Improved DX cluster API reliability with multiple sources
## [3.0.0] - 2026-01-30
### Added
- **Real map tiles** via Leaflet.js - no more approximated shapes!
- **8 map styles**: Dark, Satellite, Terrain, Streets, Topo, Ocean, NatGeo, Gray
- **Interactive map** - click anywhere to set DX location
- **Day/night terminator** using Leaflet.Terminator plugin
- **Great circle path** visualization between DE and DX
- **POTA activators** displayed on map with callsigns
- **Express server** with API proxy for CORS-free data fetching
- **Electron desktop app** support for Windows, macOS, Linux
- **Docker support** with multi-stage build
- **Railway deployment** configuration
- **Raspberry Pi setup script** with kiosk mode option
- **Cross-platform install scripts** (Linux, macOS, Windows)
- **GitHub Actions CI/CD** pipeline
### Changed
- Complete rewrite of map rendering using Leaflet.js
- Improved responsive layout for different screen sizes
- Better error handling for API failures
- Cleaner separation of frontend and backend
### Fixed
- CORS issues with external APIs now handled by server proxy
- Map projection accuracy improved
## [2.0.0] - 2026-01-29
### Added
- Live API integrations for NOAA space weather
- POTA API integration for activator spots
- Band conditions from HamQSL (XML parsing)
- DX cluster spot display
- Realistic continent shapes (SVG paths)
- Great circle path calculations
- Interactive map (click to set DX)
### Changed
- Improved space weather display with color coding
- Better visual hierarchy in panels
## [1.0.0] - 2026-01-29
### Added
- Initial release
- World map with day/night terminator
- UTC and local time display
- DE/DX location panels with grid squares
- Short path / Long path bearing calculations
- Distance calculations
- Sunrise/sunset calculations
- Space weather panel (mock data)
- Band conditions panel
- DX cluster panel (mock data)
- POTA activity panel (mock data)
- Responsive grid layout
- Dark theme with amber/green accents
### Acknowledgments
- Created in memory of Elwood Downey, WB0OEW
- Inspired by the original HamClock
---
## Version History Summary
| Version | Date | Highlights |
|---------|------|------------|
| 3.9.0 | 2026-02-01 | Hybrid propagation (ITURHFProp + ionosonde) |
| 3.8.0 | 2026-01-31 | DX paths on map, hover highlights, moon tracking |
| 3.7.0 | 2026-01-31 | DX Spider proxy, spotter locations, map toggles |
| 3.6.0 | 2026-01-31 | Real-time ionosonde data, ITU-R P.533 propagation |
| 3.3.0 | 2026-01-30 | Contest calendar, classic layout, themes |
| 3.2.0 | 2026-01-30 | Theme system (dark/light/legacy) |
| 3.1.0 | 2026-01-30 | User settings, DX cluster fixes |
| 3.0.0 | 2026-01-30 | Real maps, Electron, Docker, Railway |
| 2.0.0 | 2026-01-29 | Live APIs, improved map |
| 1.0.0 | 2026-01-29 | Initial release |
---
*73 de OpenHamClock contributors*

Powered by TurnKey Linux.