Wiki / Using RTTYAF

From first launch
to a logged QSO.

If you've operated RTTY 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 RTTYAF from the GitHub releases page as a free APK. A Google Play build is coming soon. Full install instructions live on the Download page.

The first time you open RTTYAF, 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). RTTYAF will offer to fill it from GPS if location is granted.
Audio frequency
Your transmit audio frequency in Hz, inside the 3 kHz RTTY 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

RTTYAF 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
RTTYAFAndroid
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.). RTTYAF 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 RTTY segments, or punch in a custom frequency from Settings → Radio → Frequency.

No rig? You can still explore.

If you grant the microphone permission, RTTYAF will decode audio from your phone's mic — hold it up to a speaker hooked to any RTTY-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. The demodulator copies Baudot over the air continuously and streams the decoded text into the pane as it arrives. A squelch gate keeps band noise from printing junk, so what you see is real copy.

A few things to know about the Operate screen:

RX text pane
Decoded Baudot scrolls here as it's copied. Idle carriers print RYRY…; real overs read as plain text once you're tuned.
Squelch
An energy gate suppresses printing when no carrier is present, so a quiet or noisy band stays clean instead of spewing random letters.
Mark / space cursors
Two bright lines on the waterfall mark the tones RTTYAF is listening for. Slide the signal's two tones under them for solid copy.
USOS
Unshift-on-space keeps figures and letters straight through a dropped shift character — leave it on for most stations.

5Read the waterfall

The waterfall shows the passband over time with two bright tuning cursors marking the mark and space tones. Line up an incoming signal's two tones under the cursors and the text snaps into copy.

20m · 14.074 MHzLive
050010001500200025003000
MARK 2125 · SPACE 2295Decoded 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 RTTYAF.

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. RTTYAF queues a response and waits for the next TX slot.
  2. Call CQ yourself. Tap the CQ macro to stage a call, then hit TX — RTTYAF keys the rig and sends your CQ, then drops back to receive.

When a station answers, tap their call into the entry field. The macros substitute it automatically — fire the report macro, then the 73 macro, and log the contact. You drive each step, so you're always in control of the exchange.

7Work a station

RTTYAF handles the standard RTTY 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-transmission, tap STOP on the TX strip — RTTYAF drops the carrier cleanly and returns to receive.

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 · RTTY
14:18
−18 / −09
Cloud
W3LPL FM19
Maryland · 20m · RTTY
14:02
−06 / −11
QRZ
JA3YBK PM74
Japan · 15m · RTTY
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. RTTY 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. RTTYAF maps them to TX volume so you don't have to fiddle with the on-screen slider while transmitting.
  • Keep the entry field current when conditions are crowded. Keep the worked station’s call in the entry field so your report and 73 macros always address the right operator.
  • 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 →