This is an app for Android that provides the essential functions required when chasing a high altitude balloon (ideally one transmitting LoRa packets, but other modes can be integrated):
- Chase car upload to Habitat
- LoRa reception and upload, via USB or Bluetooth
- Backup reception of telemetry via Habitat
- 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
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. Or, if you have your own LoRa receiver that can feed data via Bluetooth or USB, then it is simple to add the required protocol.
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!
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.
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
- 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, Habitat 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 Habitat (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.
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.
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; if you wish it to centre on the payload then touch the “Payload” button.
There are 3 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”.
“Chase Car ID” is what your position will appear as on the spacenear.us map.
“Period” is how many seconds between uploads.
Touch “Enable Upload” (so it is highlighted in yellow) to enable the uploads.
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 2 buttons enable upload of telemetry and SSDV from the tracker.
LoRa USB Settings
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.
“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.
“White List” is one or more payloads, separated by commas, that the app will download telemetry for from Habitat. This is useful if you do not have a receiver connected to your phone.
The “Download From Habitat” button enables download of payloads listed in the white list or received directly via an attached LoRa receiver.
NOTE: UDP Rx Port now added. Set this to tell the app to listen for telemetry on the specified port. That 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.
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.