projecthorus / sondehub-aprs-gateway

5 stars 2 forks source link

SondeHub APRS Gateway

This gateway takes a feed of traffic from APRS-IS, looks for APRS position reports that might be a high-altitude balloon, and uploads them to the SondeHub-Amateur database.

It also uploads the station locations of APRS receivers, if their position has recently been uploaded to APRS-IS.

This software runs within the SondeHub AWS ecosystem, and cannot be run elsewhere as it requires direct access to the SondeHub database. It does not receive APRS packets directly from a radio or act as an APRS iGate, for that you need to run other software such as direwolf.

Please contact us if you are having issues with getting your APRS payload on the SondeHub-Amateur map.

Contacts

Packet Filtering

Currently the following filters apply. Other requirements may be added in the future.

The position must:

We block packets containing the following strings in the comment fields:

We block packets from the following 'tocall' destinations:

We block packets with the following in their path:

We also block packets from the following source callsigns:

Timestamps

The APRS-IS importer will parse and use timestamps included in APRS packets, e.g. the HHMMSSh format. Note that we assume that all timestamps are in UTC. If this is not the case, you may experience strange behaviour on the tracker!

Telemetry

Currently we do not support decoding APRS telemetry packets, though this may be added in the future.

There is some limited support for decoding telemetry from the comment field of the following APRS tracker models:

Note that the telemetry must be exactly in the provided format, else parsing will fail.

If you would like support added for another tracker model, please contact us.

Chase-Car Positions

Chase cars can have their positions plotted on the SondeHub-Amateur tracker by adding SHUB or SHUB1-1 to their APRS path. Note that we do not support APRS chase car position uploading for the 'professional' (meteorological) SondeHub tracker.

Testing & Development

Create and enter a Python venv

$ python3 -m venv venv
$ . venv/bin/activate

Install dependencies:

$ pip install -r requirements.txt

Run with:

CALLSIGN=YOURCALL python -m sondehub_aprs_gw

This will run and output debug info, but will not upload to SondeHub unless the SNS environment variable is set.