Analyzing the APRS infrastructure in the Hamburg area

APRS stations around Hamburg

In this article I will try to analyze the APRS infrastructure in the Hamburg area based on raw APRS messages received by 2m handheld connected via USB soundcard to a Raspberry Pi. On the Raspberry Pi, I run Dire Wolf and I use Xastir on my Laptop with Ubuntu to receive and visualize the data on a map.

APRS is much more than a position system and you can do much more with it than showing your position on a map. It can be used to send text-messages to other OMs and there are a couple of APRS services available which allow for example to send E-Mails through APRS. To make sure that this works, a good APRS infrastructure is needed.

The most important parts of this infrastructure are Digipeaters and Igates.

A DIGIPEATER is a station that receives messages and sends them out again. If the digipeater is placed on a good and high location it can cover a large area and can allow mobile stations to reach a big area even with a low mobile antenna. Wide digipeaters which cover a large area and fill in digipeaters which try to cover local blind spots. To decide how a message is repeated the PATH-settings are used. A typical Path-setting is: “WIDE1-1,WIDE2-1”. I will not explain this in detail in this article but it means something like: Local repeater: Please repeat once and the next wide repeater: please repeat another time. There are several articles about these PATH settings and it can be quite confusing as this changed over time and you will still find a lot of very old descriptions that are not valid anymore. Maybe I will explain this in another article later.

An IGATE is a station that is connected to the APRS Internet Service “APRS-IS” which is a global network of servers that share APRS messages. An Igate receives messages from “the air” and sends it to the network (RX Igate) and the other way round (TX-Igate). There are many tutorials how to build an RX Igate to increase the coverage for position messages that can be seen online, for example at aprs.fi, but this only works in one direction. Reliable 2-way communication requires TX Igates and a good coverage with digipeaters.

There are a couple of stations acting as Igate and Digipeater at the same time.

Based on this knowledge we can now analyze the infrastructure in the Hamburg area in Northern Germany. The goal is to detect Igates and Digipeaters. For that we use the PATH information of the received messages. As described before, the original path is usually sent as “WIDE1-1,WIDE2-1” or similar. If this message is received by a digipeater, one part of the path is replaced with the own callsign and marked with a “*, which means that this part of the path is already used.

Let’s send a message: I use my Kenwood TH-D74 to send a position messages. As a path I use “WIDE1-1,WIDE2-1”. Here is how the message looks like:

DK3ML>U3STQL,WIDE1-1,WIDE2-1:`Fil#N-/>"4'}Happy New Year^

At the beginning there is the callsign of the sending station. In this case, it’s mine: “DK3ML”. After the “>” sign, we see the AX.25 Destination data. This field can have different meanings. We will ignore it for now. Between the AX.25 destination and the “:” we find the digipeater path. As I received my own message directly, there is no digipeater involved yet, so the path is the same, I sent: “WIDE1-1,WIDE2-1”

A couple of seconds later, I received the following message:

DK3ML>U3STQL,DB0ELB*,WIDE1*,WIDE2-1:`Fil#N-/>"4'}Happy New Year^

Most of the message is the same, but the path field changed. WIDE1-1 was replaced with “DB0ELB*,WIDE1*”. The second part of my path “WIDE2-1” is still there. What does this mean?

DB0ELB is a fill-in digipeater, listening for WIDE1-1 path information. This digipeater picked up my message and replaced WIDE1-1 with “WIDE1*” and sent it again. The “*” indicates, that this part of the path was already used and the digipeater also added its own callsign to the path, again marked with a “*”. Now every station in range of this digipeater was able to pick up my message even if it was not in direct range of my own antenna.

Another couple of seconds later, I received the following message:

DK3ML>U3STQL,DB0ELB*,WIDE1*,DB0HHN*:`Fil#N-/>"4'}Happy New Year^

Again it’s the message I sent earlier and this time the PATH was changed again. “WIDE2-1” was now replaced with “DB0HHN*”. So DB0HHN is another digipeater that received my message from DB0ELB and sent it again. Now all hops of my path are used and this message will not be repeated again.

So we identified already 2 Digipeaters: DB0ELB and DB0HHN. But where are they located and is there any additional information about them? Well, let’s wait and study the messages.

After a few minutes, the following message is received:

DB0ELB>APRX25,WIDE2-2:!5334.47N100942.79E#PHG2200 W1 http://db0elb.dk7xe.de

Screenshot of a window in Xastir showing all received raw messages

DB0ELB is now sending some information about itself. As a path it’s just sending “WIDE2-2” which means that this message can be repeated 2 times by wide-area digipeaters. We also see the position of the station and a URL. Sadly the website seems to be unavailable at the moment, so that we don’t find out more about this station. I also received a couple of more messages from DB0ELB with some kind of telemetry data, but the position is the most important information for now. It’s just a couple of hundret meters away from my station in the city of Wedel near Hamburg.

What about DBHHN? A couple of minutes, we know the answer:

DB0HHN>AP4R10,WIDE1-1:!5347.16N/01004.03E#E12 Norderstedt

Now we know the position of the second digipeater. It’s a couple of kilometers north of Hamburg in Norderstedt.

Let’s check a couple of more messages to identify more digipeaters:


DB0WOA-10>APMI06,DB0HHW*,DB0ELB*,WIDE2*:T#142,162,001,000,023,000,00000000
DL8HAV>U3SWV5,DB0FS-10*,WIDE1*,DB0HHN*:`N)l -/`Wilfried qrv via DB0XH_$

So we found 2 more digipeaters: DB0FS-10 and DB0HHW. After waiting a couple of more minutes I also received information about both stations:


DB0HHW>APRX28,LOCAL:!5340.88NS00939.83E#PHG3430/W4 Digi Uetersen M21
DB0FS-10>APMI06,DB0HHW*,WIDE2-1:@012024z5335.86NI00956.87E&IGate & Digi http://afundr.de U=12.2V,T=16.3C

Now we know the position of the other 2 digipeaters received and one of them (DB0FS-10) is also sending as a status message some additional information: It seems to act as an Igate and digipeater at the same time. On the picture all stations are visible: DB0ELB next to my station in the south east, DB0HHW on the west side, DB0HHN in the north east corner and DB0FS-10 in Hamburg. After 30-60 minutes I received a complete overview about the APRS infrastructure in my area.

I my next article I am planning to find out more about the Igates in my area.