HAB Explora is an Android app that provides the essential functions required when chasing a high altitude balloon (ideally one transmitting LoRa packets, but other modes can be integrated). It offers:

  • Chase car upload to HABHUB and sondehub/amateur
  • LoRa reception and upload via a USB or Bluetooth LoRa receiver
  • Backup reception of telemetry via HABHUB and sondehub/amateur
  • Reception of telemetry via UDP over WiFi
  • Transmission of received telemetry via UDP over WiFi
  • Display of telemetry
  • Display of distance and direction to payload
  • Display of map with balloon and chase positions
  • Function to display driving route on map
  • Function to provide navigation to balloon using external navigation app

The app is available in the Google Play store.

I now have a video tutorial for this app.

LoRa reception is via an OTG USB connection to a simple receiver comprising a LoRa module plus microprocessor with USB port; this is now available in the Uputronics store, or to build one see this article. Or it can use a Bluetooth connection to similar hardware, using a Bluetooth adapter (e.g. HC-06) connected to the Arduino.


Install and start the program. When it starts it will ask for permission to use the device’s location; since this is needed for almost all program functions then it’s best that you agree!

Connect Receiver

For USB, connect the LoRa receiver via a USB OTG cable, taking care to connect the host end to the phone and the slave end to the receiver. Android will ask you if you wish to allow the app to use the device (again, you do!).

Check the box so that this app is automatically started when you reconnect this USB LoRa device.

For Bluetooth, you will need to pair the phone with the receiver before it can be used, and then choose the paired device under Settings –> BT.

Screen Elements

The app has 3 screen sections. At the top is the main menu with 4 buttons:

  • Payloads – Shows received telemetry for up to 3 payloads
  • Direction – Shows the direction and distance to the selected payload
  • Map – Embedded Google map showing balloon(s) and chase device
  • Uplink – This is for sending commands up to the balloon
  • Settings – Shows the various setup screens

The bottom of the screen is for status (NOTE: UDP now added)

This shows the LoRa USB status, LoRa Bluetooth status, Sondehub/amateur status, HABHUB status, UDP status and GPS status. These blocks are colour-coded with black-on-dim-yellow meaning not in use; red text shows error or no data; green shows good recent data. The bar also shows current UTC time from the phone’s GPS. The circles, where present, show the upload status to HABHUB/Sondehub (Green = Good, Red = Failed, Gray = Not in use).

The central area is for function-specific screens, and initially just shows a splash screen with app version number.


Up to 3 payloads can be displayed; if a 4th is heard then it will replace whichever of the other 3 has the oldest data.

Each displayed payload shows the payload ID, time since last message received, UTC time of that message (as sent by the payload), latitude and longitude, altitude (with maximum altitude in brackets), and ascent/descent rate.

If you do have multiple payloads then you can select between them by touching in the box for the desired payload; the selection will then have a thicker border than the others. Once done, the selected payload will be used on the direction screen and for navigation.

Direction Screen

This screen shows the distance and direction from your location to the latest position received from the payload.

If your phone has a magnetic compass then that will be used; if not then the GPS “heading” value will be used. The former gives direction to the phone’s orientation; the latter gives the the phone’s direction of movement and for tor this to be accurate you need to be moving, so if you aren’t then walk approx 10-20 metres in a straight line. If the phone isn’t reporting a heading then the compass marker will be in red, and will show the payload direction relative to North (North = straight ahead).

Below the compass there are blocks for the payload latitude, longitude and altitude. Below these are buttons for navigation and map directions to the payload:

  • Navigation invokes a navigation app. First time you do this Android will ask you to choose which app you want to use for navigation (e.g. Waze, Google Maps).
  • Off Road is the same, but uses a different Android “intent” which means that Android will ask again for your choice and will remember that choice separately. So you can choose a different app e.g. Back Country Navigator or another OS mapping app.
  • Show Route uses an embedded (i.e. within this app) Google Map to show road directions to the payload.

Map Screen

This shows an embedded Google map:

The map will initially centre on your location, but will then allow you to drag the map around at will. If you wish it to remain centred on your location then touch the “Car” button at the bottom-left of the map; if you wish it to centre on the payload then touch the “Payload” button.

The map shows your location and up to 3 balloons each with their projected landing positions (if included in the tracker telemetry).

Choose the payload to send to at the top; these buttons are filled in automatically as they are received by the app.

Choose the LoRa transceiver from the next row of buttons. These are enabled automatically according to which transceivers are connected to the app.

Below that, choose the type of command to send.

Next, set when to send the command. If your tracker is set for a listening period at the start of each minute, select the “Send on n#’th second” option. If your tracker is set to transmit then listen for a period, choose “Send after Rx”.

If your payload needs a password to encrypt the commands, insert this. Finally, click the “Beam This Up” button to transmit the command.

Settings Screen

There are 4 sections on the settings page:

  • GPS – Controls upload of phone GPS position
  • USB – Settings for the attached USB LoRa receiver
  • BT – Setting for the attached Bluetooth LoRa receiver
  • Other – Miscellaneous settings e.g. control telemetry downloads from Habitat

Touch the appropriate button to enter your desired section. Once there, make your adjustments and then touch “Apply” or “Cancel”.

GPS Settings

“Chase Car ID” is what your position will appear as on the online maps.

“Period” is how many seconds between uploads to the online servers.

Touch “Enable xxx Upload” (so it is highlighted in yellow) to enable the upload to that specific server.

LoRa USB Settings

“Frequency” is the centre frequency to set the receiver to.

“Mode” is the LoRa mode to set from 0 to 7; most commonly 0 is used for telemetry, and 1 for SSDV with telemetry.

“Receiver Callsign” is used when uploading telemetry and will appear in the listener section against the payload on spacenear.us.

The 3 upload buttons enable upload of telemetry or SSDV from the tracker to the HABHUB, Sondehub/amateur and SSDV servers.

AFC enables Automatic Frequency Control which is useful for modes 0 and 1 to keep the receiver locked as the payload temperature changes.

LoRa Bluetooth Settings

As for the USB section above, except for the addition of a “Device” box from where you can choose the paired Bluetooth device. This pairing must be done before entering the settings screen.

Other Settings

“UDP Tx Port” is the port number that the app will broadcast telemetry to; this is useful if the Phone is on a wifi connection with another device that you would like the telemetry sent to.

“UDP Rx Port” is the port number that the app will listen to for incoming telemetry; this is useful if the Phone is on a wifi connection with another device that is transmitting telemetry over UDP.

“White List” is one or more payloads, separated by commas, that the app will download telemetry for from HABHUB and Sondehub/amateur. This is useful if you do not have a receiver connected to your phone. This telemetry can be in auto_rx format (Horus or OziMux) or can be raw UKHAS packets e.g. sent from dl-fldigi or HABDEC via a UDB broadcaster or from another copy of HAB Explora.

The “Download From xxx” buttons enable download of payloads listed in the white list or received directly via an attached LoRa receiver.


To see the status of the data sources, touch the status bar on any of the source buttons (USB/Habitat/GPS).


If you want to change which apps are invoked from the Directions screen, go to Android Settings –> Apps, choose the existing app, then choose “Open by default”, then “Clear defaults”.

An extra section has now been added for UDP sources.