For version 1.2
Greyline FT8 turns an iPhone or iPad into a complete FT8 and FT4 station. Connect the device to your transceiver with a USB audio interface and the app decodes the band in real time, shows it on a waterfall, works stations for you if you want it to, logs the contacts, and uploads them to your logbook. There is no computer in the chain and nothing to configure on a desktop. Everything happens on the device: decoding, transmitting, logging, POTA spotting, mapping.
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.
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.
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.
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.
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.
| Step | What it asks for | Required? |
|---|---|---|
| Welcome | Nothing | No |
| Callsign | Your callsign (A–Z, 0–9 and /) | Yes, you cannot transmit without one |
| Location | Location permission, or a manually typed grid square | Yes, a grid is required to transmit |
| Audio access | Microphone permission | Yes, nothing decodes without it |
| Lookups & logging | QRZ / HamQTH / Cloudlog credentials | Optional, skippable |
| Share your spots | PSKReporter and POTA spotting toggles | Optional, skippable |
| Help & resources | Links to cabling guides and support | No |
| Finish | Warns you if the mic or grid is still missing | No |
You can re-run the whole flow at any time from Settings › About › Re-run first-time Setup.
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.
The layout adapts to the device.
On iPhone, five tabs across the bottom:
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.
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:
| Label | Colour | Meaning |
|---|---|---|
| RX | Green | Receiving. Signals are arriving. |
| DECODE | Blue | Enough of the slot has arrived to decode it. Results appear a second or two later, before the slot ends. |
| TX | Red | You 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.
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.
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.
Every packet for the session, oldest at the top, newest at the bottom, scrolling to the newest automatically.
| Column | Meaning |
|---|---|
| UTC | The slot the message was decoded in, as HHMMSS. |
| dB | Signal-to-noise ratio, in the same terms WSJT-X uses, so the numbers are comparable. Your own transmissions show TX. |
| DT | How 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 / Hz | Audio frequency inside the passband. |
| Message | The decoded text. Long compound callsigns scroll gently side to side rather than being cut off. |
| Grid | The 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 / Brg | Great-circle distance and bearing from your grid. Shown when the pane is wide enough. |
| Country / Entity | DXCC entity, state or province, and continent, resolved offline. |
Tap a column header (UTC, dB, Freq, Call) to sort by it.
| Colour | Meaning |
|---|---|
| Yellow | Something you transmitted. |
| Red | A message addressed to you. |
| Cyan | A CQ from a station you have not worked on this band and mode. |
| Green | A 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.
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:
| Badge | What it means |
|---|---|
| WAIT 3m | You 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. |
| SKIPPED | Hunter gave up on this station after calling without a reply. It stays set aside until you re-arm Hunter or cancel the exchange. |
| FILTERED | Your CQ filter excludes this station's kind of call. See CQ filtering. |
| WORKED | You 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.
Rows that are neither a CQ nor addressed to you are not tappable, since there is nothing sensible to do with them.
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.
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 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.
See POTA activations.
Standard / Hunter / Gatherer, grouped under "Manual" and "Automatic" brackets. Hunter and Gatherer are greyed out until a callsign and grid are set.
A dropdown reading Even slots or Odd slots. It decides which half of the cycle your CQ goes out on:
| Selection | FT8 | FT4 |
|---|---|---|
| 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.
What it does depends on where you are:
| It says | Tapping it |
|---|---|
| Call CQ | Starts calling CQ (Standard mode). |
| Halt Transmit | Stops calling CQ. |
| Abort — working W6ABC | Abandons the exchange in progress. |
| Enable Transmit / Auto TX Enabled | Arms Hunter, or disarms it back to Standard. |
| Abort — hunting W6ABC | Drops 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. |
The exact message that will go out, in the same form the other station will see it. Two details worth knowing:
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.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.
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.
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.
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.
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.
RR73 arrives, the point at which they have confirmed the contact.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.
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.
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 watches for CQ calls and answers them one at a time, on its own.
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 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.
RR73, log, next caller. When the queue empties it goes back to calling CQ.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.
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.
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.
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.
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.
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:
RR73, or repeating their RR73 when you owe them a 73, the app will send the closing message again.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.
Settings › Operations › Frequency Hold governs how your transmit frequency is managed:
| Mode | Behaviour |
|---|---|
| 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 Partner | Picks a clear frequency when you start a CQ, but moves to match a station you engage. |
| Hold | Never 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.
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.
| Band | FT8 | FT4 |
|---|---|---|
| 160 m | 1.840 | None |
| 80 m | 3.573 | 3.575 |
| 60 m | 5.3573 | None |
| 40 m | 7.074 | 7.0475 |
| 30 m | 10.136 | 10.140 |
| 20 m | 14.074 | 14.080 |
| 17 m | 18.100 | 18.104 |
| 15 m | 21.074 | 21.140 |
| 12 m | 24.915 | 24.919 |
| 10 m | 28.074 | 28.180 |
| 6 m | 50.313 | 50.318 |
| 2 m | 144.174 | 144.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.
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:
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.
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.
Be considerate: find a clear frequency before you key up. A tuning carrier on top of someone's QSO is unmistakable.
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.
Type the reference (US-1234) and the app checks it against pota.app as you type:
| Indicator | Meaning |
|---|---|
| Spinner | Checking. |
| Green tick plus park name | Confirmed. |
| Red cross | No park with that reference. |
| Grey Wi-Fi-slash | Could 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.
With Self-spot to POTA enabled (Settings › Spotting, on by default), the app posts to the cluster automatically:
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.
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:
The automatic modes use the same rule: during an activation they will re-work a station from yesterday, because that is a new credit.
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.
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?"
Activations left open by older sessions are closed out automatically at launch, stamped with their last contact rather than the current time.
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.
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.
| Column | Notes |
|---|---|
| Date / UTC | Always UTC. |
| Call | Carries 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 / Rcvd | Signal reports. |
| Grid | Their grid. |
| Country / Name | Resolved from the callsign offline, and enriched from a lookup service if one is configured. |
| Upload | One 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.
The log grows horizontal dividers to mark events, so you can see at a glance what belongs to what:
Dividers are hidden while searching.
The export menu offers:
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.
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.
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.
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.
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.
One map, three things it can show. Pick with the dropdown at the top left.
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 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.
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.
IOTA, POTA, SOTA, DX, QRP, or custom text. Your CQ becomes e.g. CQ POTA KB0RB DM04.Controls which CQ calls the automatic modes will engage with, based on the word in the CQ. Manual operating is never filtered.
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.
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.
Three services, three different jobs. All credentials are stored in the device keychain and never leave it except to the service they belong to.
| Service | Used for | Needs |
|---|---|---|
| QRZ Logbook API key | Uploading your contacts to your QRZ logbook | The API key from your QRZ logbook settings |
| QRZ username + password | Looking up names, QTH and grids | A QRZ XML subscription |
| HamQTH username + password | Looking up names, QTH and grids, worldwide | A free HamQTH account |
| Callook.info | US callsign lookups | No credentials, used automatically |
| Cloudlog URL + API key | Uploading contacts to Cloudlog or a compatible logbook | Server 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.
Author and version, plus:
Read-only. Nothing here changes how the app behaves; it exists so a problem can be identified from a screenshot.
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.
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.
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.
Which devices are actually being used for input and output.
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.
Interruption and recovery counters, for diagnosing what happened after a phone call or a Siri activation.
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.
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.
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.
That is usually your clock, not theirs. Open Diagnostics and check the clock offset.
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.
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.
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.
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.
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.
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.
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'.
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