STAY, and a Rule I Got Wrong
One new command, one new answer from an old one, and a rule I got wrong for nearly a month.
Extending the time of your op
An op runs for an hour, and every QSO pushes the clock out fifteen minutes from your last contact. That works right up until the chasers go quiet for twenty minutes and you are still delivering pizza.
Send STAY and you get another thirty minutes:
There is no Q-code for it. QRV, QRT and QRT? all have one because hams
have meant those things on the air for a century, but no Q-code means “give me
half an hour more”. So STAY is just STAY.
The two-hour hard cap still applies and is the only limit on it, which leaves
room for two extensions at most. The reply always tells you when you are
actually going off the air, rather than naming the thirty minutes it added,
because on the second STAY the cap absorbs part of it.
PING now tells you which path you came in on
The rule for hosting is that your messages have to reach OTA via RF rather than from the internet. The trouble is that sometimes this can be hard to know as the sender. Many mobile apps like aprs.fi and APRSdroid can connect via a TNC or directly to APRS-IS, and sometimes to both at the same time.
So PING now answers the question as part of its response:
heard on APRS-IS is still a successful PING. It just means that if you tried
to host from that setup right now, it would not work.
The rule we got wrong
Now the part I owe you an explanation for.
When an igate hears you on the radio and puts your packet onto APRS-IS, it stamps a short code in the path saying how it heard you. That code is how we tell a radio from a laptop. We read one of them wrong.
An igate that can receive from RF but cannot transmit back to it stamps qAO,
which means “heard on the radio, but I cannot send messages back”. I was
reading it as “came from the internet”. That is 17% of every packet this
service has ever received, and it meant a dozen operators were told they had
to transmit via RF while holding a radio that had just transmitted. One of them
sent HOST three times from 2300 meters in the Austrian Tyrol and got nowhere.
I am sorry. It was my bug from the first day the rule existed, and nothing
about your setup was wrong.
A second code, qAS, was doing the same thing to a smaller group, including
APRS on HF, which is about the least arguable RF there is.
Both are fixed. Because the site works this out fresh from each packet rather than writing down a verdict, every packet log on the site re-judged itself the moment the fix went live.
Your score may have gone up
What did not fix itself was the scoring, because a stamp is minted once and then it is history. Two things had gone wrong:
- Chasers on those igates lost their PTT stamp, and Two-Way needs one from each end, so the host lost that card too for something the chaser’s igate did.
- Some hosts had their
QSLrefused outright, which left contacts they really did answer sitting in the log as unanswered.
Both are repaired: 21 contacts restamped and 10 confirmed. One op went from one QSO to eight. If your callsign page looks better than you remember, that is why, and if a contact of yours still reads wrong, tell me and I will go and read the actual packets.
No database reset
I’ve been signaling for a while that at some point I would have to reset the database and have an official launch. I figured I would need to do this because the way I ended up implementing scoring and stamps was very different from what I originally thought. Turns out, I was able to retroactively apply the real scoring system to all the older ops and QSOs. No database reset will be required.
Smaller things
- Commands no longer run twice. If a digipeater mangled your message number, or your radio retried something we never acked, the bot could act on the same message two or three times and answer itself differently each time.
- Bad positions are refused. A beacon with no GPS lock used to put an op in the Gulf of Guinea. A position that is not a place now gets no grid square and no marker.
- The map groups nearby chasers into a single mark with a count.
- Better handling of unparsable packets. One unparseable packet used to be able to stall every reply for everybody. That happened on 11 August and cannot happen now.
What’s next
I’ve had several inquiries about building an API for APRS OTA so other apps
or services can integrate with it. I think this is a great idea and there
is a new #api channel in the Discord for us to start discussing how this
should work.
I also need to improve the ugly display of ping packets at the bottom of
the callsign page. You all know about your callsign page, right? If you
have hosted an op, chased an op, or sent a PING packet, you have a
page at aprsota.org/YOURCALL (with no SSID).
And I want to get started on achievements (e.g. hosted 10 ops, completed your 50th QSO).
Thank you for your continued reports via both email and Discord.
- Email: jared@k0tfu.org
- Discord: APRS OTA