FT8 Decoder
The mic-based FT8 Decoder has been taken out of the Tools menu while its weak-signal accuracy is refined, so there is no way to open it in the app right now. This page is kept as a reference and will be restored when the tool returns. FT8 itself is still supported — see FT8 Auto-Hunt, which works FT8 through a connected radio on iOS: it uses the radio's own network audio, transmits to complete QSOs itself, and marks spots for you.
The FT8 Decoder listens to FT8 audio through your device's microphone, decodes the 15-second slots, plots a live waterfall spectrogram, and offers a one-tap Log button on eligible direct QSO messages involving your callsign. Place your phone or tablet near your radio's speaker — no audio cable, no WSJT-X, no extra software.
This decoder is a listen-and-log tool: it decodes through your phone's microphone and only ever shows a manual Log button — it never transmits. Auto-Hunt, linked above, is the automatic alternative that transmits for you.
[SCREENSHOT: FT8 Decoder modal with the cycle bar on the left, a top-down waterfall with a frequency ruler above it and a live spectrum trace below it, and a message list with one row showing a "Log" action]
Using the Decoder
The steps below describe the tool as it works when it is available in the Tools menu.
- Expand Getting started if you want the in-app walkthrough.
- If you have multiple microphones, select one from the Mic dropdown.
- Tap Start (the round play button in the bottom-right of the modal).
- Grant microphone permission when prompted.
- Hold your device near your radio's speaker — 6 to 12 inches works well.
The FT8 Decoder needs access to your device's microphone. If you accidentally deny permission, re-enable microphone access for Hamtrax in your browser site settings (web), in Settings > Apps > Hamtrax > Permissions (Android), or in Settings > Hamtrax > Microphone (iOS).
The decoder uses your callsign to figure out which decoded messages are your QSOs. Without a callsign on your profile, the Log button never appears. Set your callsign in Settings > Account > Profile before you start a session.
The 15-second Cycle Bar
FT8 transmits in fixed 15-second windows aligned to UTC. The vertical bar on the left side of the spectrogram tracks where you are in the current slot — its only source of truth is your device's system clock, so it stays correct whether or not the decoder is actively running.
- Even slots (seconds 0–14 and 30–44 of every minute) — the bar fills green from the bottom.
- Odd slots (seconds 15–29 and 45–59) — the bar fills blue from the top.
- The number below the bar counts down the seconds remaining in the current slot.
If your device's clock is off by more than a second or two, your decodes will suffer. FT8 is a tightly timed protocol; sync your system clock before a serious session.
Reading the Waterfall
The center panel is a top-down scrolling waterfall spectrogram, covering 200–3000 Hz — the audio range where FT8 signals appear when your radio is tuned to a standard dial frequency like 14.074 MHz. A frequency ruler runs left to right along the top (500, 1000, 1500, 2000, 2500, 3000 Hz); the waterfall itself scrolls top-down, like a classic SDR waterfall — the top row is "now" and the bottom row is 15 seconds ago.
Below the waterfall, a live spectrum trace plots instantaneous amplitude against the same frequency axis, so you can see signal peaks as a line graph in addition to the color-coded history above it.
At the top edge of the waterfall — where the freshest row enters — the decoder labels every signal from the most recent completed 15-second slot with a small marker and its callsign:
- Green markers + green text mark CQ messages.
- Blue markers + blue text mark direct QSO exchanges between two stations.
These markers refresh with each new slot, so you're always seeing the labels for the most recently decoded batch.
The Decoded Messages List
Below the waterfall, decoded messages are grouped by their 15-second cycle. Each group shows a relative time label, then one row per message:
| Column | What it shows |
|---|---|
| Message | The raw decoded FT8 message text. CQ messages are highlighted green. Click the message text to copy it to your clipboard. |
| Log | A one-tap Log action — but only on eligible direct QSO messages involving your callsign. Tap it to log the contact (see the next section). |
The list keeps the most recent 500 messages and auto-scrolls to follow new decodes when you are already near the bottom. The most recent decode batch is briefly tinted so you can spot new arrivals.
A small Cycles and Decodes counter above the waterfall tracks how many 15-second slots have completed and how many messages have been decoded since you pressed Start.
The Log Button — Where Your Contact Lands and Why
This is the most important part of the decoder to understand. The Log button is the bridge between "the decoder heard something" and "this contact is in my logbook."
When does the Log button appear?
The Log button only appears on a row when both of these are true:
- Your callsign is set on your profile. No callsign, no Log button anywhere — there's nothing for the decoder to match against.
- The decoded message is a direct QSO that involves your callsign. The decoder looks at the first two tokens of the message; if one of them matches your callsign and the other is a different valid callsign, the OTHER callsign becomes the "Log" target. CQ messages never get a Log button — a CQ is a call for any station, not a contact yet.
Portable suffixes are handled. If your stored callsign is K1ABC and the message reads K1ABC/P W9XYZ R-05, the decoder strips your /P for matching purposes, so the Log button still appears and is wired up to log W9XYZ. The OTHER callsign keeps its full form — if W9XYZ/M calls you, the Log button pre-fills W9XYZ/M, not W9XYZ.
Where does the contact get logged?
When you click Log, Hamtrax opens the shared QSO form with the other callsign and FT8 pre-filled. The decoder itself makes only one folder decision: it may bind the form to exactly one resolved live activation. Every unbound case uses the Logbook's normal filing preview instead of a decoder-specific fallback.
Click Log
├─ no profile callsign ────────────────> no Log button
├─ exactly one resolved live activation > activation-bound QSO form
└─ none, several, or dormant ──────────> shared filing preview
├─ program evidence > exact program folder
└─ no program claim > choose/create custom folder
The three outcomes in plain English:
1. No callsign set → no Log button at all
No Log action appears. The decoder has no way to know which messages are yours without a callsign to match against. Set your callsign in your profile, refresh, and the button appears on eligible direct QSO messages.
2. Exactly one resolved live activation → that activation folder
If you're mid-activation and Hamtrax resolves exactly one non-dormant live activation, the Log button binds the form straight to that activation folder. Because the contact lives in an activation folder, the QSO form locks the fields that define that folder:
- Callsign pre-filled to the other station.
- Mode pre-filled to
FT8. - Park reference (e.g.,
US-2325) is locked to the activation's park and shown in the form's Locked fields section. - Date is locked to the activation's date and shown in the form's Locked fields section.
- Folder is seeded from the activation folder and enforced when the contact is saved.
- Equipment (radio and antenna) opens with the app-wide current selection shared by Hunt, Activate, and other new-contact forms.
This uses the same activation-aware logging policy as tapping Add Contact on the activation folder from the Log tab. The park and date locks are the same ones you'll see when editing any contact in an activation folder.
3. No live activation, several live activations, or a dormant open folder → shared filing preview
The decoder deliberately binds to no activation when the answer is ambiguous or stale. It opens the same automatic-filing form as Add Contact in the Logbook. As the callsign lookup and contact details establish what the QSO is, the preview shows the exact destination before you save:
- A contact made from a supported activity location routes to its exact activation destination.
- A contacted station with an explicit supported Hunt reference routes to that program's monthly folder.
- A foreign country/entity can route to the matching monthly DX folder.
- If no program can safely claim the contact, you must choose or create a custom folder.
If the required program folder or historical activation does not exist yet, Hamtrax creates it through the same guarded folder services used by imports. The destination is recomputed from current data when you press Save.
There is no generic monthly Hunting fallback. Hamtrax also does not save the contact somewhere convenient and ask you to move it later.
Why this routing exists
Two principles drive every branch in the tree above:
- The logbook should auto-organize itself. One live activation can be bound directly. Otherwise the shared planner uses the contact's program evidence and creates the exact valid folder when needed.
- The decoder must never guess in a way that could corrupt the logbook. Several live activations, a dormant open folder, or missing program evidence cannot silently become an unrelated monthly Hunt. The form makes the destination visible and blocks Save until a valid destination exists.
The "Auto-Log Contacts" Panel
Above the mic dropdown you'll see a collapsible Auto-Log Contacts panel. It shows the current state (On / Off) on its right edge.
Expand it and you'll find:
- A toggle — "Allow direct logging from decoder?" This is the preference surface for an upcoming behavior that will auto-log QSO messages mentioning your callsign without requiring a Log click on each row. The wiring for the actual auto-log behavior is not yet bound — for now the toggle is the visible commitment that this feature is coming. The Log button (manual click) works either way.
- When the toggle is on, a one-line summary showing whether Log will bind to one live activation or open the shared filing preview.
- When the toggle is on, a "How will filing work?" disclosure that lists every routing rule in priority order, with the current rule highlighted in green and tagged
now. Its safety note explains that Hamtrax previews and rechecks the destination rather than using a generic monthly Hunting fallback.
This panel exists to make the decoder's routing behavior visible before automatic logging is wired up. Manual Log clicks work either way.
What Gets Pre-Filled vs. What You Can Edit
| Field | Pre-filled by the decoder | Editable in the QSO form? |
|---|---|---|
| Callsign | The other operator's callsign from the decoded message (with portable suffix preserved). | Yes |
| Mode | FT8. | Yes |
| Date | Today's date when unbound; the activation's date when bound to one live activation. | Yes in the shared filing form; locked and shown read-only when the contact is bound to a live activation folder. The date participates in the filing preview. |
| Folder | One resolved live activation is pre-bound. Otherwise there is no decoder-owned fallback: the filing preview resolves the exact program folder or requires a custom folder. | The activation destination is enforced. In the shared filing form, Hamtrax shows the planned destination and exposes custom-folder choice only when no program can claim the contact. |
| Park reference | The activation's park when you're in an activation. | Read-only in the form's Locked fields section for activation contacts. |
| Equipment (radio / antenna) | Uses the app-wide current equipment shared with Hunt, Activate, and other new-contact forms. | Yes |
| Time and RST | The normal QSO-form defaults: current UTC time and a 59 sent/received report. | Yes |
| Frequency and comments | Not pre-filled. | Yes — fill these in yourself before saving. |
Tips for Best Results
- Sync your clock. FT8 slots are 15 seconds wide and aligned to UTC. A clock that's a second or two off will measurably hurt decode rates.
- Position the device close to the speaker — 6 to 12 inches, with no fan or rattle between them.
- Tune your radio so FT8 signals fall between roughly 500 and 2500 Hz of audio offset — that puts them squarely in the waterfall's visible range and out of the noisier band edges.
- Don't rely on a single decode. Weak signal modes are noisy. If you see a candidate callsign you don't recognize, wait for a second slot to confirm before logging.
- End your activation when you're done. Multiple live activations are ambiguous, and an abandoned open activation becomes dormant after the app's liveness window. In either case the decoder opens the shared filing preview instead of binding the contact to an activation.
Related Pages
- CW Decoder — the sibling microphone Morse decoder, also currently unavailable in the app.
- Manual Logging — the QSO form the Log button opens into.
- Folders — how activation, program-month, and custom folders are organized.
- Activating — start an activation so the Log button can route contacts straight into the activation folder.