New Features & Enhancements
- Widgets & Displays:
- Added RigControlPanel widget for live and interactive CAT control via Hamlib (rigctld).
- Added Solar Impact Timeline widget (
SOLAR_TIMELINE) showing a 3-day Kp forecast. - Added Widget Maximize feature allowing any pane to expand and temporarily fill the map area.
- Added Contest Mode Profile with quick layout swapping and preset capabilities.
- Enhanced GreylineDXPanel with peak countdown timers and near-peak warnings.
- Added geofenced POTA/SOTA distance filters to the ONTAPanel.
- Upgraded CalendarPanel with inline config, state persistence, and a ListPanel visual style with multi-line hover tooltips.
- Added CME arrival countdown support to the SolarStormPanel.
- Audio & TTS:
- Introduced native voice alerts via
fliteTTS for Watchlist, flares, countdowns, and calendar events. - Web API / Endpoints:
- Added several new REST endpoints for system interrogation:
/get_capabilities,/get_config.json,/get_build.txt,/get_env.txt,/get_sensors.txt,/get_stopwatch.txt, and/debug/logswith an in-memory ring buffer. - Extended API controls with pane-specific manipulation using
set_pane solo. - Hardware Integration:
- Added LTR329 photosensor driver via I2C for dynamic, ambient-light automatic dimming.
- Data Integrations:
- WSPR source integrated into the propagation Heatmap engine (powered by
db1.wspr.live). - System Automation:
- Implemented glyph font fallback resolving missing Unicode symbols when custom fonts are in use.
- Complete overhaul of the
capture_wiki_screenshots.shautomation for generating Wiki documentation images.
Bug Fixes
- Added previously missing web configuration handlers (latitude/longitude, audio muting, and font selection).
- Corrected rendering logic producing invisible Moon and SDO panels under light themes (fixing paper background bleed-through).
- Refined TTS behavior: greeting plays only once on startup and voice alerts remain silent when the screen is disabled.
- Fixed 4 dangling-pointer and Use-After-Free (UAF) stability issues inside satellite tracking logic and WebServer teardown routines.
- Addressed thread-safety issues, MJPEG mutex deadlocks, and fixed various GCC false-positive warnings.
- Fixed Heatmap overlays skipping underlying data computations and related persistence bugs.
- Executed an MCP bug-fix pass that resolved ~10 identified issues.
Refactoring & Technical Maintenance
- Architecture Decomposition: Massive cleanup breaking out god-files (
SetupScreen.cpp,main.cpp). - Standardization:
- Replaced raw number parsing with secure, catch-free StringUtils validation functions standardizing all input parsing.
- Extracted common widget background and border boilerplate into a single
Widget::renderChrome()helper across dozens of panels. - Created reusable
ProviderBasestandardizing update intervals and thread lifetimes for networking capabilities. - Added
GraphHelperclass deduplicating time-series graph rendering logic across widgets. - Refactored core time formatting with new
TimeUtilsdate-time formatting standardizations. - Code Hygiene: Cleaned up orphaned code snippets and modernized source code formatting.