APRS Using WiFi Localization

I’ve been running a soundcard APRS gateway for more than a month now. It relays packets from 144.800MHz  to the internet using an old TR-2500 transceiver and a small Linux box running soundmodem and Xastir, both remote. Apart from a few days when Xastir was hung (but did not crash; perhaps a deadlock), this worked flawlessly. The gateway uploaded many location packets from vehicles in the area. It also received many packets from a digipeater on an 1700m-high mountain in southern Turkey (TM5HTY), some 450km away, and a some from Cyprus.

More recently, I’ve been experimenting with running an APRS client, APRSISCE32, on my laptop. There are two ways to tell APRSISCE32 where you are, so that it can report the information. One is by clicking on the map. This is fine is you don’t move much, but it’s not a practical way to keep track of changing locations. The other way is using a GPS connected to a serial port. This is also not very practical on a laptop, because laptops do not have a built-in GPS receivers (toting an external one is a hassle) and because they are mostly indoors where there is no GPS reception.

I discovered, however, that a company called Skyhook makes a free program that uses WiFi localization to emulate a serially-attached GPS. The program, called Skyhook XPS, tries to determine your location by noting which WiFi access point your laptop hears. It sends the identities (MAC addresses) of the access points to the company’s servers, which looks them up in their database. If some of these MAC addresses are associated with a physical location in the Skyhook’s databases, the program knows where you are. It provides this information to other programs, like APRSISCE32, using a virtual serial port that it creates. The location information is sent over this serial port as if it came from a GPS (that is, using standard NMEA sentences).

Apple uses a very similar schemes to provide location information to devices without a GPS, such as the first-generation iPhone and the iPod Touch.

When I tried Skyhook XPS at home and at work, it could not determine my location; the access points near me were not known to Skyhook. The company’s web site has a web form that allows you to associate MAC addresses with geographic locations, and I used it to upload the MAC addresses of access points at home and at work. The web site warns that it may take a few weeks for the information to become usable, and indeed the software was unable to localize me even after I uploaded the data.

In the mean time, I went on trips to Germany and the US. There the software localized me without any problem and with good accuracy (10m confidence circle), most of the time pinpointing correctly the building I was in. Here is a screenshot from Aachen, Germany.

When I got back home to Tel-Aviv, the software was finally able to localize me both at home and at work. The locations were precise, but the software’s confidence was lower (154m at work, 173m at home).

I think that the localization confidence is dermined by the number of access points whose location Skyhook knows. In the screenshoot from Germany you can see many red dots on the WiFi radar-like display, meaning that Skyhook knows the location of many access points; in the screen shot from Israel there is only one red dot, so the software can’t determine exactly where I am. Skyhook’s web site has a coverage map and there I can see that it has some coverage (known access points) in Israel, but not very many and not as many as in other countries. Apple seems to have a much better coverage of Israel, because my son’s iPod Touch always knows where he is.