Skip to content

[DRAFT] Amateur Balloon Telemetry Format

Mark Jessop edited this page Jul 8, 2023 · 12 revisions

This page describes the telemetry format that is uploaded to the SondeHub ElasticSearch Database.

Each telemetry datapoint is uploaded as a JSON object, with the fields described in the tables below. Multiple telemetry datapoints can be uploaded in one request.

Mandatory Fields

These fields represent the bare minimum amount of data that must be included in an upload.

Field Type Description Allowed Values Notes
software_name string Name of the decoding software e.g. 'horusdemodlib', 'Horus-GUI'
software_version string Version of the decoding software e.g. '0.3.0'
uploader_callsign string Callsign of the uploader Arbitrary string. Uploader position information and other metadata will be handled separately, but will need to match this callsign to enable calculation of listener statistics.
time_received string The time the telemetry packet was received. UTC time in YYYY-MM-DDTHH:MM:SS.SSSSSSZ format.
payload_callsign string Callsign of the payload being launched
datetime string Date/Time from the sonde's GPS, provided in YYYY-MM-DDTHH:MM:SS.SSSSSSZ format Note - as many amateur payloads only send time, not date, the date must be added on by the listener. Refer here for an example function to do this.
lat float Latitude (decimal degrees)
lon float Longitude (decimal degrees)
alt float Altitude (metres)

Optional Telemetry Fields

These fields should only be included in the uploaded JSON object if they are available, and considered to be reliable. Additional fields will be accepted however they may not be able to be queried from certain APIs.

Field Type Description Notes
frame int Frame Number, ideally unique over the entire flight.
temp float Measured Temperature (deg C, generally assumed to be an internal temperature sensor)
ext_temperature float External Temperature (deg C)
ext_humidity float Measured Relative Humidity (%)
ext_pressure float Measured Pressure (hPa)
vel_h float Horizontal Velocity (assumed to be in m/s)
speed float Horizontal Velocity (assumed to be in kph) (apologies for the two entries here...)
ascent_rate OR vel_v float Vertical Velocity (m/s) (The Horus binary decoders use the field name 'ascent_rate')
heading float Heading (degrees True)
sats int Number of SVs used in position solution
batt float Battery Voltage (volts)
tx_frequency float Transmit frequency of the radiosonde in MHz, as determined by information provided in the payload telemetry.
raw string Raw payload packet, as ascii text starting with $$ for RTTY packets, or hexadecimal for binary packets.

Optional Metadata Fields

These fields provide additional information about how and where the payload telemetry was received. These are all optional, though we recommend sending modulation and frequency to inform other tracker users where and how the payload is transmitting.

Field Type Description Notes
modulation str Modulation of the signal, will be shown on the sidebar on the tracker. Example values: 'APRS', 'Horus Binary', 'RTTY', 'LoRa', 'WSPR'
baud_rate int Baud rate of the modulation, not applicable to all modes. Rounded to the nearest Hz. Examples: 50, 100
snr float Signal-to-Noise ratio of the received signal, in dB
frequency float Transmit frequency of the radiosonde in MHz, as estimated by the receiver software (e.g. FSK frequency estimation).
rssi float Received-Signal-Strength-Indication of the payload signal, nominally in dBm
uploader_position list Station position, as a list [lat, lon, alt]
uploader_antenna string Station antenna information, free-text string.
uploader_radio string Station radio information, free-text string.