APSPOT – An (eventually) single APRS Self Spotting system

A concept!

One of the things I wanted to do when I got my APRS stuff setup was self SPOT my WWFF activations to parksnpeaks.org via APRS. I spent some time looking into this and basically, to PNP, it couldn’t be done. I started looking at SPOTS for other systems and there are various other scripts that are either limited in scope, worked once but don’t anymore, or are an outright hack (SMSGTE to POTA, SOTA, etc).

There had to be a better way.

So, I introduce to you a new system, “APSPOT”, short for APRS SPOT.

The goal of this system is to provide a single APRS endpoint for spotting of all things activation related. WWFF, SOTA, POTA, SIOTA, to not only ParksNPeaks but also SOTAWatch, pota.app, and any other spotting systems for any other points based system that’s available at present.

The way it works is very simple. It’s a service that sits on APRS under the callsign “APSPOT” and it listens for incoming messages that conform to a specific format. If it receives a message that does not conform to that format it either sends an error and tells you why your SPOT failed – or it sends the usage information. You do NOT send your callsign in to the system as part of the message as it assumes the callsign in use on APRS is the callsign being spotted. I may expand this to allow APRS spots of other callsigns in the future (but not right now).

What works?

ParksNPeaks:
– WWFF
– SOTA
– POTA
– SIOTA
Note: In order to self spot your callsign on PNP you MUST be a registered user in PNP. I do a user validation before sending the spot to PNP so if you’re not registered there the spot will fail

What’s kind-of working?

SOTAWatch – Spots from PNP for SOTA will be automatically cross-posted to SOTAWatch by the PNP system. I have code in place ready to go to post our SPOTs to SOTAWatch directly as well as PNP for users that aren’t in the PNP system, but I can’t turn this on until the cross-posting from PNP is disabled or we’ll end up with duplicate SPOTs.

What doesn’t?

POTA – Waiting on a response to an email to POTA for their API spec for posting of SPOTs
Anything else you can suggest?

That’s cool, how to I send a SPOT?

Send a message “USAGE”, or, in fact any message that doesn’t start with an “!” to “APSPOT” on APRS and you’ll get a reply with the format. Sending a message USAGE <Activity> (eg USAGE WWFF, USAGE SOTA, etc) will reply with an example message you can edit and re-transmit.

No really, how to I send a SPOT?

Send an APRS message to “APSPOT” that conforms to the following format: “! <Activity> <Ref> <Frequency> <Mode> <Comment(Optional)>”
Activity is one of “WWFF”, “SOTA”, “POTA”, “SIOTA”
Ref is the Park/Summit/Silo ref you’re working, eg “VKFF-1929” for WWFF, “VK3/VN-010” for SOTA, “VK-3024” for POTA, “VK-YNES” for SIOTA
Frequency is the Frequency you’re working in MHz. This MUST be a decimal, eg “7.144” will work, “7.1” will work, “7.0” won’t
Mode is the mode being used and must be in “SSB|CW|AM|FM|DATA”
Comments are optional up to the maximum APRS message length.

An example message looks like:

! WWFF VKFF-1929 7.144 SSB CQCQ EUSDALE NATURE RESERVE

Once you’ve submitted a SPOT you’ll get a message back to confirm if your SPOT was successful – if it’s not it will give you full feedback on why your SPOT didn’t work.

What’s next? That sounds cool, can I help?

At present this script is running on my server that’s also running my IGate. I’ll be moving it to have a proper CI process in the cloud and running it inside a docker container service in Fargate on AWS shortly, I’m just a little time poor at the moment. If anyone else wants to help develop this system into the awesome single APRS SPOT entry point that I envision it can be, send me an email josh@zindello.com.au and we can have a chat about getting you onto the project.