APRS OTA
APRS OTA (aprsota.org) is an on-the-air activity that runs entirely over APRS. APRS Connect gives it its own screen, so you tap buttons instead of typing bot commands. Open it from the Services tab or the APRS OTA item in the menu, then pick Host an op or Chase an op.
What APRS OTA is
You go on the air for an op, a session of about an hour, and other operators try to reach
you before it ends. Each contact you confirm scores points and adds time. You can host from
anywhere. Everything goes through the aprsota.org bot (callsign OTA) as normal APRS messages.
Hosting an op
Tap to go on the air. The app sends HOST with an optional comment, and the bot asks for a
position report. Your op starts when the bot confirms it.
The op bar
The bar stays at the top while the op runs.
- QSL'D counts the calls the bot passed to you and how many you have confirmed. A chaser who calls twice before you answer counts once.
- LEFT is the time left. It uses whichever answer came in last, from the bot or from aprsota.org, so pressing STAY moves it right away.
- POINTS is your score from aprsota.org, when the internet is on.
- STAY adds 30 minutes, up to the 2 hour limit. TIME asks the bot how long is left.
BLAST sends one message to every chaser. END asks you to press again, then sends
DONE.
A status line shows under the bar after STAY, TIME or BLAST, and clears 3 minutes after it works. Failed sends stay longer so you can retry.
Under that, a line says where the figures came from and how old they are, with a link to switch between APRS and the internet. Chase other hosts takes you to the chase list while your op keeps running. A small pill on it shows how many hosts on the air you have not called yet.
The map
A small map shows you and your chasers.
| Mark | Meaning |
|---|---|
| Amber dot | You |
| Green dot | Worked |
| Blue dot | Waiting for your QSL |
| Grey dot | Called, but the bot has not passed the call to you yet |
| Ring | Placed by grid square, so only roughly |
Drag and pinch to move around, or use + and −. FIT shows everyone again. Open on the map opens the full map with only your op on it. Tap Show everything there to get your normal map back.
The app places each person using the best position it has:
- A beacon your phone heard.
- A beacon aprsconnect.com heard in the last 24 hours. The server listens to APRS OTA traffic on APRS-IS and keeps each station's latest position, so a chaser who beaconed before you started watching still shows up.
- Their grid square.
Chasers are followed on APRS-IS from their first call, so their beacons reach your map while they wait.
Above the map, a line shows how far your QSOs have reached, added up. A QSO only counts once your QSL has been acknowledged or aprsota.org shows it logged.
Contacts
New calls come first, each with the chaser's message, where they are, a box to say something
back, and a CONFIRM button. Leave the box empty to send a plain QSL. When the keyboard
opens, the page scrolls so the box stays in view.
- Problems come next. A QSL the bot refused, or one that was never acknowledged, shows the reason and a RETRY button.
- Confirmed contacts come last, with a note when aprsota.org has logged and scored them. If the site still has not logged a delivered QSL after 15 minutes, the note turns red.
- "Logged. The bot refused a repeat." The bot acknowledged your QSL and logged the contact, then refused a later copy of the same QSL with "No chase from … to confirm". That happens when the acknowledgement did not reach your radio and the QSL was sent again. The contact counts as confirmed.
- Repeat callers are marked. If someone calls again after you worked them, their card says so. A second QSL to the same chaser scores 0 points.
- Calling again before you answer is one contact. A chaser who calls a second time before your QSL, usually because the bot never got their position report, still has one chase with the bot. Confirm the newer call. The older one moves down with the settled cards, marked Called again at and the time, and counts as neither confirmed nor waiting. In Your ops it shows CALLED AGAIN. The same goes for an older call you did confirm, if the bot refused that QSL or it never got through: once the chaser calls again, the newer call is the one to confirm. If they never call again, the refused QSL stays with the problems.
- Calls not passed on yet are listed under the contacts. These chasers are in aprsota.org's log, but the bot has not relayed their call to you, usually because it is waiting for their position report. There is nothing to confirm until it does. They are not counted in QSL'D.
When the op ends
The wrap-up shows the bot's final figures: QSOs, points, and unanswered (chasers who called and were never confirmed). It also shows the total distance, the map with worked and unanswered chasers, and a button to share the op as a picture. If the time runs out, the bot ends the op on its own.
Your ops
Every op you host or chase is saved under Your ops, rebuilt from your OTA messages. Each op shows its contacts, blasts, the bot's scores, a map and the total distance. The positions heard during an op are saved with it, so its map matches what you saw live. Ops from before this feature was added place people by grid square instead.
The front page also has Your APRS OTA page, a link to aprsota.org/YOURCALL with your
points, QSOs, ops hosted and this month's rank when the internet is on.
To follow your points, chases, ops, stations and countries day by day, add the OTA tiles to the Dashboard.
Chasing
The chase list shows who is on the air. It comes from one of two places. The line under the title says which one and how long ago the list was updated, such as Updated 4m ago from the bot. The link beside it switches to the other one, and the (i) explains both.
| Where the list comes from | How it updates |
|---|---|
| The bot | The bot does not announce who is on the air, so you ask. Tap SEND CQ and the list comes back as a message. It does not update on its own. Tap SEND CQ AGAIN when you want a new list. The time left on each op counts down on your phone in between. This works over the radio with no internet. |
| The internet | The list is read from aprsota.org. It updates on its own every 3 minutes while the chase list is open, and REFRESH reads it right away. It also shows each op's number, points and chasers. It also knows when each op started, so a host's new op does not look like one you already worked. |
The bot is the default. You can change that in Settings. With Fall back to the
other on, the app uses the internet list when the bot does not answer your CQ, and the bot's
list when the internet list cannot be read. A line under the title tells you when that happens.
Each host in the list shows where your chase stands:
- Check mark: worked this op.
- Hollow square: registered with the bot, waiting for the host's QSL.
- Filled amber dot: the bot is waiting for your position report. The row says how much time you have left to send one.
- The row also says when you have called and are waiting on the bot, when the bot refused the chase, or when the position window closed and you need to call again.
Tap a host to call them. Your chase message is filled in from Settings and you can change it before each call. The host's page tracks each step: called, position report, registered, and the host's QSL back to you.
With the internet on, the host's page also shows when the op ends, whether you are in their log, how many have worked them, their totals and rank, and a Show chasers list of everyone in their log. Once the bot has registered your chase, BLAST lets you message the host and every other chaser.
Sharing an op as a picture
Share this op makes a picture and opens your phone's share options, so you can post it to a group, a forum or a message.
- While you are hosting, the picture shows your callsign and comment, as an invitation.
- After the op, and on any op in Your ops, it shows the bot's final figures and the total distance in miles or km.
- A figure the bot did not give is left off instead of shown as zero.
- Swipe to choose a design. Each picture includes
aprsconnect.com/otaandaprsota.org.
The text is part of the picture, because some apps drop text that is filled in for you.
The exact packet, on the button
Every button shows the exact packet it will send before you press it, like the rest of the service directory.
Settings
Settings → APRS OTA has these options:
| Setting | What it does |
|---|---|
| Confirm message | Starts every QSL you send. You can still change it per chaser. Empty sends a plain QSL. |
| Host op comment | Fills in the comment when you go on the air. |
| Chase message | Fills in the message when you call a host. Empty sends a plain 73. |
| Default source | APRS asks the bot over the air and needs no data. Internet reads aprsota.org, which also knows each op's number, start, exact end time and log. You can switch any time from the OTA screens. |
| Fall back to the other | On by default. If your chosen source has nothing, the other one is used. When you host on APRS, aprsota.org also fills in the time left, points and the log. Turn it off to only ever use the source you picked. |
Distances follow your units setting, so you see miles or km. It starts from your phone's region.
Your OTA settings, your ops and the positions saved with them are all included in a backup, so they come with you to a new phone.
Hosting needs a radio
APRS OTA requires hosts to be on the air, and the bot checks. The app sends HOST over RF only,
never APRS-IS. A digipeater or igate has to hear your HOST and your position report, or the op
will not start. If you are only connected to APRS-IS, the app tells you and offers chasing
instead.
You can check your path before you go on the air, in one message. Send PING to OTA from the
APRSOTA conversation and the bot answers PONG heard on RF or PONG heard on APRS-IS, which is
the path your messages are taking. The app sends PING over RF only, for the same reason it
sends HOST that way: with a copy on each link the APRS-IS one usually arrives first, and the
answer would be about the internet whatever your radio was doing. If no radio is connected, the
PING waits until one is.
If you work the bot by hand in the APRSOTA conversation, the radio button at the bottom right of that conversation sends your position report, the same way the button on the map does.
If another of your devices is beaconing as your station (see Devices sharing one callsign), the position report buttons ask that device to send it, when hosting and when chasing. The answer comes back on the screen: when it went, on RF or APRS-IS, and whether a digipeater repeated it, or why it could not. On a host's page, the 30 seconds before an exact repeat is worth sending count from when that device sent it.
Chasing works over RF or APRS-IS. To host, see Connect a radio and Your first beacon.
Next steps
- Connect a radio, since hosting needs one.
- APRS services, the rest of the service directory.
- Messaging, for the delivery states used on the OTA screens.
- The map, for the full map an op opens on.
Last updated 3 October 2026