The v1.5 release focuses on documentation, and major enhancements to the high-fidelity propagation engine. This version introduces automated settings migration from original HamClock, a comprehensive in-app help system with audited wiki synchronization, 6m band support for VOACAP modeling, and significant startup performance optimizations for low-power hardware and Windows desktop environments.
Highlights
Seamless EEPROM Migration
Transitioning from the original HamClock is now automatic.
- Auto-Import: On the first launch, HamClock-Next detects existing settings from
~/.hamclock/eeprom. - Identity & Cluster: Automatically migrates your Callsign, Grid, Lat/Lon, and DX Cluster credentials into the new JSON-based configuration.
Startup Performance (3x Faster)
We've overhauled the application boot sequence to minimize latency.
- Metadata-Only Cache: The startup thread now only reads essential cache metadata; data bodies are loaded lazily in the background.
- Background Initialization: Core services now initialize in parallel, reducing warm-start time on RPi3B from ~2.5s to under 700ms.
- Windows Optimization: Significant speed improvements for Windows users by reducing synchronous file I/O operations.
Comprehensive Documentation
A massive effort was made to ensure HamClock-Next is the best-documented version of HamClock ever.
- In-App Help (
?): Pressing?(Shift+/) opens a scrollable help panel showing all keyboard shortcuts, mouse controls, and a directory of all 64 widgets. - Quick Start Guide: A new 2-page PDF (
docs/HamClock-Next-QuickStart.pdf) provides a high-level overview for new users. - Wiki Synchronization: The entire Wiki has been audited, filling 10 documentation gaps across 7 pages and ensuring all 64 widgets are correctly described.
- REST API Reference: Documentation expanded from ~60 to ~100 endpoints, covering alerts, sensors, LAN hub mode, and performance diagnostics.
- PDF User Manual: Improved LaTeX-based manual generation with robust icon support and optimized layouts for offline reading.
DX Cluster & Spotting Enhancements
The DX Cluster engine has been hardened and refined.
- Age Filtering: Added a user-selectable "Max Age" filter (10, 20, 40, 60 min) to clean up stale spots.
- Duplicate Hiding: Optional "Hide Duplicates" toggle (one per call/band) to reduce clutter during pileups.
- SQLite3 Hardening: Fixed a critical crash on Windows/WASM related to NULL column handling in the persistent spot database.
- Windows Connectivity: Resolved a 2-second telnet disconnect issue on Windows by switching to non-blocking socket I/O.
- Auto-Band-Switch: Selecting a spot in the DX Cluster, "On The Air", or clicking a band in "Live Spots" now automatically updates the active propagation overlay to match that band.
- Smart Map Selection: Clicking near a "Live Spot" marker on the map now automatically snaps to that spot, populating the DX callsign and frequency instead of just a generic coordinate.
- Interactive DX Peditions: Clicking an expedition row in the DX Peditions panel now automatically sets the map's DX location to that expedition, facilitating quick target switching.
VOACAP Propagation Upgrades
High-fidelity propagation modeling is now more comprehensive and interactive.
- 6m Band Support: Added the 50 MHz band to the Point-to-Point reliability matrix and De-Dx panel, matching the map overlay capabilities.
- Active Band Cursor: A new horizontal white line in the De-Dx panel highlights the band matching your currently selected DX spot.
- Improved Legend: Enhanced heatmap legends with centered labels for better readability.
New Features & Enhancements
User Interface & Experience
- K-Mode Labels: Hovering over a widget in K-mode now shows the widget's full description as a secondary blue tooltip.
- Setup Screen URL: Headless users can now see their local IP and control URL (e.g.,
http://192.168.1.100:8080) directly on the initial setup screen. - Live View Redesign: The unreliable embedded Live View tab in the configuration page has been replaced with a direct link to
/live, which opens in a new browser tab for better stability. - In-App Updates: Integrated automatic update download and installation capability.
Administrative & Build
- RPM & DEB Packaging: Improved installation scripts and spec files to correctly identify the build variant and installation type.
- Thread-Safe REST API: The
set_paneAPI now uses a command queue to ensure layout changes are applied on the main render thread, preventing race conditions and texture crashes. - Network Resilience: Added
waitForCacheLoadto ensure all cached data is available before the UI starts requesting it, fixing "empty widget" issues on cold boots. - CI Hardening: New manual AddressSanitizer and UndefinedBehaviorSanitizer workflows to ensure long-term memory safety and stability.
Full Changelog
Added
- EEPROM Migrator: Automatic settings import from
~/.hamclock/eeprom. - In-App Help Panel: Accessible via the
?key. - DX Cluster Age Filter: Radio buttons in DX Cluster settings for 10/20/40/60 min caps.
- DX Cluster Duplicate Hiding: Option to show only the most recent spot per station/band.
- Automatic Update Downloader: In-app support for downloading new releases.
- Setup Screen URL: Prominent display of the local control URL for headless users.
- PDF Quick Start Guide: High-level 2-page reference in
docs/. - Propagation Auto-Band-Switch: Automatic overlay synchronization when selecting spots or band cells.
- 6m Band in VOACAP: Added 50 MHz support to path reliability calculations and the De-Dx panel.
- Map Snap-to-Spot: Automatic callsign/frequency population when clicking live spots or DX expeditions on the map.
- DX Peditions Set-DX: Instant DX location targeting by clicking rows in the DX Peditions panel.
- VOACAP Band Cursor: Visual indicator for the band matching the active DX selection.
- Sanitizer Workflows: ASan/UBSan CI tasks for developer verification.
Changed
- Startup Sequence: Moved cache loading and service initialization to background threads.
- Live View: Moved from a configuration tab to a standalone
/liveendpoint. - Wiki Audit: Updated all 64 widget descriptions and category counts (10 gaps filled across 7 pages).
- REST API Coverage: Expanded documentation from 60 to ~100 endpoints.
- PDF Manual Engine: Switched to LuaLaTeX for improved symbol and URL handling.
- VOACAP Legend: Centered labels under color boxes for improved clarity.
- DX Cluster Telnet: Switched to non-blocking I/O with
select()for better cross-platform stability. - DX Cluster Age Labels: Clarified "min" units and adjusted spacing in settings.
Fixed
- DX Cluster Crash: Added NULL guards for
sqlite3_column_text()results (Windows/WASM fix). - Windows Telnet Timeout: Fixed TCP RST issue caused by
SO_RCVTIMEOduring handshakes. - DX Cluster Age Display: Fixed "0m" age bug by improving 'Z' timestamp parsing.
- API Race Condition: Queued
set_panecommands to the main thread to prevent GPU texture crashes. - Moon/Cache Race: Added condition variable to ensure cache is loaded before providers start.
- Screenshot Geometry: Fixed coordinate scaling for automated Wiki captures on non-standard resolutions.
- RPM Spec: Corrected
HAMCLOCK_INSTALL_TYPEin deployment scripts. - K-Mode Labels: Improved contrast and coverage for widget highlights.
- Shutdown Race Conditions: Hardened destructor sequences for network-bound services (FccProvider, RigService).
- WASM Build: Fixed build failures related to UpdateChecker and WebServer guards.
- ARM Build Scripts: Improved cross-compilation reliability for ARM64 and ARMHF.