Wiki / Using FT8AF

From first launch
to a logged QSO.

If you've operated FT8 anywhere — WSJT-X, JTDX, FT8CN — most of this will feel familiar. The map is just rearranged for one hand. Read it straight through the first time; come back to a section when you need it.

1Install & first launch

Grab FT8AF from the GitHub releases page as a free APK, or from Google Play for $3.50 — the apps are identical. Full install instructions live on the Download page.

The first time you open FT8AF, Android will ask for two permissions:

  • USB device access — needed for CAT control and rig audio. Choose Always if you want the app to auto-reconnect when you replug the cable.
  • Microphone — needed if you ever want to decode from the phone's mic instead of a wired radio. You can deny this if you only run USB.

2Set your callsign & grid

Open the Settings tab and fill in the operator card at the top. These two fields drive everything the app transmits, so it's worth getting right before you key up.

Settings · OperatorSaved
CallsignK1AF
Grid squareFN42hk
Power (W)50
AntennaDipole · 20m
Audio frequency1500 Hz
TX delay400 ms
Clock sourceNetwork (NTP)
Settings → Operator. Tap any row to edit. Grid square will offer to fill from GPS if you grant location.
Callsign
Your licensed callsign. Suffix portable indicators with a slash (e.g. K1AF/M) if you're operating mobile or portable.
Grid square
4- or 6-character Maidenhead locator (e.g. FN42 or FN42hk). FT8AF will offer to fill it from GPS if location is granted.
Audio frequency
Your transmit audio frequency in Hz, inside the 3 kHz FT8 segment. 1500 is a sane starting default.
TX delay
Milliseconds the app waits after PTT before sending tones. 400 works for most CAT-controlled rigs.

3Connect your radio

FT8AF talks to your rig over a single USB-C connection — both CAT (frequency, PTT) and audio (RX, TX) ride on the same cable. Modern Android phones connect directly with USB-C; older devices need a USB-OTG adapter. Your phone must support USB host mode.

USB CAT + AudioConnected
FT8AFAndroid
Your rigIC-7300 · FT-891 · IC-705
Mode
DATA-USB
BW
3000 Hz
PTT
CAT
Settings → Radio. One USB-C cable carries CAT control, audio, and PTT.
  1. Plug in. Connect your phone to the rig's USB port. Android will prompt for permission to talk to the device — accept it, and tick Always so the app can reconnect later.
  2. Pick your rig. In Settings → Radio, open the Rig model picker and choose your transceiver (IC-7300, FT-891, IC-705, etc.). FT8AF includes a fix that forces the FT-891 to 3000 Hz bandwidth in DATA-USB — you don't need to set that yourself.
  3. Set control mode to CAT. Under Control, choose CAT. (VOX, RTS, and DTR are available if your setup needs them, but CAT is what you want with a modern HF rig over USB.)
  4. Confirm CI-V / baud rate. The defaults usually match — Icom rigs default to A4 at 115200; Yaesu rigs have their own conventions. If CAT won't connect, this is the first place to check.
  5. Pick a band. Tap the band chip on the Decode tab to switch between 160m–6m FT8 segments, or punch in a custom frequency from Settings → Radio → Frequency.

No rig? You can still explore.

If you grant the microphone permission, FT8AF will decode audio from your phone's mic — hold it up to a speaker hooked to any FT8-active radio and you'll see the same decode list. Useful for learning the UI before you wire up CAT.

4Decode the band

The Decode tab is where you'll spend most of your operating time. Every 15 seconds, at the FT8 period boundary, the app processes the last slot of audio and drops the new decodes into the list. Stations get status pills — New DXCC, Needed, Worked, Confirmed — so the band tells you what to chase at a glance.

FT8AF decode list — Material 3 dark UI showing the Decode tab with filter chips (All 14, CQ Calls 11, New DXCC 4, Needed) and decoded rows for JA1AYO, EA8DH, VK6BMA, and W3LPL, each with status pills, SNR, audio frequency, distance, and country labels.
Decode tab. Each row is a decoded station. Tap a row to make that station your QSO target. Use the chips along the top to filter — All, CQ Calls, New DXCC, Needed.

Each row tells you:

SNR / dB
Signal-to-noise ratio. Values from roughly −24 (barely decodable) to +15 (very strong).
Audio Hz
Where the signal sits inside the 3 kHz segment. Tap a row or signal on the waterfall to make this your TX audio frequency.
Distance
Great-circle distance from your grid to the decoded station, when their grid is known.
Status pill
New DXCC = entity you've never worked. Needed = needed on this band/mode. Worked = QSO complete but not yet confirmed.
↳ To you
Highlighted in cyan when a station is directly answering you. You'll see this during your own QSOs.

5Read the waterfall

The Waterfall tab shows the full 3 kHz FT8 passband over time. Newer audio is at the top, older at the bottom — a thin line marks each FT8 period boundary with a UTC timestamp drawn beside it, so you can read timing at a glance.

20m · 14.074 MHzLive
050010001500200025003000
UTC 14:23:00 · period boundaryDecoded in 64 ms● 14 signals
Waterfall. Vertical streaks are signals; tap one to set your TX audio frequency to that slot. Width chips (Wide / 1.5 kHz / 500 Hz) let you zoom in on a busy segment.

Tap-to-tune. Tap any visible signal in the waterfall to set your TX audio frequency to that slot. The TX marker stays locked to your actual TX audio thanks to the alignment fix in FT8AF.

6Call a station

You have two ways into a QSO:

  1. Answer a CQ. Tap a CQ row in the decode list, or tap that station's signal on the waterfall. FT8AF queues a response and waits for the next TX slot.
  2. Call CQ yourself. Hit the CQ button on the TX strip at the bottom of the screen. Use the TX1 / TX2 toggle to pick which 15-second slot you want to transmit on — the empty one, generally.

Watch the Active QSO monitor panel above the TX strip. It tracks who you're working and what step of the auto-sequence you're at. If multiple stations come back to your CQ, the caller queue keeps the others lined up — you finish the current QSO instead of bouncing to whoever's loudest.

7Run the auto-sequence

FT8AF handles the standard FT8 exchange automatically once you've selected a target. You'll see the panel step through:

Active QSO · EA8DHAuto
Call
TX EA8DH K1AF FN42
Report sent
TX EA8DH K1AF −09
3
Roger report
RX K1AF EA8DH R−06
4
Confirm (RR73)
5
Logged & uploaded
Active QSO monitor. Steps tick off as the exchange progresses. The panel collapses to a single line when there's no active contact.

If you need to bail mid-QSO, tap Stop on the TX strip — the app drops the queue and goes back to listening. The TX1 / TX2 slot toggle lets you flip transmit periods without losing your target.

8Logging & uploads

Every completed QSO is written to the on-device Logbook tab. If you've configured upload services, it also flies up to them the moment the contact closes — no ADIF export, no copying calls by hand at the end of the night.

Logbook · auto-uploadSynced
QRZ
DL7VEE JO62
Germany · 20m · FT8
14:18
−18 / −09
Cloud
W3LPL FM19
Maryland · 20m · FT8
14:02
−06 / −11
QRZ
JA3YBK PM74
Japan · 15m · FT8
13:45
−12 / −15
Logbook. Pill badges show which services accepted each upload. Failed uploads stay visible with a retry indicator until they succeed.

Cloudlog

Open Settings → Cloudlog, paste your Cloudlog URL and API key, and toggle the service on. New QSOs upload automatically. If a contact fails to upload, it stays in the logbook with a retry indicator.

QRZ

Open Settings → QRZ, sign in with your QRZ Logbook API key, and toggle uploads on. Same automatic behavior as Cloudlog.

You can run both at once — most operators do, with Cloudlog as their primary log and QRZ for visibility.

9Field tips

  • Set your clock from the network before each session. FT8 demands accurate timing — Android's automatic time is usually fine; if you're somewhere without signal, sync from GPS or NTP.
  • Use the hardware volume buttons to set TX drive level mid-QSO. FT8AF maps them to TX volume so you don't have to fiddle with the on-screen slider while transmitting.
  • Watch the QSO monitor when conditions are crowded. The caller queue prevents the classic "two stations both think you came back to them" mess.
  • Use the Map tab to spot openings visually — CQ callers get a megaphone marker, so you can see which paths are coming in without scanning the decode list.
  • Star the GitHub repo if you want a nudge when a new release lands. Or grab the Play Store build and updates happen by themselves.

Something not behaving?

Read the next page: it walks you through capturing the debug log so we can actually fix what you ran into. Reporting a bug →