Skip to content(if available)orjump to list(if available)

Show HN: A high-altitude low-power flight computer for high-altitude balloons

Show HN: A high-altitude low-power flight computer for high-altitude balloons

21 comments

·July 30, 2025

I've been working on this for a while now, and I'm happy to share!

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

paulgerhardt

Love this. Have a friend that regularly sends $30 balloons a few times around the world. They routinely end up over interesting areas like hot spots in the Middle East or North Korea. Would be great to issue commands to a light weight camera but the bandwidth is so limited - payload is a factor too - can only be under 100 grams or so. Bandwidth is in the order of 30 bytes per minute. Would be fun to take picture remotely and then drop the payload/memory card when the balloon circled back to friendlier territory.

yonatan8070

When it flies over these unsafe areas, isn't it detected by the region's air defense systems and shot down? Or are these too small and high to be seen by such systems?

0_____0

Even if it made sense to try to take out a balloon, the missiles that can reach 80,000ft+ are tens of million dollars a piece, and not that many countries have access to that type of missile tech.

pests

I mean look at the US response to the Chinese balloons - took a bit of time and ended up being handled by fighters not missiles

normaldotcom

Awesome to see HAB on hacker news! Was following some of your development years ago when I developed a small APRS tracker, have been meaning to revisit that project someday. Also developed a WSPR version that I haven't published any info on, but had a great trans-atlantic flight with that one. Keep up the great work!

http://protofusion.org/wordpress/2015/10/featherhab-2-gram-h...

http://protofusion.org/wordpress/2016/02/featherhab-source-c...

hazek112

How'd you maintain connection over the ocean?

dylan604

I did one of these balloon launches myself several years ago, and attempted to build a flight computer myself with Arduino and multiple sensors. I could not find an efficient way to read all of the data from the selection of sensors in the limited memory, so I wound up using a Mega. Nobody involved was a licensed radio operator, so our live tracking was very primitive. It wasn't until after 45k' that we realized our GPS tracking stopped tracking at that altitude because why would a civilian be at that altitude. Of course we didn't know that until researching it after recovery, but we were very relieved when it started to updating once it came back under 45k'. Unfortunately, something happened (my coding to be sure) that caused the log to not be written as expected. Was hoping to be able to compare the GPS of the actual flight against the forecast model we used. This is the very thing I would have loved to have for future launches. I even made friends with a licensed operator to make it legit. (couldn't be bothered to take the test myself)

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.

Catbert59

Interesting!

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.

jotux

If you're going to use LoRa with an STM32, consider the STM32WL5x. It's an ST32L4 with an integrated SX12xx.

Catbert59

I have at least 10 of them in my lab :-) Thanks for the hint!

mpkendall

Hey! Yea I've been looking into energy harvesting a bit as well after watching this video: https://www.youtube.com/watch?v=TGbtzlWb-Kc

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!

Catbert59

LoRa is absurdly robust.

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)

yonatan8070

In fact, it's so robust that even when your antenna is a piece of wire hanging off a GPIO of a microcontroller with absolutely no dedicated radio hardware, you can still get several km of range. Truly crazy stuff.

https://youtu.be/eIdHBDSQHyw

jotux

In a previous job I pushed an STM32WL5 on a custom frequency over a private satellite constellation with a relatively large yagi antenna. Over 70k km round trip :D

mpkendall

Interesting, thanks for sharing! I'm interested in creating some form of live video/image system, thanks for this!

guywithahat

You should check out Sceye, they're hiring and doing this. Unfortunately you have to live in the middle of the desert in New Mexico, otherwise it's a cool company

prpl

looks like a bunch of NEWBS.

(guessing github.com/NEWBS was taken)