Show HN: A high-altitude low-power flight computer for high-altitude balloons
I've been into launching weather balloons for a few years. One aspect of the hobby that really drew me in was the tracking side of things. Tracking systems let you follow the balloon's position throughout the flight and, most importantly, know exactly where it lands so you can recover the instrumentation. APRS is what I started out using during my first few years in the hobby, after I got my amateur radio license in 2020 (W0MXX). I designed a few small boards using the trackuino (https://github.com/trackuino/trackuino) firmware (while breaking 3 $70 radio modules along the way).
I then got into recovering radiosondes, which are launched twice per day by the NWS and can be reprogrammed using RS41ng (https://github.com/mikaelnousiainen/RS41ng) to run many amateur radio tracking protocols. I was a bit dissatisfied with how large and heavy the radiosonde trackers were, so I designed my own tracking system, called Tiny4FSK.
Tiny4FSK is a flight computer with built-in tracking using the Horus Binary v2 tracking system. This protocol was developed by the Project Horus team specifically for high-altitude balloons, and it brings features like high transmit rates, forward error correction, and excellent weak-signal performance in an open source package. It's designed to be as compact as possible and can run on a single AA battery for upwards of 17 hours.
The main board comes with header rows that allow for out-of-the-box expansion. I developed a shield that supports the BME280 environmental sensor, the ICM-20948 9-axis IMU, and more via the Qwiic connector. It also features an OLED display for basic diagnostics.
While I've pretty much polished the main tracking procedures (and have tested on multiple flights), I'm still developing the IMU code using a lightweight Kalman filter. Additionally, there isn't yet a wide network of Horus Binary decoding stations like the APRS network has (I-gates), but I hope that by promoting this protocol, more stations will pop up. This means that if you're not in an area with many receive stations, you'll need to set up your own using either Horus-GUI (https://github.com/projecthorus/horus-gui) or horusdemodlib (https://github.com/projecthorus/horusdemodlib).
One issue I’m still working on is improving RF signal strength. Although the protocol is decodable in very low-noise environments, the transmit power appears to be lower than that of a typical radiosonde. This could be due to several factors: limited current on a weak power source (signal is stronger when powered from a bench supply), off-tuned filtering/matching, or not paying enough attention to the antenna. I'm planning to run more simulations to figure this out. That said, the signal is still decodable from the ground even at max altitude (~100,000 feet).
On the more technical side, Tiny4FSK uses: - the SAMD21 microcontroller, which is an ARM Cortex-M0+ MCU - the TPS61200 boost converter, which is adjusted to output 3.3v - Si4063 radio module, which I use on the 70cm band - ATGM336H gps module - pretty cheap GPS module which works in airborne mode (>18km) - integrated BME280 temperature, pressure, and humidity sensor The code uses the Arduino framework to make it accessible to beginners.
All flights using Horus Binary v2, including reprogrammed radiosondes, other custom trackers, and Tiny4FSK show up in real-time on Sondehub Amateur (https://amateur.sondehub.org). Flight data can be found in the /Media/Data folder on Github (there's several missing flights on there though).
Thanks for reading, hope I didn’t mess anything up too badly in the post! -Max
It was shot down by an F22 with an AIM-9 Air-to-air missile. This is the highest altitude air-to-air kill known, and the first combat kill of the F22 platform.
http://protofusion.org/wordpress/2015/10/featherhab-2-gram-h...
http://protofusion.org/wordpress/2016/02/featherhab-source-c...
One thing to keep in mind for anyone wanting to do their first one. If you go to the trouble of printing up contact info for an "If Found", don't forget to attach it before lift off like I did.
I'm thinking of building a small PCB for ballooning too.
But I most likely will shift the design decisions a bit:
- 2.4GHz LoRa for high-rate telemetry as reciving can recycle Wifi-Antenna gear. The Semtech SX128x chips are easy to handle.
- Low rate telemetry on 433MHz with a SX12xx or SX17xx.
In terms of chips most likely something around the STM32U series.
The company ePeas has very interesting energy harvesters. Not super cheap - but still affordable. They have special profiles for supercaps which are very resistant against freezing.
Generally the higher frequency you go, the lower range you get as a rule of thumb. It's also harder to design around higher frequency boards, though it's totally doable. That said, I'd love to see how 2.4GHz works out!
Someone maxed out the ranging mechanism of the Semtech SX1280 with a 5dBi rubber antenna. He reached 60km with LoS. And there's a report of 90km in a ballooning project.
(https://github.com/StuartsProjects/SX1280_Testing)
https://youtu.be/eIdHBDSQHyw
The latest generation of chips (AFAIR not yet released) integrated a mode that allows them to receive on all LoRa speed grades in parallel. Bit like the existing LoRaWAN basestation ICs.
I remember reading a datasheet that one (already released chip) is also able to work on 144-146MHz. But that's not what standard Asia (ESP32+LoRa modules) offer. TTGO has AFAIR recently released a super new board that allows this band.
(guessing github.com/NEWBS was taken)