High Altitude Balloon Experiments: Part 2
(Continued from part 1 )
My first test was a total success, but I had bigger plans. Happy that I could easily track my balloon from the land, and that the transmitter was powerful enough, I set about designing version 2 of my tracker.
Version 2 had one big improvement: a GPS receiver. Now I'd be able to track it's exact latitude, longitude, and altitude. Other changes included:
- An Arduino Pro microcontroller module which is vastly more powerful than the PicAxe I had used previously. It is programmed in C++ and has plenty of storage and processing power.
- A 10v DC/DC converter that runs the transmitter at a higher voltage, in theory increasing its output power and hence range.
- A new lightweight PCB, made from flexible kapton material.
- A buzzer that beeps very loudly once every 15 seconds, so that once it had landed I might hear it even if I couldn't find it. This turned out to be a waste of power and space.
- Two 1.5v AAA Energizer lithium batteries; not cheap, but rated to -40ºC!
- Two temperature sensors, one to measure the internal temp, and one to measure the external air temperature.
The software was a complete rewrite. Broadly it consisted of the following tasks:
- Continually load new data from the GPS receiver and parse it into a meaninful form;
- Once a second, measure the temperature;
- Once every 15 seconds, sound the buzzer;
- Once a second, transmit the current latitude, longitude, altitude, and temperatures,
- Once every 3 transmissions, transmit a single measurement (lat, lon, alt, temp1, or temp2) in "human format", a special form of morse code that can be decoded by your average standard issue human, with only a piece of paper and some binary maths. The regular transmissions are all at 150bps which is far too fast for a human to decode. The "human format" transmissions are about 100x slower and take 10-30 seconds to transmit a binary-coded-decimal number.
On the receiver end, a brand new system was made up which featured:
- A BNC input from the Yaggi antenna;
- A super hetrodyne receiver module ($3, haha);
- Another Arduino Pro module reading in the received data stream;
- An LCD panel showing the current temperatures, and the last piece of meaningful data received;
- An activity LED,
- And a USB interface to connect it to my laptop.
The software on the receiver emulated a GPS receiver, so as far as the laptop was concerned, it was soaring many kilometers above the earth. This made tracking pretty easy. I spent some quality time with some very powerful fibreglass resin and made up a nice little enclosure for the receiver and stuck it to my car dashboard.
So on the 24th of October I loaded up the car with a tank of helium, an ex-US military weather balloon, all manner of cables, spares, gps receivers, etc and headed off for Methven. The latest High Altitude Balloon Trajectory Forecast had suggested that launching from there would put it down somwhere around Cashmere, although there are so many variables involved that I suspected it would land anywhere but there. However the general wind conditions that it revealed suggested that today was a good time to launch, with relatively little high altitude wind, and the prevailing direction being a NE direction up the island. Pretty much ideal.
I was joined by my trusty driver, another Michael, and while I spent the drive checking off the systems and fixing last minute problems, he got us to Methven.
Here we discovered that the original launch site was currently a rodeo, so we moved to the racecourse around the corner. We found a nice spot and filled the balloon. Two smaller balloons were tied on further down to act as a kind of "parachute", in that they would provide additional drag and boyancy when it fell, slowing its descent.
Mere seconds before the launch I discovered the polyester thread had been sheared through already by the container, so after some quick work with the masking tape and the addition of a backup line, we were ready to go.
Unfortunately within seconds the antenna had burst both "parachute" balloons, but there was nothing I could do about it now, it was well beyond reach.
We went back to the car and called up the tracking, where I promptly found a range of bugs in the reciever that caused it to reset after every measurement came in, which made getting a correct reading very difficult. However we did the best we could and soon we could see the little cursor on the map rapidly gaining height and heading off around the edge of Methven.
Within minutes it was at 1km altitude, then 2km, 3, 4, 5. It seemed to be rising at about 1km every 10 minutes, and it was moving fast . We jumped in the car and roared off after it, picking up measurements every 20 minutes or so. It was getting ahead of us and we were facing some long routes. Soon it had crossed the Rakia River and was well on its way towards the Waimak. Unfortunately the Waimak only has two crossings so we had to do some extra miles that it didn't have to.
Measurements here were few and far between as my large Yaggi antenna is too big to be used inside the car, and we didn't have time to stop very often. We traced it to near West Eyreton, and as I was taking the readings I started getting weird readouts. First I thought it said 15km altitude (!!!), but the temperatures were conflicting; the external air temp had gone from -42.3°C, to 9°C. Soon after I stopped getting any readings. What had happened????
While I pondered the options, we headed to it's last known address. Here I did a sweep and picked up nothing, then I did a sweet with the scanner and Yaggi and finally detected the faintest little signal; too weak for the receiver, but enough for the scanner. I waited for the human mode to start and quickly jotted down numbers.
17242173, 89, 40, 20, 4337357, 17242173, and so it repeated.
Stupidly I had left the source code at home so didn't know what order these numbers were in. The latitude and longitude weren't too hard to pick, but I couldn't tell altitude from temp1 and temp2. Whatever the case, none of these numbers were negative.
Hindsight is great and it is obvious looking at an altitude/temperature plot, I wasn't sure whether my probe had landed, or whether it had moved beyond the troposphere and into the stratosphere, where the temperate slowly rises to relatively balmy levels. To compound matters I mis-converted the latitude and longitude and ended up with -42° 27' 25" latitude, and 172° 14' 32" longitude, which placed it on the very edge of the Waimak river. Worried that it would soon float away, we dashed over there.
Recent flooding however gave us some headaches and it took several detours to get back on track.
We soon ended up bumping along some tracks down to the Waimak. We stopped and had a look around: not much to see.
The receiver wasn't picking up anything at all. I theorised that maybe it had floated away, maybe it had drowned, maybe it had drained its batteries.
That night back at HQ I ran some numbers and while scratching my head put 43.37357, 172.42173 into Google Maps. Bingo, it put the last known position of my probe within 500m of where we had last heard from it. Hmm! More frantic number converting and it turns out I'd used the wrong coordinate format. Converting things correctly gave: -43° 22.424", 172° 25.304". Referring to the code I now saw that the last transmissions had been of 89m altitude, 40°C internal temp, and 20°C external temp; all these numbers firmly pointed to it sitting on the ground.
The following morning I roared off towards -43° 22.424", 172° 25.304". An hour later I was spreading gravel as my phone counted down the metres.
I headed down the farmer's driveway and soon saw the wife mowing the lawns. I stopped and explained my mad science experiment, and had she seen any small white objects falling from the sky? No… neither had her son. But she was most happy for me to wander around staring at my phone walking in arbitrary directions.
The distance got smaller and smaller and I was soon getting pretty close. I was now walking straight towards the point where Google Maps said it would be, and at 15m I noticed a small reflection from the middle of a paddock of calves. I let myself in, and by george…
There it was! Completely and utterly dead battery, but it had survived the (calculated) 50km/h descent to earth just fine, with only a bent antenna. The reason I had trouble picking up its final words would be the bent antenna, and the numerous farm buildings and shelter belts between me and it. I was amazed to find it within metres of it's final coordinates; within the limits of accuracy for consumer GPS. My system didn't just work; it worked really well .
Now that I had it I quickly set about processing the GPS logs that I'd recorded. A few quick scripts later and I had a pretty good idea of its path:
And a few more scripts later I had a Google Earth visualisation too:
Each vertical white line represents a reading; you can see that once it crossed the Rakaia we didn't get many readings, mainly because we had to spend all our time driving to keep up with it. I was very lucky to get a transmission just before it landed; what I had misinterpreted as 15km was actually 1.5km altitude, and hence the reason the external air temp was above freezing.
- Journey time: Approx 4 hours.
- Distance travelled: 80km.
- Peak altitude: 11,141.9m
- Min air temp: -42.3°C, max air temp: 15.5°C
- Min internal temp: 9.2°C, max internal temp: 40.7°C
- Helium used: 260L
- Probe weight: 95g
- Balloon weight: 32g
- Ascent rate: 1km/10 mins
- Descent rate: ~ 50km/h
- Cost: $80 of components, $75 in helium.
The "human format" transmission proved to be a life saver, as it gave me the final resting location. The addition of Kaowool high performance (and heavy) insulation meant the probe never got below freezing point. The Energizer Lithium batteries lasted well, and are very lightweight. The strawberry punnet I used did a great job, although a sealed enclosure would be better. The polyester thread didn't snap once I'd protected it from the sharp edges. And of course, the GPS performed brilliantly.
I was curious what had caused the balloon to burst at 11,142m. I did some research and found that at this altitude, the air pressure is 1/10th that at ground level. This means my weather balloon was ten times the volume, and double the diameter (around 4-6 feet) when it burst.
Many problems and improvements were identified and these are being worked through and fixed as I write this. The receiver is being rebuilt and will be tested a lot more this time, and will have a few fail safe measures added too. I have also acquired a powerful external antenna for my car that should allow me to receive measurements while on the go.
The most exciting addition for version 3 though? A camera!