1. What you need

A transceiver with a sound-card interface

Any interface that presents itself to iOS as a USB audio device will work: a Digirig, a SignaLink, a radio with a built-in USB CODEC, or a simple isolated audio cable pair. The app detects the interface automatically when you plug it in and switches to it, and switches back if you unplug it.

Looking for information on supported radios and how to configure them? See Connecting to Radios.

Keying

The app has no CAT control and does not key your radio over a serial line. It transmits audio, and your radio needs to key from that audio, using VOX or the "data VOX" setting most modern radios have on their USB audio input. Every transmission begins with a tenth of a second of silence to give the radio time to key up before the signal starts.

An accurate clock

FT8 and FT4 divide time into fixed slots aligned to UTC. If your device clock is off by more than about a fifth of a second, other stations will struggle to decode you and every station you hear will show a suspicious DT value. Leave iOS set to "Set Automatically" under Settings › General › Date & Time. You can check your clock inside the app; see Diagnostics.

Microphone permission

iOS treats your radio's audio input as a microphone. Without that permission the app cannot decode anything.

Keep the app in front. iOS suspends audio processing for apps that go to the background, so Greyline stops decoding and transmitting when you switch to another app or lock the screen. It restarts automatically when you come back. If you are running a long session, turn on Keep Screen On in Settings so the device does not sleep.

2. First-time setup

The first launch walks you through eight short pages. You can skip the optional ones and come back later; everything is also in Settings. There is also an "I'll set up myself" button on the welcome page if you would rather do it all by hand.

StepWhat it asks forRequired?
WelcomeNothingNo
CallsignYour callsign (A–Z, 0–9 and /)Yes, you cannot transmit without one
LocationLocation permission, or a manually typed grid squareYes, a grid is required to transmit
Audio accessMicrophone permissionYes, nothing decodes without it
Lookups & loggingQRZ / HamQTH / Cloudlog credentialsOptional, skippable
Share your spotsPSKReporter and POTA spotting togglesOptional, skippable
Help & resourcesLinks to cabling guides and supportNo
FinishWarns you if the mic or grid is still missingNo

You can re-run the whole flow at any time from Settings › About › Re-run first-time Setup.

Callsign and grid square

Both are mandatory before the app will transmit. The grid rides inside your CQ, and the distance and bearing columns depend on it.

If you enable Use device GPS, the app derives your grid from your position and keeps it current as you move, which is useful when you are operating portable. Turn GPS off and you can type a grid by hand (4 or 6 characters, e.g. DM04 or DM04vk). Typing a grid manually while GPS is on automatically switches GPS off, so a later position fix cannot overwrite what you typed.

3. The screens

The layout adapts to the device.

On iPhone, five tabs across the bottom:

  • Operate: waterfall and band activity, with a collapsible control panel at the bottom.
  • Log: your contacts.
  • Mapping: who is hearing you, who you have heard, and where you have worked.
  • Tune: the antenna-tuning carrier.
  • Settings

The strip at the bottom of the Operate tab is always visible. It shows the slot phase, the countdown, your transmit frequency, the message queued to go out next, and a single action button. Tap the strip to open the full control panel as a sheet; drag it down to dismiss.

On iPad, a sidebar holds the whole control panel plus navigation, and the right-hand pane holds the waterfall and band activity. The button at the top-left of the sidebar collapses it, which is useful in the field: the band activity then fills the screen and grows its own compact timing strip along the top and a control bar along the bottom.

4. Reading the Operate screen

The slot timer

FT8 works in 15-second slots (FT4 in 7.5-second slots) locked to UTC. The progress bar and its label tell you where you are inside the current slot:

LabelColourMeaning
RXGreenReceiving. Signals are arriving.
DECODEBlueEnough of the slot has arrived to decode it. Results appear a second or two later, before the slot ends.
TXRedYou are transmitting.

Decoding starts before the slot boundary on purpose. That head start is what lets the app answer a station on the very next slot rather than waiting a full cycle.

The waterfall

Time flows downward, frequency runs left to right across the FT8 passband (200–3000 Hz). Louder signals move up the colour scale: black, blue, cyan, yellow, red.

  • The white bracket is your transmit frequency. The bright left edge is the frequency itself; the dimmer right edge is 50 Hz higher, the width an FT8 signal actually occupies.
  • The dashed line is the app's suggestion for a clear frequency, recalculated every receive cycle from the noise floor and where signals were just decoded. It changes colour to stay visible against whatever is behind it.
  • Small triangles along the top mark each decoded signal. Yellow means a callsign you have not heard before this session.

Tap or drag horizontally anywhere on the waterfall to move your transmit frequency there. Drag vertically to adjust the display sensitivity: down makes the display more sensitive (weaker signals show), up makes it less. A read-out appears while you drag and the value is remembered.

Adjusting sensitivity by dragging turns off Auto-calibrate Waterfall; setting a frequency by tapping switches frequency handling to Hold. Both are deliberate, because a manual choice should not be overwritten a second later. See Choosing your transmit frequency.

The band activity list

Every packet for the session, oldest at the top, newest at the bottom, scrolling to the newest automatically.

ColumnMeaning
UTCThe slot the message was decoded in, as HHMMSS.
dBSignal-to-noise ratio, in the same terms WSJT-X uses, so the numbers are comparable. Your own transmissions show TX.
DTHow far off the slot boundary the other station's transmission arrived, in seconds. The app subtracts its own audio latency, so what you see is the other station's timing error, not yours. Values within a few tenths are normal.
Freq / HzAudio frequency inside the passband.
MessageThe decoded text. Long compound callsigns scroll gently side to side rather than being cut off.
GridThe remote station's grid, remembered from any earlier message in the session, so it stays filled in during an exchange even when the current message does not carry one.
Dist / BrgGreat-circle distance and bearing from your grid. Shown when the pane is wide enough.
Country / EntityDXCC entity, state or province, and continent, resolved offline.

Tap a column header (UTC, dB, Freq, Call) to sort by it.

Row colours

ColourMeaning
YellowSomething you transmitted.
RedA message addressed to you.
CyanA CQ from a station you have not worked on this band and mode.
GreenA CQ from a station you have already worked on this band and mode. The automatic modes will pass on it.

Green is scoped to the current band and mode, not your whole log: a station worked on 20 m is a genuinely new contact on 40 m, and the colour tells you what Hunter and Gatherer will actually do.

Why a station was passed over

When Hunter or Gatherer is running, it will sometimes leave a station alone. Left unexplained that looks like the app has stopped working, particularly when you are operating unattended and come back to find calls that went unanswered.

A small badge on the message says why:

BadgeWhat it means
WAIT 3mYou tried to work this station and got nowhere, so it is set aside for a few minutes before it is tried again. The number counts down.
SKIPPEDHunter gave up on this station after calling without a reply. It stays set aside until you re-arm Hunter or cancel the exchange.
FILTEREDYour CQ filter excludes this station's kind of call. See CQ filtering.
WORKEDYou have already worked this station on this band and mode.

Badges only appear while an automatic mode is armed, because only then is anything being passed over. Switch to Standard and they disappear.

You will see them on different rows depending on the mode, which follows from what each mode does. Hunter answers other stations' CQs, so its badges are on CQ rows. Gatherer calls CQ and works whoever replies, so its badges are on the replies addressed to you.

WORKED appears in Gatherer only. In Hunter the row is already green, which says the same thing.

A badge is not a fault. It is the app telling you it made a decision on purpose. If you want a station worked anyway, the relevant setting is in Settings › Operations: turn on Allow duplicates in auto modes for WORKED, or change the CQ filter for FILTERED. WAIT and SKIPPED clear on their own, and you can always tap the row to work that station by hand.

Tapping a row

  • Tap a cyan or green CQ to answer it. The app drops out of any automatic mode, sets the correct slot timing, and starts calling that station.
  • Tap a red message addressed to you to pick that exchange back up. The app works out what they sent and replies with whatever comes next in the sequence.

Rows that are neither a CQ nor addressed to you are not tappable, since there is nothing sensible to do with them.

The filter

The funnel button in the navigation bar opens Only show CQ and my exchanges. With it on, the list shows CQ calls, anything addressed to you, and your own transmissions, and hides everything else. This is a display filter only: decoding, logging and the automatic modes carry on exactly as before. A banner along the bottom reminds you it is active; tap it to clear.

You can choose whether this starts on, off, or as you left it under Settings › Display › Only show CQs.

The control panel

Status line

Your callsign and grid on the left; a status pill on the right reading TX (red), RX (green), or Stopped. If it says Stopped, tap it to start the receiver. If microphone access was denied it says so, and tapping takes you to iOS Settings.

Band and frequency

Band picker, transmit frequency read-out, the suggested clear frequency (tap it to adopt it), a frequency slider covering 200–2900 Hz, and the FT8/FT4 selector. These lock during your transmit slot and unlock again on each receive cycle.

POTA panel

See POTA activations.

Mode chips

Standard / Hunter / Gatherer, grouped under "Manual" and "Automatic" brackets. Hunter and Gatherer are greyed out until a callsign and grid are set.

Call CQ on

A dropdown reading Even slots or Odd slots. It decides which half of the cycle your CQ goes out on:

SelectionFT8FT4
Even slots:00 and :30:00, :15, :30, :45
Odd slots:15 and :45:07.5, :22.5, :37.5, :52.5

Even slots is the default, and is what earlier versions always did.

It only applies when you start the contact. When you answer somebody, you transmit on the opposite half of the cycle to them. That is how FT8 works, and it is their choice rather than yours. So if you have chosen Odd slots and then reply to a station calling CQ on odd, you will correctly answer on even. The setting is about your CQ, which is why it is labelled that way.

The dropdown greys out whenever you are armed to transmit, meaning while you are calling CQ, mid-exchange, in Hunter or Gatherer, or sending any message. Stop what you are doing to change it, and the new choice takes effect from your next CQ. This is deliberate: changing halfway through a contact would move your transmissions onto the slot your partner is using, and neither of you would hear the other again.

Your choice is remembered between launches.

Most operators never need to touch this. Reach for it when the half you are on is crowded, or when you have agreed a slot with someone you are trying to work.

The main button

What it does depends on where you are:

It saysTapping it
Call CQStarts calling CQ (Standard mode).
Halt TransmitStops calling CQ.
Abort — working W6ABCAbandons the exchange in progress.
Enable Transmit / Auto TX EnabledArms Hunter, or disarms it back to Standard.
Abort — hunting W6ABCDrops the station Hunter is chasing and goes back to scanning.
Stop Gatherer plus Queue (n)In Gatherer the button splits: stop, or inspect the pile of waiting callers.

Next TX

The exact message that will go out, in the same form the other station will see it. Two details worth knowing:

  • The number in parentheses is how many more copies will be sent after the one currently going out. If it reads W6ABC KB0RB -12 (7), that message is being sent now and will be repeated up to seven more times if the other station does not respond. It counts down with each repeat and disappears when the budget is spent. See Retransmissions.
  • During a transmission the panel shows what is on the air, not what comes next. It flips to the next message when the receive cycle begins. This is intentional: it would otherwise show a message you had not sent yet while the current one still had twelve seconds to play.

The small TX / RX pill in the corner of that panel tells you whether the coming slot is yours to transmit on. While Hunter is scanning it stays on RX, because Hunter sends nothing until it finds a target.

If nothing is queued, the panel shows your CQ message greyed out, a preview of what would go out if you tapped Call CQ.

Custom Message

Expand it to send one message of your own on the next slot boundary, whichever slot that is. It accepts either free text (up to 13 characters) or a standard message such as W6ABC KD9XYZ -09; the field validates by trying to actually encode what you typed, so a legitimate standard message is never rejected for looking too long. Once queued, the button becomes a red X to cancel. A custom message does not appear in the Next TX panel.

RX Level

Your audio input level, labelled QUIET, OK or HOT. Aim for the green band. If it reads HOT, turn the audio down at the radio or interface, because an overdriven input decodes badly. The meter is suppressed during your own transmit slot.

5. Making contacts

The exchange

A standard FT8 contact is four transmissions, alternating slots. Answering a CQ, you send:

W6ABC KB0RB DM04        your grid
W6ABC KB0RB R-12        roger, and your report of their signal
W6ABC KB0RB 73          done

Calling CQ, you send:

CQ KB0RB DM04
W6ABC KB0RB -09         your report of their signal
W6ABC KB0RB RR73        confirmed and finished

Greyline follows this strictly, and like WSJT-X it will not treat a repeated bare signal report as confirmation that the other station heard your roger. Jumping ahead there is how contacts get logged that never actually completed.

Signal reports

The Sent report in your log is the SNR the app measured for their signal. The Rcvd report is the number they sent you, read from their message. Reports are generated automatically; you never type one.

When contacts get logged

  • Answering a CQ: logged when their RR73 arrives, the point at which they have confirmed the contact.
  • Calling CQ: logged when your RR73 goes out for the first time. By then you hold their report and their roger, so the contact is complete from your side, and their 73 simply closes it out. This matters, because an RR73 they never hear would otherwise lose a contact that had in fact been made.

Each contact is logged once, no matter how many times a message is repeated.

6. The three operating modes

The mode chip sits directly above the transmit button, because it changes what that button does. Modes always reset to Standard when the app launches.

Standard (manual)

You decide everything. Tap a CQ to answer it, or tap Call CQ to call. Once an exchange starts, the app sequences it for you and sends the right message at the right moment; you are choosing who to work, not typing messages.

Calling CQ in Standard mode gives up after your configured retransmission limit of unanswered CQs and stops. Anything you tap resets that count.

Hunter (automatic search and pounce)

Hunter watches for CQ calls and answers them one at a time, on its own.

  • It picks the strongest CQ available each cycle.
  • It skips stations already worked on this band and mode, unless Allow duplicates in auto modes is on.
  • It skips stations excluded by the CQ filter.
  • If a station does not answer within the retransmission budget, Hunter gives up and will not call it again for the rest of this Hunter session. Tapping Abort, or turning Hunter off and on again, clears that memory.
  • It logs the contact when its 73 goes out, then returns to scanning.

Each of those skips shows as a badge on the station's row, so you can see why a call went unanswered. See Why a station was passed over.

While Hunter is scanning, Next TX reads Pending Target and the pill stays on RX, because Hunter transmits nothing until it has someone to call.

Gatherer (automatic run)

Gatherer calls CQ continuously and works everyone who answers, in order, without stopping. This is the mode for running a pile-up during an activation or a contest.

  • Callers answering your CQ are collected into a queue, even while you are mid-exchange with someone else, so nobody is lost.
  • Gatherer works the queue one at a time: report, wait for their roger, RR73, log, next caller. When the queue empties it goes back to calling CQ.
  • Unlike Standard, Gatherer's CQ has no retransmission limit and keeps calling. The per-exchange limit still applies.

The queue card

Tap Queue (n) to open it. The station being worked sits at the top marked NEXT; everyone else follows in the order they will be worked. Each row shows the callsign, the operator's name if a lookup service is configured, how long ago you last heard them, the report you will give them, and, on a second line, grid, country and state, distance and bearing, to help you prioritise.

  • Drag a row to move it. A row you move is pinned, so newly-heard callers never displace your placement.
  • Swipe or use the delete control to drop a caller.
  • Gatherer keeps running behind the card; the list updates live.

Call order

A setting with three options: First to reply (first in, first out), Strongest signal, or Furthest distance (callers whose grid you do not know go to the back). Re-hearing a caller already in the queue refreshes their report and timestamp but never re-sorts them.

Stuck partners

Some software repeats a bare signal report forever instead of sending a roger. Rather than burn the whole retransmission budget, Gatherer bails after three of these and moves to the next caller. A station it has bailed on is left alone for five minutes so its next transmission cannot immediately re-engage you.

While that station is set aside, its messages carry a WAIT badge counting down the remaining time, so a caller being passed over is never a mystery. See Why a station was passed over.

Switching modes

Changing mode, band, or FT8/FT4 tears down whatever was in progress cleanly. Changing band or mode also clears the activity list, so what you see always belongs to where you are now.

7. Retransmissions and unfinished contacts

Max retransmissions (Settings › Operations, default 10) is how many times the app will repeat the same message before giving up and returning to idle. It applies to every exchange message in every mode, and to CQ calls in Standard mode.

At ten repeats on FT8 that is up to five minutes of trying: generous for a weak station, and bounded so a dead exchange does not hold the frequency indefinitely.

The number in parentheses beside Next TX is how many copies remain after the one currently going out.

Late replies and the close-out

The contacts most worth saving are the ones that fail on the last step. You send RR73, they never hear it, and your budget runs out. A minute later their R-12 arrives, plainly saying "I never got your RR73."

Greyline keeps those exchanges alive:

  • When an exchange ends without confirmation, the station is remembered for 10 minutes.
  • If that station later transmits in a way that asks for closure, repeating their roger when you owe them an RR73, or repeating their RR73 when you owe them a 73, the app will send the closing message again.
  • It does this only in a slot it would otherwise have spent idle: Standard when nothing else is going on, Hunter while scanning, Gatherer between callers. A close-out never interrupts an exchange in progress, and in Gatherer it takes priority over starting a new caller, since closing beats starting.
  • Attempts are capped at your retransmission limit, once per contact. After that, or after ten minutes, the entry is dropped.
  • Nothing is logged twice. The contact was already written to the log, and a close-out only puts the courtesy message back on the air.

Changing band or mode, or restarting the app, clears all of these, since a close-out fired on the wrong band would be wrong.

You can always do this by hand too: tap the late message in the band activity list and the app picks the exchange up where it left off.

8. Choosing your transmit frequency

Settings › Operations › Frequency Hold governs how your transmit frequency is managed:

ModeBehaviour
Auto Select (default)The suggested clear frequency from each receive cycle is applied automatically. You spread out into quiet spectrum without thinking about it.
Use PartnerPicks a clear frequency when you start a CQ, but moves to match a station you engage.
HoldNever moves on its own. The suggestion is still drawn on the waterfall, but only a tap applies it.

Tapping the waterfall or moving the slider always wins: it sets the frequency and switches Auto Select to Hold, so your choice is not overwritten on the next cycle. The app resets to Auto Select at every launch, since last session's clear frequency is stale.

9. Bands and modes

The band picker sets the audio passband the app expects and the dial frequency it records in your log. You still have to tune your radio to the dial frequency yourself, and the bar above the waterfall shows it, e.g. 20m FT8 · 14.0740 MHz USB. All bands are upper sideband.

The frequencies below are the conventional ones the app uses by default. If you work somewhere else on a band, see Working off the usual frequency further down.

BandFT8FT4
160 m1.840None
80 m3.5733.575
60 m5.3573None
40 m7.0747.0475
30 m10.13610.140
20 m14.07414.080
17 m18.10018.104
15 m21.07421.140
12 m24.91524.919
10 m28.07428.180
6 m50.31350.318
2 m144.174144.170

All frequencies in MHz.

FT4 uses 7.5-second slots and its own dial frequencies. 160 m and 60 m have no FT4 allocation, so those bands disappear from the picker in FT4, and switching to FT4 while on one of them moves you to 20 m.

You can have the app open on a specific band and mode every time, or return to where you left off, using Default Band and Default Mode in Settings.

Working off the usual frequency

Sometimes the conventional dial frequency is not where the activity is. A region has settled on something else, a contest specifies a frequency, or a group has agreed one for the evening.

Tap the band bar above the waterfall to set your own dial frequency for the band you are on.

Type it in either MHz or kHz. 7.071 and 7071 both mean the same thing, so you can enter whichever form your radio displays without converting. When you type kHz the sheet confirms what it will use, e.g. "Will use 7.0710 MHz", so there is no guesswork.

Once set, the band bar turns orange and gains a CUSTOM chip, so you can see at a glance that you are not on the usual frequency. The same chip appears next to the band picker in the control panel, and bands with a custom frequency are marked in the band menu itself, so you can tell before you switch to one.

This matters because that frequency is what the app reports everywhere: the FREQ field of every contact you log, the frequency in your POTA self-spot, and your PSKReporter reception reports. It is also what the live spots map filters on. Setting it correctly is the difference between hunters finding you and hunters looking in the wrong place.

A few details:

  • It is per band and per mode. A custom 40 m frequency for FT8 does not carry over to FT4, because the two use different dial frequencies anyway. Set each one you need.
  • It does not tune your radio. As everywhere else in the app, you still set the dial on the radio yourself. This tells the app what you have done.
  • Reset to default is in the same dialog once a custom frequency is set.
  • The app checks your entry against the widest limits of the band and refuses something well outside them, which catches a mistyped digit such as 7.71 for 7.071. The check applies the same either way you type it, so 7710 is refused just as 7.71 is. It is not checking your licence privileges, and it will not stop you using a frequency that is valid in your country but not in others.

By default, custom frequencies are cleared each time the app starts. This is deliberate: a frequency set for one contest should not quietly follow you into next week's operating and mis-report every contact. If you would rather keep them between sessions, turn off Reset custom frequencies on launch in Settings, and get into the habit of checking the band bar before you transmit.

10. Tuning your antenna

The Tune screen transmits a steady carrier so you can adjust an antenna or tuner.

Set a duration (5 seconds to 2 minutes, or Infinite), then Start Tuning. The screen goes black with a countdown large enough to read from across a field, plus Cancel and Extend buttons. The screen is kept awake while tuning, since you are probably not holding the device.

  • The carrier uses whatever transmit frequency is shown; the screen refreshes the clear- frequency suggestion when you open it so the displayed frequency is the one that will actually be sent.
  • All automatic transmission is suppressed while tuning.
  • Leaving the screen cancels the carrier. The transmitter is never left keyed with no visible countdown or stop button.
  • Tuning works even from a cold start: it will bring the audio up on its own and put it back afterwards.

Be considerate: find a clear frequency before you key up. A tuning carrier on top of someone's QSO is unmistakable.

11. POTA activations

Turn on POTA Activation in the control panel and the app switches your CQ to CQ POTA, scopes your log to the activation, and optionally spots you to the POTA cluster.

Setting the park

Type the reference (US-1234) and the app checks it against pota.app as you type:

IndicatorMeaning
SpinnerChecking.
Green tick plus park nameConfirmed.
Red crossNo park with that reference.
Grey Wi-Fi-slashCould not reach POTA. The reference is accepted anyway and spotting still works.

Tap the location-magnifier button to list parks in your grid square, nearest first. Pick one and the reference fills in for you.

Self-spotting

With Self-spot to POTA enabled (Settings › Spotting, on by default), the app posts to the cluster automatically:

  • when you start calling CQ,
  • when you change band or mode (a QSY spot),
  • every ten minutes while you are running, so your spot stays near the top,
  • and once when the activation ends.

A status line under the park field confirms each spot. Turn the setting off to activate without spotting at all; everything else about the activation still works.

The activation counter

While an activation is running, the log's summary bar grows a This park counter: red below five contacts, yellow from five, green at ten, which is the POTA minimum for a valid activation.

It counts credited contacts, which is not the same as rows in the log. POTA gives one credit per callsign per band per mode per UTC day, so:

  • Working the same station again on another band or mode counts again.
  • Working the same station twice on the same band and mode does not, and the second row is flagged DUP in the log.
  • At 0000Z the counter restarts, because POTA scores each day separately. An activation that runs through midnight needs a fresh ten contacts on the new day.

The automatic modes use the same rule: during an activation they will re-work a station from yesterday, because that is a new credit.

Changing parks

Confirm a different reference while an activation is running and the app treats it as two separate activations. The old one gets a closing spot, a "POTA Ended" divider in the log, and its own export entry; the new one starts fresh. Fixing a typo before you have spotted or logged anything just corrects the reference in place.

If the app is interrupted

iOS cannot tell a deliberate quit from a background kill, so if you relaunch within an hour of an activation that was never closed out, the app asks: "Are you still at US-1234?"

  • Resume picks the activation back up, so contacts keep landing in the same run and the counter continues from where it was.
  • End It closes it out and leaves POTA off.

Activations left open by older sessions are closed out automatically at launch, stamped with their last contact rather than the current time.

Exporting an activation

The log's export menu lists each activation separately, so you can send POTA exactly the contacts for that park and nothing else. Exporting the activation that is still running asks whether this ends it: Export & End Activation closes it out and sends the closing spot, while Export & Keep Activating is just a snapshot.

12. The log

The summary bar

Total, Today, DXCC (unique entities worked), and This park during an activation. New QSO opens a manual entry form.

If you have configured any logbook services, a small legend shows a coloured dot per service, QRZ green and Cloudlog blue, matching the dots in the Upload column.

The table

ColumnNotes
Date / UTCAlways UTC.
CallCarries a DUP badge when the contact shares POTA credit with another contact in the same activation. Both rows of a pair are flagged. A DUP is still a real contact and is exported normally.
Band / Mode
Sent / RcvdSignal reports.
GridTheir grid.
Country / NameResolved from the callsign offline, and enriched from a lookup service if one is configured.
UploadOne dot per configured logbook: filled when that contact has been uploaded there, hollow when it has not. An imported contact shows a download arrow instead, since imports are never uploaded anywhere.

Search filters by callsign, band, country or name.

Dividers

The log grows horizontal dividers to mark events, so you can see at a glance what belongs to what:

  • Exported 42 entries · 12 Aug 2026 14:03Z marks where an export ran. Anything above the line was logged since.
  • POTA Start US-1234 (green) and POTA Ended US-1234 (yellow) mark the boundaries of an activation.

Dividers are hidden while searching.

Exporting

The export menu offers:

  • Export All: the whole log.
  • Export All Since Last: everything logged since the previous export.
  • One entry per POTA activation: scoped exactly to that activation's contacts, with the park reference in the filename. A tick marks activations already exported.

Files are standard ADIF (.adi) and go through the normal iOS share sheet: AirDrop, Mail, Files, whatever you use. The "Exported" divider is only recorded if the share actually completes, so backing out of the share sheet does not leave a phantom mark.

Importing

Import ADIF reads an .adi or .adif file. The result tells you how many contacts were imported and how many were skipped as duplicates, as non-FT8/FT4 modes, or as malformed records. Imported contacts count toward your duplicate checking, since they are your own history of who you have worked, but they are never uploaded to a logbook.

Uploading to a logbook

Configure QRZ and/or Cloudlog in Settings and turn on their auto-log toggles, and each contact uploads in the background as it is logged. Nothing about that ever blocks operating; a failed upload just leaves the contact pending.

The cloud button in the toolbar shows how many contacts are still pending and uploads them on demand. With more than one service configured it becomes a menu so you can upload to one or all.

Selecting contacts

Select enters selection mode, where you can upload, export or delete a group of contacts. Services the selection is already fully uploaded to are omitted from the upload menu. Deletion asks for confirmation and cannot be undone.

Manual entry

New QSO opens a form for contacts made outside the app, pre-filled from your most recent exchange where possible. Callsign and both reports are required; date and time are UTC. The saved contact is enriched with country and lookup data and uploaded to your logbooks just like an automatic one.

13. Mapping

One map, three things it can show. Pick with the dropdown at the top left.

Live Spots

Stations that have reported hearing you on pskreporter.info, for the current band and mode. Refreshed every five minutes automatically; the refresh button forces it. Dots are coloured by the report they gave you: blue weak, green good, orange strong.

Stations Heard

Stations you decoded, coloured the same way, over a window you choose: 5, 15, 30 or 60 minutes, or the whole session. Only stations whose grid the app has seen can be plotted.

Contacts Logged

Every grid in your log, across all bands, coloured by band. A grid worked on several bands fans out into a small cluster as you zoom in. The window here runs over your whole logbook, not just this session.

The map centres on your grid when it opens. Which mode it opens in is a setting: Settings › Display › Default Map View.

14. Settings reference

Station

  • Callsign: required to transmit.
  • Grid Square: required to transmit. Toggle Use device GPS to derive it from your position, or turn GPS off and type it.
  • TX Power (W): optional, and recorded in your log and exports.
  • CQ Addendum: inserts a word into your CQ, choosing from IOTA, POTA, SOTA, DX, QRP, or custom text. Your CQ becomes e.g. CQ POTA KB0RB DM04.

Display

  • Appearance: Dark, Light, or System.
  • Distance Units: Automatic (follows the device), Miles, or Kilometers.
  • Default Map View: which Mapping mode to open in.
  • Only show CQs: the launch state of the band-activity filter, either On, Off, or as you left it.
  • Keep Screen On: stops the device sleeping while the app is open. Recommended for long sessions.
  • Auto-calibrate Waterfall: on by default, tracking the band noise and adjusting the display continuously. Turn it off for a fixed floor you set yourself, either with the slider here or by dragging vertically on the waterfall. Always starts on at launch, since a floor from last night's band conditions is rarely right today.

Operations

  • Frequency Hold: see Choosing your transmit frequency.
  • Default Band and Default Mode: open on a specific band and mode, or return to whatever you last used.
  • Max retransmissions: 1 to 99, default 10.
  • Reset custom frequencies on launch: on by default, clearing any custom dial frequencies each time the app starts. Turn it off to keep them between sessions. See Working off the usual frequency.
  • Allow duplicates in auto modes: off by default, so Hunter and Gatherer skip stations already worked on the current band and mode. The same station on a different band or mode is a new contact and is still worked. Turn on to work duplicates outright.
  • Gatherer Call Order: First to reply, Strongest signal, or Furthest distance.
  • Tune Duration: how long the tuning carrier runs before stopping itself.

Spotting

  • Upload spots to PSKReporter: off by default. Reports the stations you decode to pskreporter.info so they can see who heard them. Requires a callsign and grid, and makes both public.
  • Self-spot to POTA: on by default, posting self-spots while activating. Makes your callsign, grid and frequency public.

CQ Filtering

Controls which CQ calls the automatic modes will engage with, based on the word in the CQ. Manual operating is never filtered.

  • All: respond to any CQ.
  • Exclude: ignore stations calling with the selected words. Useful for staying out of a contest you are not in.
  • Only: engage only stations calling with the selected words. Useful for hunting parks or summits.

Tick the words to match from the standard list, and add your own (up to 4 characters) for contests the app does not know about. Custom entries appear in blue and can be edited or swiped away.

Audio

Shows the current input and output devices and warns while a device change is settling. Plug your interface in and the app finds it; there is nothing to select.

Callsign Lookup & Logging

Three services, three different jobs. All credentials are stored in the device keychain and never leave it except to the service they belong to.

ServiceUsed forNeeds
QRZ Logbook API keyUploading your contacts to your QRZ logbookThe API key from your QRZ logbook settings
QRZ username + passwordLooking up names, QTH and gridsA QRZ XML subscription
HamQTH username + passwordLooking up names, QTH and grids, worldwideA free HamQTH account
Callook.infoUS callsign lookupsNo credentials, used automatically
Cloudlog URL + API keyUploading contacts to Cloudlog or a compatible logbookServer URL, API key, and station profile ID

Lookups are tried in order: QRZ, then HamQTH, then Callook. Each service has a Verify or Test Login button so you can confirm the credentials before you rely on them, and each logbook has its own Auto-Log toggle, which stays disabled until the credentials are filled in.

A note on Cloudlog and POTA: Cloudlog applies the park reference from the station profile you point at, overriding the one in the uploaded contact. If you activate several parks, make sure the station profile matches, or export ADIF for POTA instead.

About

Author and version, plus:

  • CTY Data: the DXCC country file that resolves entities offline, with its release date and a refresh button. Auto-update CTY Data checks weekly in the background. Country data comes from Jim Reisert AD1C's cty.csv.
  • Links to connection and cabling guides, field notes, and e-mail support
  • Re-run first-time Setup
  • Diagnostics and Licenses

15. Diagnostics

Read-only. Nothing here changes how the app behaves; it exists so a problem can be identified from a screenshot.

Device Clock

The offset between your device clock and network time. Anything beyond ±0.2 s is worth fixing in iOS Settings › General › Date & Time. A fast clock shifts your slot alignment and inflates the DT of every station you hear, which looks identical to an audio problem but is not.

Audio Clock

External USB interfaces have their own crystal, so their sample rate is never exactly what they claim. A steady positive deviation means the capture clock runs fast. "Projected drift" is how far your slot alignment would move in an hour. Small values are normal and compensated for.

Timing (DT)

Raw DT is what the decoder sees; compensated DT is what the band activity list shows after subtracting the app's own audio latency. Drift is how much the raw figure has moved since early in the session.

Audio Route

Which devices are actually being used for input and output.

Transmit

Counters for transmissions started and completed. "Never completed" is the number to watch: it counts transmissions whose audio was handed to the system but never reported finishing, which is the signature of a radio's USB CODEC stalling.

Audio Session

Interruption and recovery counters, for diagnosing what happened after a phone call or a Siri activation.

16. Troubleshooting

Nothing is decoding

Check the status pill reads RX, not Stopped. Check the RX Level meter is moving. If it reads QUIET, the audio is not reaching the app: check the cable, the interface, and that iOS granted microphone access. Check you are on the right dial frequency for the band and mode shown above the waterfall, and that your radio is in USB.

I decode fine but nobody answers me

Your radio is probably not keying. Greyline transmits audio only, so VOX or data-VOX must be enabled on the radio. Confirm the yellow rows appear in the band activity list when you transmit, which means the app sent audio, and watch for RF output on the radio.

A camera or screenshot sound went out over the air

In some markets, notably Japan and Korea, the law requires the camera shutter and screenshot sounds to play at all times and they cannot be silenced, muted, or turned down. On those devices the sound is mixed into the audio your phone is sending to the radio, so taking a screenshot during a transmit slot will put that shutter tone on the air.

There is nothing Greyline can do about this, since the sound is generated below the app and is deliberately outside any app's control. Take screenshots during a receive cycle instead: watch the slot timer and capture while it reads RX or DECODE, never TX.

Every station shows a large DT

That is usually your clock, not theirs. Open Diagnostics and check the clock offset.

The waterfall is all one colour

Either the level is far too high, in which case everything reads red and you should turn the audio down at the radio, or the floor is set wrong. Turn Auto-calibrate Waterfall back on, or drag vertically on the waterfall to adjust.

An "Audio Device Disconnected" alert appeared

iOS fell back to the built-in microphone and speaker, usually because the interface was unplugged or lost power. Reconnect it, or choose Use Internal Audio to carry on with the device's own audio.

The app stopped decoding while I was doing something else

Greyline only runs while it is on screen. Come back to it and it restarts. Turn on Keep Screen On so the device does not sleep mid-session.

Hunter keeps skipping a station I want to work

It is either already in your log for this band and mode (the CQ row will be green), excluded by the CQ filter, or it timed out on Hunter earlier in this session. Tap the row to work it manually, since a manual tap ignores every filter.

Gatherer left someone unworked

Check the queue card. Callers already worked on this band and mode, callers excluded by the CQ filter, and callers Gatherer recently bailed on are not queued.

A contact I made is missing from the log

Contacts are logged when the exchange completes from your side. If it stopped earlier than that, use New QSO in the log; the form pre-fills from the most recent exchange.

17. Glossary

Addendum: the optional word after CQ (CQ POTA W6ABC) declaring what you are doing.

Close-out: resending a final RR73 or 73 to a station whose exchange did not confirm, after they ask again.

DT: the difference between when a station's transmission arrived and when the slot started. A measure of their timing accuracy.

Dupe / DUP: a contact that does not earn fresh POTA credit because you already worked that station on the same band, mode and UTC day.

Grid square (Maidenhead locator): a short code for your location, e.g. DM04.

Passband: the 200–3000 Hz range of audio the app listens to and transmits in. Your station's frequency inside it is separate from your dial frequency.

Roger (R-12): a signal report with an acknowledgement attached, meaning "I got your report, and here is mine."

RR73: "received, roger, and 73." The CQ-ing station's confirmation that the contact is complete.

Slot: the fixed 15-second (FT8) or 7.5-second (FT4) transmit window, aligned to UTC. Stations alternate slots; one transmits while the other listens.

SNR: signal-to-noise ratio in dB, reported the way WSJT-X reports it, so the figures are directly comparable with other stations'.

Credits

Greyline FT8 is built by Jon Schulman, KB0RB.

Decoding and encoding use ft8_lib by Peter Backlund (kgoba), MIT licensed. Maps are rendered by MapLibre Native with tiles from OpenFreeMap and data from OpenStreetMap contributors. DXCC country data is cty.csv by Jim Reisert AD1C, with data from Club Log. The FT8 protocol itself is the work of Joe Taylor K1JT and the WSJT-X team.

Questions, bug reports and photos from the field are always welcome at support@greylineft8.com.

73 de KB0RB