I wrote a little python program to send my iGate telemetry through APRS. The metrics include the temperature of the Raspberry-Pi, the load average, the amount of free memory, and network traffic.
Sending the iGate metrics through APRS allows me to use the graph tools offered by aprs.fi or the excellent aprsdirect.com, to access the health of my iGate from anywhere in the world.
The program written in python is called igate_telem and can be found on my github. I am run this program on a Raspberry Pi running Ubuntu Mate, but it should work without any or minimal changes on any other Linux distribution.
I am going to describe how to integrate igate_telem with an already working DireWolf installation. DireWolf is a software TNC1 with a lot of features and options and describing how to configure it would be the subject of a completely different article.
Installation
Since you are already running DireWolf on your machine, I assume you
already have installed all the tools that will be needed to install
and run this program. However, make sure the python module
setuptools
is installed. On Debian based systems such as Ubuntu,
just run the command sudo apt install python-setuptools
in a
terminal to make sure it is installed.
Then go to your favorite working directory and clone the igate_telem repository and run the install with the following command.
$ git clone https://github.com/0x9900/igate_telem
$ cd igate_telem
Edit the file igate/telem.py
to add your callsign. Then install the
program using the following command.
$ sudo python setup.py install
The installation process displays a bunch of lines on your
terminal. At the prompt, you can then invoke the program with the
option --help
to make sure it has been correctly installed.
$ /usr/local/bin/igate_telem --help
usage: telem.py [-h] [-c CALLSIGN] (-d | -e | -p | -u)
APRS RaspberryPi temperature
optional arguments:
-h, --help show this help message and exit
-c CALLSIGN, --callsign CALLSIGN
iGate full callsign [default: W6BSD-5
-d, --data Send the APRS data
-e, --eqns Send the APRS equation
-p, --param Send the APRS param
-u, --unit Send the APRS units
Telemetry format
In APRS there are two kinds of telemetry messages: telemetry data and metadata.
The option --data
in igate_telem gather and format the data before
sending it through APRS. The options --param, --unit, --eqns
will
send the different metadata used to format the data.
Example
$ /usr/local/bin/igate_telem --eqns
:W6BSD-5 :EQNS.0,0.001,0,0,0.001,0,0,1,0,0,1,0,0,1,0
Configuration
In your DireWolf configuration, insert the following line.
CBEACON delay=0:45 every=60:00 SENDTO=IG info="https://github.com/0x9900/igate_telem"
CBEACON delay=0:10 every=5:00 SENDTO=IG infocmd="/usr/local/bin/igate_telem --param"
CBEACON delay=0:12 every=5:00 SENDTO=IG infocmd="/usr/local/bin/igate_telem --unit"
CBEACON delay=0:14 every=5:00 SENDTO=IG infocmd="/usr/local/bin/igate_telem --eqns"
CBEACON delay=0:15 every=5:00 SENDTO=IG infocmd="/usr/local/bin/igate_telem --data"
The first line sends a message every hour, indicating where the source of the telemetry can be downloaded from GitHub.
The next lines send the telemetry metadata:
- --param
will list the name of the different variables sent.
- --unit
will send a string indicating the units for each
variables, such as Degrees, Megabyte, etc.
- --eqns
are the equation coefficients for scaling values.
The last line sends the actual data.
In each line, the field delay
means DireWolf will wait for MM:SS
before executing the line when the DireWolf is starting. On the first
line, for example, the info will be sent 45 seconds after startup.
The field every
will tell DireWolf to send the information every
MM:SS
.
The field SENDTO
tells DireWolf how to send the information. For
this example, the data is sent using the internet. If you don't
specify this field, the default transmission mode is used. The default
transmission mode is through the air-waves.
Example

You can find an example of how telemetry works by looking for the
call-sign W6BSD-5
on aprs.fi or on aprsdirect.com
For more info on APRS telemetry, you can read the excellent documentation by Kenneth Finnegan.
See also APRS iGate for Parachute Mobile
-
A Terminal Node Controller (TNC) is a device used by amateur radio operators to participate in AX.25 packet radio networks. ↩