PADD (named after the Star Trek tablets) is an app for Android tablets to aid with chasing balloons. It has a few more functions than my phone app (Explora), and both apps share the same common HAB library with my HAB Base program. You can read more about the app here.

I’m about to release an updated version with several changes:

  • AFC on LoRa gateway, USB, Bluetooth sources
  • Frequency search function on LoRa USB and Bluetooth sources
  • Uplink to HAB for AFC LoRa gsteway, USB, Bluetooth sources
  • More robust parsing
  • Handle regional variations in number formats


AFC is Automatic Frequency Control. It’s available within PADD for LoRa sources – USB, Bluetooth and the Pi LoRa Gateway. Once you start receiving LoRa packets from a balloons, AFC will first correct any frequency error and then will continue to correct any errors of 1kHz or greater, which is useful if the balloon transmitter drifts with temperature.

AFC is recommended for LoRa modes 0 and 1 which are narrow bandwidth and have a correspondingly narrow capture band of +/- 4kHz difference between transmitter and receiver frequencies. For other LoRa modes it is better to leave AFC off as those modes can cope with much greater frequency errors than you will see.

To enable AFC, touch the Settings button then the source you want to set and then the AFC button. Press Apply to save.

For the gateways, AFC is performed on the gateway itself so PADD just tells the gateway to enable AFC on the selected channel. For USB and BT sources, PADD does the AFC itself.

Frequency Search

For the LoRa modes 0 and 1, it’s possible that with the transmitter (balloon) and receiver (PADD) set to the same nominal frequency, there’s actually a larger frequency offset between the two than the LoRa modules can cope with. This can make it frustrating to tune in to a transmitter even if you know the nominal frequency it is set to.

To aid with this situation, the USB and Bluetooth sources now have frequency search functions on their settings screens:

To use, first set the LoRa mode and nominal frequency used by the transmitter, and then click the Search button. PADD with then cycle through the target frequency range, looking for a transmission. Once it starts receiving packets on a specific frequency, it will stop searching and will set the receive frequency to match the transmitted frequency.

Only use this function with LoRa Mode 1. Mode 0 is too slow for the search function to work, and other modes do not need the search function anyway.


I will cover uplinks in detail in a separate blog post, including how to configure your tracker to receive and process the uplinked messages. So here I will just cover how to send uplinks from PADD.

Uplinks to a balloon can be very useful. So useful in fact that they can rescue a flight that would otherwise be lost. If you have a cutdown device on your flight, and you see that the balloon is headed for the sea due to a slow ascent for example, then you can order the payload to cut itself away from the balloon and land on land.

PADD now provides an Uplink page:

The left column has 3 buttons for up to 3 balloon payloads being received. The buttons are filled in automatically as payloads are received and, if there is more than one, then you need to select the payload to upload to.

The next column shows the various sources, and you can choose from any source that is receiving from one of those payloads.

The top-right of the screen shows the different types of uplink command, which are:

  • Cutdown Now
  • Cutdown when balloon reaches specified altitude
  • Switch specified tracker output on
  • Set specified payload servo to given position
  • Run specified script or program on tracker

Not all of these will be available for any given tracker.

The centre-right of the screen determines when to send the message. For the tracker to see your message, it has to be sent at a time when the tracker is listening and not transmitting. PADD offers 3 options:

  • Send now. It’s up to you to know when to send!
  • Send at particular time in the minute. For trackers that are normally transmitting but sometimes have a short listening period, this is the best option.
  • Send after the next packet is received. This is best for trackers that transmit one packet then wait for a period before sending the next.

Note that for the LoRa Gateway, timing is done by the gateway itself so you need to configure the uplink timings there.

The bottom-right section contains a box for a password. This is used to encrypt the message before transmission, and should match the password used by the tracker to decrypt the message. This makes it very unlikely that a 3rd party could send valid commands through to your balloon.

Follow me on Twitter for release announcements of this and other apps.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.