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.
- 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.
FN42orFN42hk). 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.
1500is a sane starting default. - TX delay
- Milliseconds the app waits after PTT before sending tones.
400works 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.
- 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.
- 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.
- 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.)
- Confirm CI-V / baud rate. The defaults usually match — Icom rigs default to
A4at115200; Yaesu rigs have their own conventions. If CAT won't connect, this is the first place to check. - 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.
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:
- Answer a CQ. Tap a
CQrow in the decode list, or tap that station's signal on the waterfall. RTTYAF queues a response and waits for the next TX slot. - 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:
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.
−18 / −09
−06 / −11
−12 / −15
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 →