As I hope you’re already aware, the HABHUB system is due to be shut down in October 2022. This system has supported HAB in the UK and elsewhere for many years now, however the hardware is old, the operating system is old and unsupported, the database engine and other installed software components are old, and maintenance of these things is no longer tenable.
(Very) fortunately, we have an alternative. Sondehub has been running for about 3 years now, providing tracking of met office radiosondes, and Mark and Michaela of the Sondehub team have been busy providing the same infrastructure for amateur flights. Sondehub was designed to cope with the large number of radiosonde flights, and their high data update rates, so the system is well capable of coping with the much smaller number of amateur flights and their generally rather lower update rates.
HABHUB includes various components that are used daily by HAB enthusiasts, such as a burst calculator, predictor and the balloon tracking system with live map. All of these things either have equivalents with the Sondehub system, or have been ported over to it.
For more information on Sondehub and the transfer from HABHUB, see Mark’s article.
Useful Links
- Live Map – https://amateur.sondehub.org/
- Predictor – https://predict.sondehub.org/
- Burst Calculator – https://sondehub.org/calc/
Supported Tracker Modulations
For details information on this, see this article.
Most UK flights use RTTY or LoRa.
RTTY
The usual method for RTTY was to use dl-fldigi which uploaded directly to HABHUB, but this will stop working when the HABHUB server is switched off. However there are alternatives:
- Use Horus GUI
- Continue to use dl-fldigi (or, better, just fldigi) and have the output read by HAB Base which will show the decoded telemetry, place the payload on its own map, and upload the telemetry to sondehub/amateur.
LoRa
There are several programs available for receiving LoRa telemetry:
- HAB LoRa Gateway. This has been modified to upload to sondehub/amateur; you will need to update to V1.9.2 or later.
- HAB Base. This has been modified to upload to sondehub/amateur; you will need to update to V1.6.2 or later.
- HAB Explora. A new version will be released soon, with sondehub/amateur support (balloon telemetry and chase car upload) and also support for Android 11/12.
- HAB PADD. A new version will be released soon, with sondehub/amateur support (balloon telemetry and chase car upload) and also support for Android 11/12.
- Windows Serial Gateway. I don’t currently plan to modify this for sondehub/amateur as HAB Base does everything that it does.
What Do We Lose?
Flight Documents
Sondehub has no concept of flight documents, so please be sure to publicise your flight in the UKHAS Google Group. Obviously, you will no longer need to create flight documents or get them approved.
Payload Documents
Sondehub has no concept of payload documents, which were used to tell HABHUB which field in the UKHAS telemetry string contained what information. This means that you no longer need to create a payload document, but that Sondehub will only show the basic, essential fields such as latitude and longitude. However, see the following section on Tracker Telemetry for an alternative mechanism.
Tracker Telemetry
Sondehub has no concept of payload documents, or indeed of the format of a UKHAS telemetry string, so it’s up to the receiving/uploading software to parse the UKHAS telemetry from a tracker, deciding which field means what (latitude, longitude, temperatures etc.), then passing those values on to Sondehub.
All such programs assume that the telemetry string is of this form:
$$<callsign>,<count>,<UTC>,<lat>,<lon>,<alt>[,<optional_field1>....]*CRC<LF>
Provided that your tracker follows this format – and I don’t recall seeing one that didn’t – then you tracker can be stored by sondehub/amateur and will (assuming a valid GPS position) appear on the live map.
That’s great, and it avoids the issues of people creating payload documents that don’t match their tracker telemetry, however it also means that any extra telemetry is not displayed on the map and aren’t charted on the sondehub Grafana page.. Such telemetry might include the number of satellites, internal and external temperatures, and it would be a shame to not have those displayed, stored and charted.
There is a solution, which is for the tracker to also broadcast the field list. The method supported by my various receiver programs is for the field list – a sequence of digits/letters one per field – to be included in the regular telemetry. For example:
$$PITS,676,10:42:48,52.37709,0.45973,00473,10,32.7,0.0,0.000,0.07,52.37810,0.45927,12.3,30,0123456A9PTCDUV*D64F
The part in bold is the field list. Every character in that string represents a field type; e.g. the “0” represents the payload callsign. Since we always assume that the basic telemetry is as shown earlier, the field list will always begin with the characters for those standard fields, namely “012345”. This is used by the decoding programs to locate the field list.
I have defined a list of field types that my receiver programs understand and can then send to sondehub/amateur. I’ve listed the field codes in the following table, together with which of my trackers and receivers support them currently. HAB Rx is a common library for HAB Base, Explora and PADD. The HAB Base column shows that HAB Base displays those fields in the Payload window.
# | Field | Notes | FlexTrak | FlexTrack | PITS | HAB Rx | Sondehub | HAB Base |
0 | PayloadID | Y | Y | Y | Y | Y | Y | |
1 | Counter | Y | Y | Y | Y | Y | ||
2 | Time | Y | Y | Y | Y | Y | Y | |
3 | Latitude | Y | Y | Y | Y | Y | Y | |
4 | Longitude | Y | Y | Y | Y | Y | Y | |
5 | Altitude | Y | Y | Y | Y | Y | Y | |
6 | Satellites | Y | Y | Y | Y | Y | Y | |
7 | Speed | Not Working | N | Y | Y | Y | ||
8 | Heading | Not Working | N | Y | Y | Y | ||
9 | Battery Voltage | Y | N | Y | Y | Y | Y | |
A | InternalTemperature | Y | N | Y | Y (if no ext) | Y | ||
B | ExternalTemperature | Y | Y | Y | Y | Y | ||
C | PredictedLatitude | Y | Y | Y | Y | Y | Y | |
D | PredictedLongitude | Y | Y | Y | Y | Y | Y | |
E | CutdownStatus | 0 = Idle 1 = Armed 2 = Triggered (Altitude) 3 = Triggered (Manual) 4 = Triggered (Other) | Y | Y | Y | Y | ||
F | LastPacketSNR | Y | Y | Y | Y | Y | ||
G | LastPacketRSSI | Y | Y | Y | Y | Y | ||
H | ReceivedCommandCount | Y | Y | Y | Y | Y | ||
I-N | ExtraFields | Y | N | |||||
O | MaximumAltitude | Y | ||||||
P | Battery Current | Y | Y | Y | ||||
Q | External Temperature 2 | Y | ||||||
R | Pressure | Y | Y | Y | Y | |||
S | Humidity | Y | Y | Y | Y | |||
T | CDA | Y | Y | Y | ||||
U | Predicted Landing Speed | Y | Y | Y | ||||
V | Time Till Landing | Y | Y | Y | ||||
W | Last Command Received | Y | Y | Y | ||||
X | Altitude 2 | Baro or 2nd GPS | Y | |||||
Y | ||||||||
Z |
Tracker Support
Follow me on Twitter for release announcements.
All of my existing trackers will work fine with Sondehub/amateur, however you will only see the essential fields (see above) unless you update and enable the fieldlist function.
PITS
Update to the current version, then edit /boot/pisky.txt and add the following line:
Send_Field_List=Y
The field list will then be automatically built and appended to the telemetry.
FlexTrak (Pi/STM)
The next release will support sending the field list. This can be configured using the configuration file on the Pi, or by connecting the tracker to a PC with a USB-serial cable and using the Windows configuration program. The field list itself can also be configured using either of those methods.
FlexTrak (Pi/AVR)
The next release will support sending the field list. This can be configured using the configuration file on the Pi, or by connecting the tracker to a PC with a USB-serial cable and using the Windows configuration program. The field list itself can also be configured using either of those methods.
FlexTrack ESP32
The next release will support sending the field list. This can be configured using the Windows configuration program. The field list will then be automatically built and appended to the telemetry.
FlexTrack AVR
The next release will support sending the field list. This can be configured using #defines at the top of the flextrack.ino file. The field list will then be automatically built and appended to the telemetry.
Receiver Support
Follow me on Twitter for release announcements.
LoRa Gateway
Update to the current version, then edit gateway.txt and add the following line:
EnableSondehub=Y
Tracker telemetry will then be sent to sondehub/amateur. If the telemetry contains a field list then the specified fields will be sent as well as the basic ones.
HAB Base
Update to the current version.
Uploading
To enable uploads sondehub/amateur, click the System Settings button and click the Sondehub option:
Tracker telemetry will then be sent to sondehub/amateur. If the telemetry contains a field list then the specified fields will be sent as well as the basic ones.
Local Payload Receiving
To receive telemetry of nearby payloads from sondehub/amateur, (equivalent to the previous HABHUB Logtail, option), add a new source and choose “Sondehub” from the drop-down list of source types:
Link To Map
For any payload that you are uploading to sondehub/amateur, you can load the Sondehub map for that payload by using the link under the Settings tab:
HAB Explora
This is being worked on.
HAB PADD
This is being worked on.
Hi Dave, after I installed the latest versions of the PITS software, the upload to sondehub worked as it should. Now we want to start on 9/1/2023 and suddenly I get an error displayed and no more data is transferred to sondehub.
Can you help?
Error message in error.txt:
21:20:22: 400 response to: [{“software_name”: “LoRa Gateway”,”software_version”: “V1.10.0″,”uploader_callsign”: “TrEsLora868″,”time_received”: “2023-08-18T19:20:22Z”,”payload_callsign”: “TrEs2Lora868″,”datetime”:”2023-08-18T21:19:22Z”,”lat”: 51.24919,”lon”: 6.18008,”alt”: 48,”frequency”: 868.6625,”modulation”: “LoRa Mode 1″,”snr”: 7,”rssi”: -55,”raw”: “$$TrEs2Lora868,173,21:19:22,51.24919,6.18008,00048,12,40.6,0.0,0.000,0123456A9P*70F8″,”sats”:12,”temp”:40.6,”batt”:0.0,”uploader_position”: [ 51.366, 6.413, 0],”uploader_antenna”: “868_Self_Construction”}]
Thanks, Oliver
The various SH issues were resolved so please update.