"The original HamClock will cease to function in June 2026. OpenHamClock aims to carry on Elwood's legacy with a modern, open-source implementation that the community can maintain and improve together."
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.
 
 
 
 
 
 
accius 8030ef70ff
initial commit
6 days ago
README.md initial commit 6 days ago
config.js initial commit 6 days ago
index.html initial commit 6 days ago
server.py initial commit 6 days ago
setup-pi.sh initial commit 6 days ago

README.md

OpenHamClock

A modern, open-source amateur radio dashboard - spiritual successor to HamClock

In memory of Elwood Downey, WB0OEW, creator of the original HamClock


Overview

OpenHamClock is a web-based kiosk-style application that provides real-time space weather, radio propagation information, and other data useful to amateur radio operators. It's designed to run on any platform with a web browser, with special consideration for Raspberry Pi deployments.

Features

Current Features (v1.0.0)

  • World Map with Day/Night Terminator

    • Real-time gray line display
    • Sun position tracking
    • DE and DX location markers with path visualization
  • Time Displays

    • UTC time (large, prominent display)
    • Local time with date
    • Uptime counter
  • Location Information

    • DE (your location) with Maidenhead grid square
    • DX (target location) with grid square
    • Short path and long path bearing
    • Distance calculation
    • Sunrise/sunset times for both locations
  • Space Weather Panel

    • Solar Flux Index (SFI)
    • Sunspot Number
    • K-Index and A-Index
    • X-Ray flux
    • Overall conditions assessment
  • Band Conditions

    • Visual display for all HF bands
    • Color-coded conditions (Good/Fair/Poor)
    • VHF band status
  • DX Cluster Feed

    • Live spot display (placeholder for API integration)
    • Frequency, callsign, comment, and time
  • POTA Activity

    • Parks on the Air activator tracking
    • Reference, frequency, and mode display

Planned Features (Roadmap)

  • Live API integration for space weather (NOAA, hamqsl.com)
  • Real DX cluster connectivity (Telnet/WebSocket)
  • Live POTA/SOTA API integration
  • Satellite tracking
  • VOACAP propagation predictions
  • Contest calendar integration
  • Hamlib/flrig radio control
  • Rotator control
  • Customizable panel layout
  • Multiple map projections
  • ADIF log file integration
  • RESTful API for external control
  • Touch screen support
  • Alarm/alert system

Installation

Option 1: Direct Browser Use

Simply open index.html in any modern web browser. No server required!

# Clone or download the files
firefox index.html
# or
chromium-browser index.html

Option 2: Raspberry Pi Kiosk Mode

  1. Install Raspberry Pi OS (Desktop version recommended)

  2. Copy OpenHamClock files

    mkdir ~/openhamclock
    cp index.html ~/openhamclock/
    
  3. Run the setup script

    chmod +x setup-pi.sh
    ./setup-pi.sh
    
  4. Manual Kiosk Setup (alternative)

    # Install unclutter to hide mouse cursor
    sudo apt-get install unclutter
    
    # Create autostart entry
    mkdir -p ~/.config/autostart
    cat > ~/.config/autostart/openhamclock.desktop << EOF
    [Desktop Entry]
    Type=Application
    Name=OpenHamClock
    Exec=chromium-browser --kiosk --noerrdialogs --disable-infobars --incognito file:///home/pi/openhamclock/index.html
    EOF
    

Option 3: Local Web Server

For advanced features (future API integrations), run with a local server:

# Python 3
cd openhamclock
python3 -m http.server 8080

# Then open http://localhost:8080

Option 4: Electron Desktop App (Future)

Coming soon: Packaged desktop applications for Windows, macOS, and Linux.

Configuration

Edit the following values in index.html to customize:

// Your callsign
const [callsign, setCallsign] = useState('YOUR_CALL');

// Your location (lat, lon)
const [deLocation, setDeLocation] = useState({ lat: 39.7392, lon: -104.9903 });

// Default DX location
const [dxLocation, setDxLocation] = useState({ lat: 35.6762, lon: 139.6503 });

Future Configuration File

A separate config.js will be provided for easier configuration:

// config.js (coming soon)
export default {
  callsign: 'K0CJH',
  location: {
    lat: 39.7392,
    lon: -104.9903
  },
  theme: 'dark',
  panels: ['clock', 'map', 'weather', 'dx', 'bands'],
  // ... more options
};

Display Resolutions

OpenHamClock is responsive and works at various resolutions:

Resolution Recommended Use
800x480 Small Pi displays, Inovato Quadra
1024x600 7" Pi touchscreens
1280x720 HD ready monitors
1600x960 Recommended for full features
1920x1080 Full HD monitors
2560x1440 Large displays, high detail

API Data Sources (Planned)

Data Source Status
Space Weather NOAA SWPC Planned
Band Conditions hamqsl.com Planned
DX Cluster Various Telnet nodes Planned
POTA pota.app API Planned
SOTA sotawatch.org Planned
Satellites N2YO, CelesTrak Planned

Technical Details

Architecture

  • Frontend: React 18 (single-file, no build required)
  • Styling: CSS-in-JS with CSS variables for theming
  • Maps: SVG-based rendering (no external tiles)
  • Data: Currently static, API integration planned

Browser Support

  • Chrome/Chromium 80+
  • Firefox 75+
  • Safari 13+
  • Edge 80+

Dependencies

None! OpenHamClock loads React and Babel from CDN for simplicity.

For offline/airgapped deployments, download these files:

  • react.production.min.js
  • react-dom.production.min.js
  • babel.min.js

Contributing

Contributions are welcome! Areas where help is needed:

  1. API Integrations - Connect to live data sources
  2. Satellite Tracking - SGP4 propagator implementation
  3. Map Improvements - Better landmass rendering, additional projections
  4. Testing - Various Pi models and display sizes
  5. Documentation - User guides, translations
  6. Design - UI/UX improvements, accessibility

License

MIT License - Free for personal and commercial use.

Acknowledgments

  • Elwood Downey, WB0OEW - Creator of the original HamClock. His work inspired thousands of amateur radio operators worldwide. Rest in peace, OM.
  • Amateur Radio Community - For continued innovation and the spirit of experimentation.

Contact


73 de K0CJH

"The original HamClock will cease to function in June 2026. OpenHamClock aims to carry on Elwood's legacy with a modern, open-source implementation that the community can maintain and improve together."

Powered by TurnKey Linux.