APRS Data in Google Maps

What’s APRS?
APRS stands for Automatic Position Reporting System. APRS is used by amateur radio operators to transmit GPS position reports, locations of objects of interest, weather reports, general messages, and more.
APRS packets are transmitted by stations, which can be received directly by other stations. Digital repeaters are used to boost the range of the system, so chances are good the packets you receive have bounced around one or more repeaters before getting to you. Digital repeaters are marked by green stars on my map.
How does this thing work?
I receive packets using a Radio Shack scanner tuned to 144.39 mhz, which is the agreed on APRS frequency. I have a VHF antenna in the attic and can get pretty clear signals.

The scanner audio is connected to a Windows PC running Packet Engine Pro, which is basically a software modem. Packet Engine Pro does the job, but has a terrible user interface, hasn’t been updated in years, and costs $49 a copy. Personally, I think it should cost about half that.
I wrote a Java application that connects to Packet Engine Pro. Every time a packet is received, it gets HTTP POSTed to a Rails application on my web server.

Decoding the APRS packets isn’t easy. There are around 23 totally different packet types. There are about 10 that I see frequently around here, so I wrote a Ruby library that parses them. It will be available on RubyForge as soon as I get it cleaned up.
The Rails application stores the packets in a database and displays them on Google Maps using lots of code lifted from DiscoverMachine.
One cool feature of the map is that it automatically loads new packets every 30 seconds and adds them to the map.
And that’s it!






