From 818a97a278798799cbc4395802ea704084e478c2 Mon Sep 17 00:00:00 2001 From: roema Date: Sat, 31 Oct 2020 19:14:35 +0100 Subject: [PATCH] add APRS proto examples --- ReceiverBeacon.md | 24 +++++++++++++++++++ ReceiverStatus.md | 54 ++++++++++++++++++++++++++++++++++++++++++ SenderBeacon.md | 60 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 138 insertions(+) create mode 100644 ReceiverBeacon.md create mode 100644 ReceiverStatus.md create mode 100644 SenderBeacon.md diff --git a/ReceiverBeacon.md b/ReceiverBeacon.md new file mode 100644 index 0000000..5d85dec --- /dev/null +++ b/ReceiverBeacon.md @@ -0,0 +1,24 @@ +As of version 0.2.6, a complete receiver beacon message looks as follows: + + LKHS>APRS,TCPIP*,qAC,GLIDERN2:/211635h4902.45NI01429.51E&000/000/A=001689 + +This message is standard APRS: + +* 'LKHS>': origin + * 'LKHS': receiver callsign +* 'APRS,TCPIP*,qAC,GLIDERN2:': source + * 'APRS': software version (always "APRS") + * 'TCPIP*': tunneling (always "TCPIP*") + * 'qAC': [q construct](http://aprs-is.net/q.aspx) (not suited for beacon identifcation) + * 'GLIDERN2': receiver callsign (APRS server) +* '/': either "/" (timestamp and position follow) or ">" (timestamp follows) +* '211635h': timestamp in 24h notation UTC (21 hours, 16 minutes, 35 seconds) +* '4902.45NI01429.51E&': optional position (WSG84) + * '4902.45N': latitude (49 degrees, 2.45 minutes north) + * 'I': [display symbol](http://wa8lmf.net/aprs/APRS_symbols.htm) - table to use (alternate symbol table "I") + * '01429.51E': longitude (14 degrees, 29.51 minutes east) + * '&': [display symbol](http://wa8lmf.net/aprs/APRS_symbols.htm) - position in table "I" to use (diamond symbol with overlay) +* '000/000': *optional* heading and speed ("000/000" indicates no data) + * '000': heading (001 thru 360) in degrees ("000" = no data) + * '000': ground speed in knots (heading "000" = no data) +* '/A=001689': *optional* altitude (1689 feet) diff --git a/ReceiverStatus.md b/ReceiverStatus.md new file mode 100644 index 0000000..bc69f62 --- /dev/null +++ b/ReceiverStatus.md @@ -0,0 +1,54 @@ +As of version 0.2.6, a complete receiver status message looks as follows: + + LKHS>APRS,TCPIP*,qAC,GLIDERN2:>211635h v0.2.6.ARM CPU:0.2 RAM:777.7/972.2MB NTP:3.1ms/-3.8ppm 4.902V 0.583A +33.6C 14/16Acfts[1h] RF:+62-0.8ppm/+33.66dB/+19.4dB@10km[112619]/+25.0dB@10km[8/15] + +--- + +The first group is standard APRS: + + LKHS>APRS,TCPIP*,qAC,GLIDERN2:>211635h + +* 'LKHS>': origin + * 'LKHS': receiver callsign +* 'APRS,TCPIP*,qAC,GLIDERN2:': source + * 'APRS': software version (always "APRS") + * 'TCPIP*': tunneling (always "TCPIP*") + * 'qAC': [q construct](http://aprs-is.net/q.aspx) (not suited for beacon identifcation) + * 'GLIDERN2': receiver callsign (APRS server) +* '/': either "/" (timestamp and position follow) or ">" (timestamp follows) +* '211635h': timestamp in 24h notation UTC (21 hours, 16 minutes, 35 seconds) + +--- + +All subsequent groups are OGN specific receiver status details: + + v0.2.6.ARM CPU:0.2 RAM:777.7/972.2MB NTP:3.1ms/-3.8ppm 4.902V 0.583A +33.6C 14/16Acfts[1h] RF:+62-0.8ppm/+33.66dB/+19.4dB@10km[112619]/+25.0dB@10km[8/15] + +* 'v0.2.6.ARM': *optional* software and hardware + * '0.2.6': software version + * 'ARM': *optional* hardware platform +* 'CPU:0.2': CPU + * '0.2': load average +* 'RAM:777.7/972.2MB': memory in MB + * '777.7': free + * '972.2': total +* 'NTP:3.1ms/-3.8ppm': real-time clock + * '3.1ms': offset from reference time + * '-3.8ppm': correction (parts-per-million) +* '4.902V': *optional* board voltage +* '0.583A': *optional* board amperage +* '+33.6C': *optional* CPU temperature +* '14/16Acfts[1h]': *optional* senders (aircraft) received within the last hour + * '14': visible senders received + * '16': total senders received (the difference of 2 are invisible senders by setting either "no-track" on the device or "invisible" in the database) +* '+62-0.8ppm/+33.66dB': *optional* RTLSDR information + * '+62': *optional* manual correction + * '-0.8ppm': *optional* automatic correction based on GSM + * '+33.66db': signal-to-noise ratio +* '+19.4dB@10km[112619]': *optional* quality of all senders (aircraft) + * '+19.4dB@10km': average signal-to-noise ratio normalized to 10km distance + * '112619': number of analyzed messages +* '+25.0dB@10km[8/15]': *optional* quality of good senders (aircraft) within the last 24 hours + * '+25.0dB@10km': average signal-to-noise ratio normalized to 10km distance + * '8': number of senders which are considered good and properly transmitting + * '15': total number of senders (the difference of 7 are considered bad and not properly transmitting) diff --git a/SenderBeacon.md b/SenderBeacon.md new file mode 100644 index 0000000..82ec629 --- /dev/null +++ b/SenderBeacon.md @@ -0,0 +1,60 @@ +As of version 0.2.6, a complete sender (aircraft) beacon message looks as follows: + + FLRDF0A52>APRS,qAS,LSTB:/220132h4658.70N/00707.72Ez090/054/A=001424 !W37! id06DF0A52 +020fpm +0.0rot 55.2dB 0e -6.2kHz gps4x6 s6.01 h03 rDDACC4 +5.0dBm hearD7EA hearDA95 + +--- + +The first two groups are standard APRS: + + FLRDF0A52>APRS,qAS,LSTB:/220132h4658.70N/00707.72Ez090/054/A=001424 !W37! + +* 'FLRDF0A52>': origin + * 'FLRDF0A52': sender callsign (may include device ID) +* 'APRS,qAS,LSTB:': source + * 'APRS': software version (always "APRS") + * 'qAS': [q construct](http://aprs-is.net/q.aspx) (not suited for beacon identifcation) + * 'LTSB': receiver callsign +* '/': position with timestamp follows +* '220132h': timestamp in 24h notation UTC (22 hours, 1 minute, 32 seconds) +* '4658.70N/00707.72Ez': position (WSG84) - see position precision enhancement below as well + * '4658.70N': latitude (46 degrees, 58.70 minutes north) + * '/': [display symbol](http://wa8lmf.net/aprs/APRS_symbols.htm) - table to use (primary symbol table) + * '00707.72E': longitude (007 degrees, 07.77 minutes east) + * 'z': [display symbol](http://wa8lmf.net/aprs/APRS_symbols.htm) - position in table "/" to use (house symbol) +* '090/054': *optional* heading and speed ("000/000" indicates no data) + * '090': heading (001 thru 360) in degrees ("090" = east) + * '054': ground speed in knots +* '/A=001424': altitude (1424 feet) +* '!W37!': position precision enhancement + * '3': latitude minutes third decimal digit (46 degrees, 58.703 minutes north) + * '7': longitude minutes third decimal digit (007 degrees, 07.727 minutes east) + +--- + +All subsequent groups are OGN specific sender details: + + id06DF0A52 +020fpm +0.0rot FL000.00 55.2dB 0e -6.2kHz gps4x6 s6.01 h03 rDDACC4 +5.0dBm hearD7EA hearDA95 + +* 'id02DF0A52' + * 0x'06' = 0b'00000110': sender details (2 digit hex number encoding 8 bits) + * 0b'0' = 'false': stealth mode boolean (should never be "1") + * 0b'0' = 'false': no-tracking boolean (must ignore if "1") + * 0b'0001' = '1': + * 0b'10' = '2': address type - 01 ICA 02 FLR 03 OGN 04 P3I 05 FNT 0 RANDOM + * 'DF0A52': sender address +* '+020fpm': climb rate in "feet per minute" +* '+0.0rot': turn rate in "half turn per 2 minutes" +* 'FL000.00': *optional* flight level +* '55.2dB': signal to noise ratio (5db are considered the lower limit for meaningful reception) +* '0e': CRC error rate (>5 is considered unusable) +* '-6.2kHz': frequency offset (should be constant thanks to GSM sync) +* 'gps4x6': *optional* GPS signal quality + * '4': horizontal accuracy (4 meters) + * '6': vertical accuracy (6 meters) +* 's6.01': *optional* FLARM software version +* 'h03': *optional* FLARM hardware version (hex) +* 'rDDACC4': *optional* FLARM device ID +* '+5.0dBm': *optional* power ratio :warning: unconfirmed +* 'hearD7EA hearDA95': *optional* other FLARM devices received by this device + * 'hearD7EA': receiving FLARM device with ID ending "D7EA" + * 'hearDA95': receiving FLARM device with ID ending "DA95"