HFcast is a privacy-first offline-friendly HF propagation forecasting app for amateur radio operators. Absolutely free, no ads, no tracking of any kind.
Pick a place, pick a band, enter your radio settings and get a custom forecast for HF propagation.
HFcast runs two propagation models, both run locally on your device. Both are built on the physics behind VOACAP, the point-to-point model NTIA/ITS has maintained for decades, translated faithfully to Rust.
Truecast, the default, is HFcast's own model. It works from what the ionosphere is doing on a day to day basis, using a daily sunspot figure derived from ionosonde stations, a table of magnetic storms, and an estimate of the height a signal bounces from. Scored day by day against ionosonde measurements since 2015, it was closer than VOACAP on 77% of days, and its average miss was about a fifth smaller.
VOACAP is the classic model, reproduced faithfully down to a few defects in the original, and available in Preferences for anyone who wants to use this traditional reference model. It reports a monthly average, so 4pm on a Tuesday in August will look the same as a 4pm this Thursday in August.
Both models work with no network. Online, Truecast takes a live effective sunspot index and VOACAP takes the current sunspot number; offline, Truecast falls back to a built-in correction for the time of year that still beats the monthly average.
See HFcast engine for more information
Three things reach the network, and only when you are online:
- Today's space weather, from NOAA
- Recent ionosphere measurements, from GIRO
- Place-name search, from Open-Meteo. The app has 4,064 places built in, and only searches online when those turn up little or nothing for what you typed. A grid square or a latitude and longitude is worked out on the phone and never reaches the network.
The forecast itself is computed on the phone. Your station, your antenna and the path you are forecasting are never sent anywhere. The one thing that does leave is a place name you type into the search box, which is covered below.
NOAA, GIRO and Open-Meteo each see your IP if you choose to allow network permission for the app, and Open-Meteo also sees the place name you typed. None of them is told who you are, but an IP address is roughly a location, so it is worth knowing about.
Two ways around it:
- Put the app behind a VPN / Tor
- Deny the app network access altogether. GrapheneOS has a per-app Network toggle, and a local firewall does the same job on stock Android. The forecast still works from the sunspot table and the seasonal correction built into the app, and you can still name a location by grid square or coordinate.
Anyone who unpacks the APK will find this, so it is worth explaining:
classic-assets.eascdn.netis a hostname insideexpo-asset. A standalone build never calls this, so the line cannot run. This is a build tool item that pulls in fonts and images at build time.
Everything else:
- Runs on a de-Googled phone or your old tablet without any Google services
- Developed and tested on GrapheneOS
- Works fully offline by calculating conditions based on historical HF propagation records
- No ads
- No account
- No sign-in
- No tracking
- No data collection
- No phoning home
- No annoying registration
- No mandatory tutorials
- No noisy email spam
- No push notifications
- No spyware
Start with the quick start — about 15 minutes on a machine that already has the toolchain — then the rest of the development guide if you're going to work on the code.
| Part | What it is |
|---|---|
| mobile/ | The application, for Android and the web |
| server/ | The prediction API, for builds that have no engine |
| docs/ | The guides |
The propagation engine itself lives in a separate repository, hfcast-engine; a Rust translation of VOACAP, tested cell by cell against the original Fortran.
Almost everything HFcast knows comes from other people's work. The same list, with links and full licence text, is in the app's About screen.
| What | Whose | Terms |
|---|---|---|
| VOACAP, the propagation model | NTIA/ITS, maintained by Greg Hand | US Government work, not subject to copyright protection in the US |
| voacapl, the Unix port this engine was translated from | J.A. Watson | CC0 |
| The ionospheric coefficient maps | CCIR Reports 322 and 340, published by ITU-R | published for implementers free from copyright assertions |
| The place list searched offline | NTIA/ITS, from the VOACAP distribution | US Government work |
| Coastlines and country borders | Natural Earth | public domain |
| Sunspot numbers and solar indices | NOAA Space Weather Prediction Center | US Government work |
| Measured ionosonde soundings | UMass Lowell Global Ionosphere Radio Observatory | used with attribution |
| Place search, when online | Open-Meteo | CC BY 4.0 |
| The aurora on the launch screen | NASA / Samantha Cristoforetti, ESA | public domain |
| IBM Plex Sans, the typeface | IBM | SIL Open Font License 1.1 |
Three of those are live services the app calls directly, with no key: NOAA and GIRO, at most once every 15 minutes each, and Open-Meteo, only when a searched place isn't in the built-in list.
The Institute for Telecommunication Sciences, NTIA, US Department of Commerce, developed VOACAP. NTIA/ITS and NOAA do not endorse HFcast and are not responsible for what it reports.







