Last Updated: May 2026 · App Version 1.0.0+1
1. Introduction
Welcome to Ham Learning! This Privacy Policy explains how we collect, use, and protect your information when you use our amateur radio study and training application. Ham Learning is developed by A46UNX (Unixeer™) and is designed for aspiring and licensed amateur radio operators who want a rich, offline-capable learning companion.
Privacy Win — Ham Learning Is Offline-First:
Almost everything the app does happens fully on your device with zero network access: exam pools, Q-codes, phonetics, glossary, electronics foundations, calculators, circuit lab, antenna lab, Morse trainer — all bundled at install. The only time the app talks to the internet is when you explicitly tap to refresh exam pools or tap into the WebSDR tab to browse a curated list of public SDR receivers.
2. Information We Collect
2.1 Information Stored Locally on Your Device
Ham Learning stores the following information locally on your device:
- Amateur Radio Callsign (Optional): Your callsign (if you have one yet — not required to use the app)
- Maidenhead Grid (Optional): Your station grid square for reference only
- Email Address (Optional): Used only inside the app for the share features you initiate
- Target License: Your current study goal (Technician / General / Extra for the US pools, or equivalents as added)
- Progress Data: Mock-exam scores and progress trackers, stored locally
- Morse Practice Data: Koch-method step progress, practice timings, session history
- UI Preferences: Dark mode, font scale, TTS voice + rate, Tips & Tricks toggle
- Bundled Reference Content: Exam pools, Q-codes, phonetic alphabet, glossary, electronics foundations, formulas, Morse tables, band charts, modulation codes — all shipped with the app, not uploaded by you
- Exam Pool Cache: When you manually refresh exam pools, the fetched JSON is cached to your app's Documents directory
- Tips & Tricks Deck State: Which tips you've already seen, to shuffle through the 100-tip deck without repeating
2.2 Optional Exam Pool Refresh
Ham Learning ships with bundled US FCC exam pools (Technician, General, Extra). You can manually refresh the pool from Settings to pull any updates. Refresh attempts fetch from:
- Primary: russolsen/ham_radio_question_pool on GitHub (Apache-2.0 license, attributed in the app's license screen)
- Fallback: W5AC-TAMU (Texas A&M Amateur Radio Club) pool mirror
- If both network sources are unreachable, the bundled copy is always available — the app never fails because of a missing network
What is sent during a refresh: Only a standard HTTP GET for the pool JSON file. No user identifier, callsign, or analytics is sent.
2.3 WebSDR Tab
The WebSDR tab embeds a WebView pointing to a curated list of 9 public WebSDR / KiwiSDR receivers. When you pick one, the platform's WebView loads that receiver's web page directly. Ham Learning does not intercept, modify, or record the audio.
- You browse the WebSDR site as if in a regular browser — the site sees standard browser requests from your WebView
- No Ham Learning backend receives the stream
- You can disable the tab or simply not use it if you prefer zero-network operation
See each WebSDR operator's privacy policy for their data handling.
2.4 Microphone Access (Optional)
The Morse tab's Decode feature uses the device microphone to identify CW (Morse) tones from a speaker, key, or practice oscillator. Audio is processed entirely on-device by a Goertzel tone detector — a narrow-band frequency filter implemented in Dart. Ham Learning does not use Apple's Speech framework (SFSpeechRecognizer), Google Speech, or any cloud speech-recognition service. Only the timing of detected tones is fed into the dit/dah decoder.
- Microphone access is requested only when you tap Start in Morse → Decode
- You can deny the permission — Morse Learn, Practice, Send, and Reference all work without it
- If you previously denied access, an inline Open Settings button on the Decode page deep-links to the app's permission screen so you can grant it without hunting through OS Settings
- If microphone access is restricted by device management or parental controls (iOS Screen Time, MDM profiles), Ham Learning explains the cause clearly and offers no retry — the restriction can only be lifted by the administrator
- No audio is ever stored, transmitted, or retained — captured frames are passed directly to the tone detector, then discarded
2.5 Information We Do NOT Collect
Ham Learning does NOT collect, transmit, or store:
- ❌ No analytics, telemetry, or crash-reporting SDKs (no Firebase, Sentry, Crashlytics, Mixpanel, etc.)
- ❌ No usage statistics or behavior tracking
- ❌ No advertising identifiers
- ❌ No location data — your grid is user-typed, never fetched
- ❌ No personal identification beyond what you voluntarily enter
- ❌ No financial information
- ❌ No device identifiers for tracking
- ❌ No data shared with third parties for marketing
- ❌ No cloud-sync of your progress to Ham Learning–operated servers (we run none)
Important: Ham Learning does not include any analytics SDK, advertising framework, or third-party tracking service. You can install the app, disable all network features, and study indefinitely with zero outbound network traffic.
3. How We Use Your Information
3.1 Core Functionality
- Exam Practice: Serve pool questions, track correct / incorrect answers, compute progress
- Q-Codes & Phonetics: Interactive reference with text-to-speech and per-card sharing
- Glossary & Electronics: Searchable learning content
- Morse Trainer: Koch-method progression, paddle practice, live-mic decoding, reference tables
- Calculators & Tools: 11 calculators — Wavelength, Dipole, Vertical, Ohm’s Law, dB, SWR, LC resonance, Coax Loss, RF Exposure, Maidenhead, Beam Heading with compass
- Circuit Lab: RC charge curve, Bode plots — visualize the physics
- Antenna Lab: Vertical / J-pole / Yagi patterns with dB rings and analytical F/B ratio
- References: Amateur band chart (all three ITU regions), modulation codes, phonetic alphabet, online links
- WebSDR Access: One-tap browsing of curated public SDR receivers
- Tips & Tricks: 100-tip deck delivered in small rotating doses
3.2 Data Export and Sharing
You can share individual cards as images (Q-code, phonetic letter, Morse character, calculator result, antenna pattern, lesson excerpt, etc.). Sharing uses your device's share sheet — the app never auto-posts or auto-uploads anything.
4. Third-Party Services
4.1 GitHub (Optional Pool Refresh)
When you tap "Refresh Exam Pools" in Settings, Ham Learning issues a standard HTTP GET to GitHub raw content for the pool JSON. No user identity is sent — GitHub sees only a standard HTTP user-agent request.
4.2 Public WebSDR / KiwiSDR Receivers
The WebSDR tab is a WebView. When you select a receiver, your WebView loads that receiver's web page directly. Those operators have their own privacy practices — refer to each site for details.
4.3 Platform Text-to-Speech
Morse reference and phonetic-alphabet cards use the platform's built-in Text-to-Speech engine (Apple Speech on iOS, Google TTS on Android). The platform TTS may use your device's default voices; Ham Learning sends no identifying data along with the speak request.
5. Location Services
Ham Learning does NOT request or use location services. Your Maidenhead grid is a typed field, saved only for display in the study interface. No GPS, no location permission, no background location tracking.
6. Data Storage and Security
6.1 Local Storage
- App-specific secure storage directory on iOS and Android
- Settings: Platform-native SharedPreferences / NSUserDefaults
- Exam Pool Cache: Application Documents directory
6.2 Data Security
- No credentials are stored — the app has no logins
- No encryption keys or sensitive data are transmitted to Ham Learning servers (we operate none)
- Your data is protected by your device's security features (PIN, fingerprint, Face ID, etc.)
6.3 Backup and Sync
Ham Learning does NOT automatically back up or sync your data to any cloud service. Your study progress is retained locally until you reset it or uninstall the app. Your device's own backup system (iCloud, Google Drive) may include the app's local state if backups are enabled — but Ham Learning itself uploads nothing.
7. Permissions Required
| Permission |
Platform |
Purpose |
| Microphone (Optional) |
All |
Only for Morse → Decode. Audio is processed locally with a Goertzel tone detector to identify CW dits and dahs; nothing is recorded, stored, or transmitted. Apple's Speech framework (SFSpeechRecognizer) is NOT used. |
| Internet (Optional) |
All |
Only for optional pool refresh and the WebSDR tab |
| Storage / Files |
All |
Cache refreshed exam pools and store share card images |
| Photo Library Add |
iOS |
Save shared card images to Photos |
| Wake Lock / Modify Audio |
Android |
Keeps Morse decoder running during practice; adjusts audio stream for tone output |
No location, calendar, contacts, camera, Bluetooth, or background refresh is requested.
8. Children's Privacy
Ham Learning is suitable for all ages. Children under 13 (or the equivalent minimum age in your jurisdiction) may use Ham Learning to study for a future amateur radio license. We do not knowingly collect information from children — the app collects no identifying information at all, optional callsign / grid / email fields are entered voluntarily and stay on the device. If you are a parent or guardian and have questions, please contact us.
9. Your Rights and Choices
9.1 Access Your Data
- View your progress and settings at any time from within the app
- All stored values are visible in the Settings tab
9.2 Modify Your Data
- Edit callsign / grid / email / target license / TTS voice / rate at any time
- Reset progress counters from the Settings page
9.3 Delete Your Data
- Master Reset: Settings → Master Reset wipes every stored value and returns the app to first-run state
- Complete deletion: Uninstall Ham Learning — all locally stored data is removed by the OS
10. International Users
Ham Learning is available worldwide. Your data is processed locally on your device regardless of your location. The app ships US FCC exam pools today; contributions and pools for other jurisdictions are welcome.
11. Changes to This Privacy Policy
We may update this Privacy Policy from time to time. The "Last Updated" date at the top will be revised, significant changes will be communicated through the app or website, and continued use constitutes acceptance of the updated policy. Please review periodically.
12. Data Retention
- Study Progress / Settings: Retained on-device until you reset or uninstall
- Exam Pool Cache: Retained until you refresh or uninstall
- Tips & Tricks Deck State: Retained until you reset
- All data is permanently deleted when you uninstall Ham Learning
13. Compliance and Jurisdiction
Ham Learning is developed in Oman and is intended for learners worldwide. We strive to comply with applicable data-protection laws including GDPR (EU), CCPA (California, USA), and other regional data-protection regulations. Because the app collects no identifying information by default, most obligations are trivially satisfied.
14. Content Attributions
- US FCC Exam Pools: Courtesy of russolsen/ham_radio_question_pool (Apache-2.0 license). Acknowledgement appears in the app's license screen.
- Q-Code & Phonetic Alphabet Data: Public ICAO / ITU spelling alphabet and standard amateur radio Q-codes.
- Band Charts: IARU Region 1 / 2 / 3 band plans.
- WebSDR Receivers: Thanks to University of Twente, KiwiSDR public network, Northern Utah, and the other curated receiver operators.