Skip to content
Mark Jessop edited this page Dec 28, 2017 · 21 revisions

Project Horus Ground Station & Chase Car Utilities

This repository contains various libraries & utilities used for:

In the context of this repository, the term 'telemetry' generally refers to position (latitude/longitude/altitude) data from a high-altitude balloon payload, but can also include command & control messages, for example those send to/from the mission control payload.

In essence, these utilities provide the 'glue' that connects the telemetry sources (LoRa receivers, fldigi, radiosonde receivers) with the mapping applications (OziPlotter, Habitat).

The main use-cases for these utilities are:

  • Management of telemetry on a High Altitude Balloon Chase-Car PC
  • Headless reception of Mission Control Payload telemetry using a Raspberry Pi.

All the applications mentioned within this documentation are provided as Python scripts (within the apps directory), which are (mostly) cross-platform.

Related repositories include radiosonde_auto_rx (a source of payload telemetry data, in this case from radiosondes), and OziPlotter (for offline mapping of payload positions).

Data Flow Overview

Data Flows between Horus Utilities

The above figure shows the interactions between the various Horus Utilities, and other applications. Dashed arrows represent broadcast UDP messages, available to any application on the local network, and continuous lines represent 'targeted' inter-process messages, either via TCP or UDP.

At a high level, data flow is from a 'Data (telemetry) Source' (i.e. dl-fldigi, radiosonde_auto_rx, or LoRaUDPServer), through a 'Data Processing' application, and finally to data selection & mapping (OziPlotter).

Telemetry from multiple data sources can be fed into OziMux (OziPlotter Multiplexer), and a data source selected by the operator for mapping. There are also a number of 'sidecar' applications which allow display and use of the telemetry data in other ways (i.e. to point an az/el rotator).

The next few sections will discuss the various data sources, data processing, and sidecar applications.

Data Sources

Data Source applications collect payload telemetry data, usually via a radio receiver, and pass it on to a processing application.

dl-fldigi

dl-fldigi is the UKHAS fork of the fldigi 'fast light digital modem', which supports many common amateur radio data modes. In the context of high-altitude ballooning, it is used to receive 'UKHAS Standard' format telemetry from balloon payloads, usually using 50 or 100-baud RTTY modulation. Refer to the UKHAS Tracking Guide for detailed information on how to configure dl-fldigi

dl-fldigi provides a TCP interface on port 7322 where all demodulated data can be accessed for further processing. FldigiBridge (see below) performs this function.

radiosonde_auto_rx

radiosonde_auto_rx provides software which automatically scans for radio signals, and decodes telemetry from Meteorological Radiosondes. These are essentially 'free' balloon launches, which provide great practice for a hobbyist high altitude balloon launch.

This software is intended to be run on a Raspberry Pi, and so must be connected to the same local network as the other Horus utilities to be able to supply telemetry.

Refer to the radiosonde_auto_rx documentation for information on use and configuration of this software. Take particular note of the 'Sending payload data to OziPlotter / OziMux' section of the Configuration Settings documentation page.

LoRaUDPServer

TBD

Data Processing

Telemetry information from some of the above data sources can require additional processing before it is in a format for passing onwards for selection & display.

FldigiBridge (processing of data from dl-dldigi)

FldigiBridge is a GUI application which connects to dl-fldigi (see above), and listens for telemetry in the UKHAS standard format.

The telemetry string must use a CRC16 checksum, and have the following first format:

  • $$CALLSIGN,sentence_id,time,latitude,longitude,altitude,other_data_here*CRC16\n

FldigiBridge cares not what modulation scheme (RTTY, or otherwise) your payload is using - it just reads the decoded data out of dl-fldigi via a TCP connection. Time/latitude/longitude/altitude are extracted and passed on if the checksum is valid.

By default, FldigiBridge outputs data to UDP port 55683, which is a default setting within OziMux.

Fldigi Bridge Screenshot

HorusGroundStation (Processing of data from LoRaUDPServer)

TBD HorusGroundStation Screenshot

Data Selection - OziMux

OziMux Screenshot

The OziMux application allows observation and selection of telemetry from the data sources mentioned above. The telemetry data, and age of that data, is displayed on a GUI (shown above). Based on the operators determination of the quality of the provided data (i.e. regularity, non-glitchy position info), a source can be selected. The telemetry data is then passed onwards to OziPlotter for display on a map.

OziMux requires a configuration file to setup the input and output UDP ports. Refer to the Configuration page for further information.

Mapping/GIS - OziPlotter

OziPlotter is an interface between Project Horus's Ground Station receiver utilities and the OziExplorer mapping software. Refer to the OziPlotter documentation for further information

Clone this wiki locally