Michael Shriver Senior Computer Specialist - College of the Environment

Configuring a Kantronics KAM Plus/KAM-e as a Standalone APRS Digipeater

Background

I recently purchased two Kantronics TNCs from eBay listed as ‘For Parts.’ one KAM Plus and one KAM with the enhancement board installed. The enhancement board makes the KAM functionally equivalent to the KAM Plus. Both exhibited symptoms of a failed ’negative voltage’ circuit, which is a common problem in these models. When connected to a serial port on my laptop, I got only garbage characters, or no resonse at all, even after completely resetting the device. Replacing several capacitors at the front of the unit (1x 10uf25v and 3x 10uf50v) restored these devices to full functionality.

Goals

I am working on implementing APRS trackers via several different methods. Right now, I have Xastir on a Raspberry Pi interfacing with a radio via a TNC-Pi hat. I would like to enable standalone APRS operation using the Kantronics devices. My goals are to set up the devices in a way that they are capable of:

  1. Position beaconing via a serially connected GPS device
  2. ‘Fill-in’ (WIDE1-1) digipeating of heard packets using my callsign and SSID -1

APRS Packet Information

Packet Format

Let’s break down a typical positional APRS Packet into it’s parts:

N7TUG-8>APRX29,WIDE1-1:!4740.02N/12223.58WsBallard WA

Source: N7TUG-8

This first field shows where the packet originated. In this case it is my neightbor N7TUG, using the SSID or “Secondary Station Identification” of ‘-8’. In this case ‘-8’ is a de facto indicator that this is a marine station.

Destination: APRX29

In an AX.25 packet, the next string following a ‘>’ is the Destination. Since it is a ‘broadcast’ protocol, APRS appears to co-opt the ‘destination’ field of AX.25 to convey specific source information such as device type or symbols. Per http://aprs.org/aprs11/tocalls.txt, my devices’ Identifiers are:

  1. KAM Plus: “APNKMP”
  2. KAM: “APNK82”

Alternatively, the destination may just be ‘APRS’

The path

APRS does it’s tricks in the path specifier. Since it is a broadcast protocol intended to track the location of moving objects, there is no guarantee that you will have any specific path available at any time. To overcome this, APRS specifies generic path indicators that can be picked up and digipeated by any nodes that hear it. In this case the path WIDE1-1,WIDE2-1 is specified indicating that we are trying to get to a wide-range digipeater (WIDE2-1) but we will take advantage of up to one hop from a smaller, ‘fill-in’ digipeater if necesary (WIDE1-1).

The Location Indicator

Following the colon, comes the position indicator. This would normally be set by a GPS reciever attached to the TNC, but for my initial set-up, I am going to be specifying the position manually and using this node as a stationary home node. In this case “!4740.02N” specifies the latitude and “12223.58W” specifies the longitude. Interspersed after the LAT and LOG are two additional character: ‘/’ and ’s’. These characters are used to indicate the little icon that is displayed next to your station on the internet. The first character indicates the ’table’ and the second indicates the specific symbol from the indicated table. More information can be found here.

Comments and et cetera

Everything else is a freeform ‘comment’ field, in this case an indicator that the little tug is in Ballard.

TNC Configuration

Note: The KAM and KAM Plus require the most recent firmware versions to support the advanced features for APRS. This is version 8.2p for the Plus and 8.2e for the KAM with Enhancement board. These firmwares are not interchangeable.

Fixed Location Beaconing

This is where we put it all together. First, we set our node’s callsign and some basic settings. This will tell the KAM not to break up long packets, and to disallow remote connection requests.

MYCALL K1RPN-1
PACLEN 0
CONOK OFF
CD SOFTWARE
FULLDUP OFF
HID OFF

Then, we configure the APRS beacon. The basic firmware includes a BEACON function that will periodically transmit some pre-defined text string, however this function always uses the fixed destination string of BEACON. Firmware versions after 8.0 added new ‘Location’ beacon options that offer more flexibility, so we will use them instead.First, set the beacon period. There are four location tracking buffers available, but I am only using the first one, hence the ‘1’ at the beginning of these commands. Since this is a fixed station we will use a relatively long period of every 30 minutes:

BLT / 1 EVERY 00:30:00

Note the preceding / after the command name. This indicates I am changing this setting only for the VHF radio port.

Next, I will set the path for location beacons:

LTP / 1 APNKMP VIA WIDE1-1,WIDE2-1

This indicates a ‘Destination’ of APNKMP, meaning my device is a KAM Plus. It also specifies that I would like my packet to be picked up by a single fill-in digipeater and at most one hop on a wide-area digipeater.

Finally, I will set the location beacon content:

LT / 1 !4740.1 N/12223.3 W-Ballard, WA

This sets my location to a fixed position, which is reduced in accuracy by one digit (the spaces at the end of the LAT and LONG). It also includes an icon of a little house (/y) and a comment with my neighborhood. Note the ‘!’ at the beginning of the location string. This indicates a standalone digipeater that is not connected to a computer. Stations with a computer connected use ‘=’ here.

GPS Location Beaconing

The location beaconing features also have the ability to dynamically update the location beacon string with data coming from a serial GPS device connected to the RS-232 port of the KAM. In order to configure this, you would user the following settings.

Note: It is a good idea to start out by setting the KAM and your terminal program to the same baud rate as your GPS device. Most devices have a default baud of 4800:

ABAUD 4800

First, configure the KAM to update the location string from the GPS device:

GPSHEAD 1 $GPGGA

This indicates the type of NMEA sentence from the GPS device to store in buffer #1. As soon as the KAM gets a $GPGGA sentence from the GPS device, it will replace any fixed string you have set with ‘LT’

BLT / 1 EVERY 00:02:00 START 00:00:21

The START time controls what time of the day the beacons will start. It is useful to pick a random second value in order to try to prevent collisions with other stations.

You may set the LTP path as above, or adjust it for more hops if you will be going to a more remote location. Don’t exceed 2 hops unless there is a very good reason to (there isn’t):

LTP / 1 APNKMP VIA WIDE1-1,WIDE2-2

Alternatively, since there is no way to specify an APRS icon manually with LT, you can use a string such as ‘GPSBN’. See SYMBOLS.TXT. I am not aware of a way to specify a device and an icon.

If your GPS unit requires an initialization string to start outputting data, set it with the GPSINIT command:

GPSINIT $PGRMO,GPGGA,1

Finally, set the serial port baud to match the GPS device and switch the Interface mode to GPS:

INTFACE GPS
RESET

Note: At this point you will no longer be able to control the device with your computer. You will now disconnect your computer from the serial port, and connect the GPS device. The GPD device will likely need a Null-Modem type cable to properly interface with the KAM. You may force the KAM back into TERMINAL mode by connecting your computer, setting your terminal to the appropriate baud and sending three ‘CTRL-C’ characters.

APRS Digipeating

Note: There are not very many use cases for a home station to digipeat. The most you would every want to do is set up a local ‘fill-in’ digipeater that responds to WIDE1-1 packets with the goal of getting them ‘over the hump’ and off to a wide area (mountaintop) digipeater of iGate. You can enable this functhion with the command:

UIDIGI ON WIDE1-1

Command Summary

MYCALL K1RPN-1
PACLEN 0
CONOK OFF
CD SOFTWARE
FULLDUP OFF
HID OFF
DIGIPEAT ON
B 0 / E 60
BT / The little cabin in Ballard, k1rpn@shriver.co
BLT / 1 EVERY 00:30:00
LTP / 1 APNKMP V WIDE1-1,WIDE2-1
LT / 1 !4740.1 N/12223.3 W-Ballard, WA
UIDIGI ON WIDE1-1

For GPS:

ABAUD 4800
GPSHEAD 1 $GPGGA
B 0 / E 30
BT / The little red truck, k1rpn@shriver.co
BLT / 1 EVERY 00:02:00 START 00:00:21
LTP / 1 GPSBN V WIDE1-1,WIDE2-2
GPSINIT $PGRMO,GPGGA,1
INT GPS
RESET

Sources: