This a Windows program designed to make it simple to manage one or more HAB receivers, especially LoRa receivers (USB or Pi gateway). It can also collect telemetry from other sources such as radiosondes. It accepts data in several formats from several different types of receiver, and displays the results as tables, charts and a map. Sources include:

  • LoRa Gateway
  • USB-connected LoRa receiver (LoRaGo, Arduino LoRa, ESP32 LoRa)
  • Bluetooth-connected LoRa receiver (ESP32 LoRa)
  • dl-fldigi
  • auto_rx Radiosonde receiver
  • Habitat

The Habitat source can be filtered to only include balloons (amateur and/or met office sondes) within a certain radius of your location. This is very useful for spotting balloons that you might be able to receive directly, so you can then set a receiver and maybe aim an antenna. The program gives you distance and elevation, plus a direction line on the map, to help with that. For each payload, you get:

  • Usual telemetry
  • Display of distance and elevation
  • Ascent/Descent rate
  • Balloon/parachute on the map
  • Telemetry history table
  • Altitude plot

For LoRa receivers, you also get:

  • Signal strength gauge
  • Signal search function (frequency scan)
  • Uplink function (e.g. cutdown)

Screen Layout

The screen is split into 3 panes:

  • The left pane contains the telemetry sources and settings
  • The centre panel is a live Google map showing the received balloons
  • The right panel shows the individual payloads being received

The pane dividers can be moved with the mouse and will remember their positions when the program is closed and re-opened.

System Settings

Click the System Settings button at the bottom-left of the program.

The callsign should be your ham radio callsign, if you have one, otherwise some unique identifier. It is only used for uploading telemetry from the program to the habhub server, and means that you can then check that system to see what you have uploaded. Note that the program only uploads telemetry from certain sources – e.g. USB LoRa receivers – because other sources generally upload directly to habhub anyway.

The latitude and longitude are used to mark your location on the map, and to determine the distance to each received balloon. The altitude is used to determine the angle of elevation to each balloon.

The Payload Expiry value is used to determine when to remove balloons from the map and the payloads panel; any balloon that has not been heard of for that period is removed.

Finally, the UDP Output Port is used to broadcast received telemetry, in case you have a separate app that wants to see it. Set to zero or blank to disable.

Click Save to save the settings to the file settings.json.

Balloon Filters

Click the Balloon Filters button at the bottom-left of the program.

Here you can set filters to determine which balloons are accepted. So long as a balloon passes at least one filter then it will be passed through to the map etc.

Generally it’s sufficient to set just one filter, with a maximum distance so that balloons that are far beyond your radio horizon are excluded; otherwise if you enable a habhub source your map will quickly fill with balloons across the globe.

Creating A Source

If you have no sources yet, click the “Add Source” button at the top of the left panel; otherwise click the “…” button on any of the existing source and choose “Add New Source” from the pop-up menu. You will then see:

You can choose from:

  • Logtail – Reads payloads from the habhub logtail
  • LoRa Gateway – Connects via TCP/IP to a Pi LoRa Gateway
  • LoRa Serial – Connects to a USB serial or Bluetooth serial LoRa receiver
  • TCP – Connects to a TCP port emitting telemetry
  • UDP – Listens to a UDP broadcast on the specified port

You will then see a settings screen specific to the type of source that you chose. All sources share some settings – the code (a unique 2-letter code for that source) the name – something longer and meaningful, and whether to enable this source or not. The last feature allows you to temporarily disable a source without deleting it.

For USB, connect the device and note which port it is allocated; check in device manager if necessary. Then fill in the COM port e.g. “COM4” plus the frequency and LoRa mode.

For Bluetooth, you will need to pair with the receiver before it can be used. As for USB, the device will be allocated a serial port number which you should note.

For a LoRa Gateway, enter the IP address or hostname of the gateway device on the Settings –> Gateway 1 (or 2) screen. Note: Android will not normally work with local hostnames, however if you configure your gateway(s) to emit UDP metadata, then that data contains the gateway hostname and IP address. You can then set the Android app to listen to the same UDP port, and when it hears that data it will match the hostname to the IP address so it can connect via that. For the gateway, you can set 2 frequencies and 2 modes assuming your gateway has 2 modules fitted.

For TCP sources, specific the IP address or hostname, plus the port number, of the program or device to connect to. This source is listen-only; you cannot control the frequency or other settings.

For UDP sources, you just need to set the port number. This source is listen-only; you cannot control the frequency or other settings.

Supported formats for the TCP and UDP sources include raw UKHAS telemetry, OziMux and OziPlotter formats.


Created source are listed in the left panel. By default they each occupy a small bar with the code/name of the source and some buttons. The bar is coloured:

  • Dark Grey is for sources that are currently disabled.
  • Green is for enabled sources
  • Lime is for active sources – i.e. ones with recent telemetry
  • Red is for sources that have failed to connect

There are 2 buttons:

“…” shows the menu:

  • Enable/Disable the source
  • Modify source
  • Delete source
  • Add New source

The “?” button shows the full panel:

Not every source has all of these tabs:

  • Status – shows the latest telemetry, also events such as connecting to the source.
  • Channel(s): – (LoRa only) shows the current frequency/mode, current and packet RSSI values, latest packet frequency error, AFC switch. Also there is a “Search” button to help tune in to a transmission if you don’t know its exact frequency – the program will scan and automatically set the frequency for you. Note that this assumes a) the LoRa mode is correct, b) that the transmitter sends at least 1 packet every 5 seconds.
  • History – Recent telemetry as a table
  • Uplink – LoRa only, allows for uplinks to the tracker, if the tracker has been set for that. Uplinks will be discussed in detail in a specific blog page soon.


Currently this is a Google map but that may change if usage starts to exceed my free quota.

Received balloons are shown on the map, as payloads/balloons/parachutes according to deduced flight phase. Each is surrounded by reception circles (as the Spacenear map does) and lines between the balloons and your receiver position. The map is scrollable and zoomable as you would expect.


Payloads are listed in the panel on the right. As for the sources, by default only a small bar is shown with the background being a predetermined colour for that payload. The bar also has the time since reception on the left, with a lime background for recent reception, and the same 2 buttons as on the sources – an arrow to open the full panel and a menu button. The menu is currently inoperative.

The full panel is like this:

The tabs are:

  • Position – Current payload position, ascent/descent rate, distance and elevation. If the tracker is transmitting a landing prediction then that is included.
  • Signal – This tab is only present if this payload is being received by a LoRa Gateway or serial device. It shows the current signal strength.
  • History – Shows a table of recent positions, including the codes for each source that received that particular position.
  • Charts – Altitude plot.


Installer V1.3.3 available here.

Comments are closed.

Subscribe to RSS Feed Follow me on Twitter!