Table of Contents
APRS Telemetry
There are a few ways of sending telemetry via APRS.
Telemetry report format
The packet format is described on page 78
in the APRS Protocol reference
1)
.
It allows for 5 analogue channels and 8 digital bits.
Here are examples of typical telemetry messages:
|seq|ch1|ch2|ch3|ch4|ch5|-8bits--| LZ1DEV-11>APRS,…:T#005,199,100,255,073,123,01101001 LZ1DEV-11>APRS,…:T#MIC199,100,255,073,123,01101001
The downside of this method is the lack of position or timestamp. Plotting the data overtime could be impossible as time of arrival can be severely affected by delays in the APRS network. Furthermore, the resolution of each channel is limited to 8bits (e.g. 0-255) and there are only 5 analogue channels.
Set up
You may have noticed that the above is limited in displaying negative numbers,
decimals and unit of measurement.
However, there are messages which can be send, that would indicate the unit of measurement,
constants to calculate a meaningful value and friendly name for the specific channel.
The details are described in the APRS Protocol reference [1]
.
|ADDRESSEE|TYPE| ch1 | ch2 | ch3 |ch4 |ch5| 1b | 2b | 3b|4b |5b |… LZ1DEV>APRS,…::LZ1DEV-11:PARM.Battery,Btemp,ATemp,Pres,Alt,Camra,Chut,Sun,10m,ATV |ADDRESSEE|TYPE| ch1 | ch2 | ch3 | ch4 | ch5 |… LZ1DEV>APRS,…::LZ1DEV-11:EQNS.0,5.2,0,0,.53,-32,3,4.39,49,-32,3,18,1,2,3 |ADDRESSEE|TYPE| ch1 | ch2 | ch3 | ch4|ch5| b1 | b2 |b3|b4|b5| LZ1DEV>APRS,…::LZ1DEV-11:UNIT.v/100,deg.F,deg.F,Mbar,Kft,Click,OPEN,on,on,hi
There are 3 types of messages that can be send that would allow to “configure” telemetry.
PARM and UNIT are straightforward and configure the channel name and unit.
EQNS is to configure the constants in the following quadratic equation a*x2 + b*x + c
, which is used to calculate the final value.
Example of calculating the final value for channel #2:
x = 100 a = 0, b = 0.53, c = -32 0*100^2 + 100*0.53 + (-32) 0 + 53 + (-32) ---- Btemp: 21 def.F
Support
Both http://aprs.fi and http://tracker.habhub.org/ recognize the format and will graph the telemetry accordingly.
Base91 comment telemetry
Base91 comment telemetry
2)
is an alternative to the telemetry report format.
The key advantages are:
- Short (4 to 16 characters)
- Can be added to the comment field of any format (position reports for example)
- Each channel has resolution of 0-8280
- Set up the same way
Example C program
#include <stdio.h> void base91_encode(char *buf, unsigned short value) { // valid values are 0 - 8280 value = value % 8281; // encode the value buf[0] = 33 + (value / 91); buf[1] = 33 + (value % 91); } int main(void) { printf("APRS base91 telemetry extension example\n"); printf("---------------------------------------\n"); // One channel of telemetry char telem1[] = "|ss11|"; base91_encode(&telem1[1], 1); // sequence number base91_encode(&telem1[3], 0); // ch1 printf("Telemetry #1: %s\n", telem1); // Five channels of telemetry char telem2[] = "|ss1122334455|"; base91_encode(&telem2[1], 2); // sequence number base91_encode(&telem2[3], 1111); // ch1 base91_encode(&telem2[5], 2222); // ch2 base91_encode(&telem2[7], 3333); // ch3 base91_encode(&telem2[9], 4444); // ch4 base91_encode(&telem2[11], 5555); // ch5 printf("Telemetry #2: %s\n", telem2); }
Human readable format in the comment field
This method is straightforward, simply format and append telemetry to the comment field. Example:
LZ1DEV-11>APRS,…:=0001.00N/00001.00Wv266/024/A=000299 13.55Cint -30.51Cext 3.45V 7Sats |----------- comment -------------|
Things too keep in mind:
- the packet will be longer than necessary
- the amount of characters in the comment section is limited, depending on the packet type (e.g. 0-28, 0-43)
- existing system won't recognize the telemetry and provide friendly plotting over time