It’s sometimes useful to be able to send a message up to a high altitude balloon – for example to command a cut-down if the flight path is not as planned and is likely to result in a lost payload. This can be done using a radio uplink, either on a different frequency to the downlink or using a different slot in a TDMA system.
Uplinks can require a higher transmitted power, as the payload has a wide horizon and may “see” unwanted signals within the received bandwidth.
So for the above reasons I designed an uplink device using a LoRa radio transceiver (something I’ve been experimenting with on recent flights):
The output from the LoRa transceiver goes to a Minikits 7W UHF Power Amplifier:
which provides a very useful 7W into the transmitting antenna, which would normally be a Yagi pointed at the balloon.
The LoRa is controlled by an Arduino Mini Pro using software derived from my LoRa tracker code. In TDMA mode this requires accurate timing which it gets from a UBlox GPS receiver. Power is from a 1.2AH 12V Sealed Lead Acid battery, and the entire system is housed in a diecast aluminium enclosure.
The Arduino needs to know what to upload to the balloon, and also which balloon to send the message to. In my TDMA system each device has an ID from 0 to 15, where the devices can be balloon trackers or uplink devices. All this information is sent from a PC using a separate local radio link, via a pair of LPRS EasyRadio Transceivers.
At the PC end, the transceiver is powered by and receives data via an FTDI USB-TTL serial adapter. A small program on the PC is used to select the serial port, after which it asks the uplink device for status (e.g. software version), and polls it for current status (e.g. battery voltage, GPS status). It allows the balloon network parameters to be set (frequency, TDMA cycle time, TDMA slot number) and allows a command to be sent (target payload ID, message to send):