Using APRS to Determine Repeater Coverage

Here at the University of Texas at Dallas, we operate a repeater on 145.430MHz (K5UTD-R). For 5 years, it sat on the top of a 50′ tower, on a 50′ roof, giving us about 100′ feet above ground level. The end goal is to relocate this repeater to a higher tower on campus. This would make use of an antenna that is ~250′ AGL (if not a little more), as opposed to 100′ AGL. Moving this repeater took a lot of time and coordination, so in the mean time, I determined I would experiment with the APRS network to get a general idea of how coverage will change.

Is this an exact science? Not at all. The predicted coverage relies on many different variables; some are in my control, but most are not. The general principle is that you can make use of stations beaconing their positions, and compare the position packets you hear on one antenna with packets heard on the other. This will loosely correlate with the changes in repeater coverage when the transition is complete. This takes advantage of the APRS network, and the fact that many radio operators run GPS-based tracking systems in their cars. Data from these systems can be received on 144.39MHz.

The basic premise of this experiment is not to see where the repeater can be heard, but rather what the repeater can hear. As mentioned above, this experiment takes advantage of radio operators persistently beaconing their position using systems similar to what they will use for voice communications.

To get an estimate of what the repeater can hear in the “pre-move” and “post-move” configurations, I collected two datasets at two separate times. The first dataset was using an antenna on the roof of the Engineering and Computer Science building. The antenna had similar height and gain to the old repeater antenna. Due to hardware constraints, I could not simultaneously run two IGates to collect data on both antennas. This is one source of error.

The IGate operated on the rooftop tower from Jan 26 to Feb 18. This gave me about 3 weeks worth of data to work with. The IGate operated with the larger tower from Feb 26 to March 8. This was only about a week and a half worth of data.

In this particular setup, the IGate consisted of a Raspberry Pi with the TNC Pi addon board. The radio was an Icom IC-229H, and would beacon two packets every 10 minutes (status/position). The APRX daemon was used to internally log and gate the packets to the internet. The log files are what I used to produce the map seen below.

Parsing the log file is no easy task. As you would have expected, there is a library written in Perl to parse APRS packets, so I wrote the script in Perl. I wrote several filters to only give me packets that I locally received. The filters discarded packets that have been digipeated, came in over the APRSIS servers, were not position packets at all, or had a distance greater than 150 miles. I also wrote in a filter that discarded packets with a speed greater than 100mph, as planes will skew the data.

The Perl script was written to spit out a KML file. It would take several minutes to run, as the log file is >113MB, but would result in a 6MB KML file ready for Google Earth.


The image above is what the script produced. These are the packets that were heard directly from the transmitting station. The blue dots represent the packets heard on the new, higher antenna, while the red dots represent the packets heard on the older, lower antenna.

Obviously the higher antenna heard packets much further out than the lower antenna, with one exception. There is a 60° slice of the old coverage area to the south that is not covered by the higher antenna. This is because the antenna is side-mounted on the north side of the new tower. Aside from that, the higher antenna appears to cover much more of the metroplex than the lower antenna.

Anyway, it was a major project to move the repeater, and a lot of fun to write the script and produce the map while we had downtime. This type of map is easy to produce, and can be done by modifying my script to suit your needs.

Satellite Station at K5UTD

The K5UTD Amateur Radio Club satellite station is the first major project I’ve led since joining the club. I thoroughly enjoy satellite QSOs and the technical challenge behind the contacts, so it was only right for our shack to be one step closer to “complete” with a satellite station.

Several of the pieces were already at the shack, including an FT-847, Yaesu G-5400, and tons of Heliax. Some pieces were missing though: rotor control box, satellite antennas, and preamps. From a previous project, we had a GlenMartin RT-936 (8 foot tower) and the associated non-penetrating roof mount. After a few emails and phone calls, I was able to locate our antennas and the control box. Oddly enough, we went to pickup the control box and came back with nearly 4 van-loads of old test equipment and other radio-related gear. The stuff had just never been delivered to the shack, and if we wanted the box, the rest had to come. A generous professor donated a pair of ARR switched preamps for our station, taking care of the last piece in the puzzle.

Our antennas are believed to be KLM cross-polarized Yagis, but we’re not too sure. The markings have long since faded. From the antennas, we have about 25ft of Davis Bury-Flex into our custom preamp box. The preamps are ARR switching boxes, which feed about 200ft of 1/2″ heliax. The heliax terminates in our closet outside the radio room, and we finish the rest of the coax run with 30 more feet of Bury-Flex. Both runs terminate into a Yaesu FT-847, which is controlled by a Linux PC running GPredict. The G-5400 control box is interfaced to the PC with an Arduino running the K3NG rotor control software. All things considered, this is a fine satellite station, and we’re very fortunate to have the gear that we do.

With all of the pieces, we began assembling. Assembly BeginsLandon and Matthew mounting the Elevation rotor on the mast.

IMG_20140208_163513Our lovely preamp box.

IMG_20140209_143041And there I am doing some cable management.


Our satellite station in the shack.


And finally, the completed station.