Project Horus High altitude balloon project


Build update

A fair bit of an update - most of the payload is built, most of the code is written.

After looking for a suitably sized polystyrene eski/beer cooler for a while & finding almost nothing with the thickness I wanted (25mm+), I gave up and bought a sheet of 50mm polystyrene from a rubber store. I made up a hot wire cutter using some nichrome wire, an old computer power supply and about $10 of wood & steel from my local hardware store, and chopped up what I needed to make a suitably sized box.

The box is now all cut & joined, with recesses cut for the cameras & antenna installed - the transmit antenna is a 1/4 wave whip with a radial ground plane. Camera lenses are separated from the outside world by UV filters you would use on the end of an SLR lens. I'm quite happy with the way it turned out - the GPS module is up top, next to the (backup) SPOT tracker, both pointing to the sky. Most of the weight is down the bottom, with the cameras & batteries, which should keep things the right way up coming down. All the seperate boards are held in a foam core, keeping everything securely in place.

I've got the flight computer logging its data to an SD card, and have been testing it as a regular GPS logger in the car. The Lassen iQ doesn't seem to be the most sensitive of modules, often losing lock between tall buildings and the like, but this won't be an issue in the open sky. My 12mm coin cell holder arrived, meaning I could solder it down and pop in the GPS backup battery - it now takes about 30 seconds to get a GPS lock when the micro is switched on, as opposed to 5-15 minutes without the backup battery.

I've rewritten sections of the GPS code to be more tolerant of failure & also transmit checkum data on transmitted (radio) strings. Still haven't had another go at flashing the arduino's bootloader, for fear of destroying yet another Atmega. :)

Gary from Air Liquide in Elizabeth organised a good price on Helium for us - $100 less than BOC wanted for the same cylinder size. I'm skipping on the idea of using a regulator designed for filling balloons, as the flow rate is too low. Adjustable flow rate oxygen welding regulators are slightly more expensive, but we won't be waiting 3 hours for the balloon to fill.

My balloons and chute will be ordered soon - not long now! :D

Filed under: Build, Code No Comments

How to kill an Arduino

I was playing around with the Arduino's watchdog timer the other day - ideally, I'd like to use it to reset the flight computer in case it locks up, or my code goes awry somehow & gets stuck in a loop, etc.

The Atmega328 (the core of my Arduino) does implement a watchdog timer - though unfortunately it's not possible to use it with the standard Arduino bootloader - the reason being that if the watchdog resets the chip, it remains enabled, and worse, its timeout reduces to 15ms - which doesn't give the Arduino bootloader long enough to run any code, so the Arduino gets stuck in a reset loop.

Fortunately, ladyada has written a modification to the Arduino bootloader to work around this problem - all I need to do is reflash the Atmega to use the modified bootloader.

Besides buying a dedicated programmer, the easiest (and cheapest) way to do this is by building a parallel port programmer - an old parallel printer cable, a few resistors and a hacked together ICSP header and I was done - at a cost of $0.

Fast forward to a few minutes later, trying to burn the bootloader into the chip - things are not working well, all I am getting is errors.

Eventually I had another look at my wiring to ensure I hadn't made a mistake (though I did triple check everything) and realised what I'd done. In my rush, I had not read the pin numbers on the parallel cable - I'd based my pinout at looking at the male end of the cable, wheras the diagram I was following was using the female (host) end. So while my leftmost pin was #1, it was #13 in the diagram.

I undid my wiring, and rewired everything up correctly, then tried to reflash to chip - but too late, I'd already toasted it with my first attempts! It no longer runs, and I can't upload any new code to it, so I've ordered a couple of new Atmega328's (they're cheap, thankfully!) which should arrive soon.

I've also been running a few predications with the CUSF flightplan predictor and trying to pick an appropriate launch spot. Whilst I've previously found that winds tend to blow west -> east here, current predications are rather variable, with the possibility east -> west winds (which would land us in the ocean) quite high. It looks like we might need to move further inland for the launch, and keep an eye on the forecasts. I'll also be writing an automatic cutdown system to cut the payload down if it looks like it might drift over populated areas or the ocean.

Filed under: Build, Code 1 Comment

GPS code

I've uploaded some of the GPS code. Much of it is messy could be re-written, but it works for now.

Filed under: Code No Comments

Deliveries, code more

Yesterday saw a few packages arrive. My Radiometrix NTX2 came, as did the primary camera and a bunch of heatshrink I'd ordered off ebay.

I had a mess around with the NTX2 & potential dividers, & after much tweaking came up with a solution that worked. Testing code on the other hand was problematic - eventually with some help from fergusnoble over at #highaltitude on freenode, I realised that the delayMicroSeconds() call wasn't working with a value as large as 20,000 (20ms = 1/50th sec) - a few adjustments later, and transmission was working perfectly, so I built up the module on a board.В  So far I haven't tested with any antennas, but it seems to cover the distance across the room just fine.

The camera seems great - and the seller was good enough to give me a discount due to the delay in shipping! External triggering will likely by more tricky than the Kodak, given that it has a half-press button for focusing, which the Kodak does not.

I've also written most of the code to handle the GPS side of things, which I'll post shortly.

Filed under: Build, Code, Purchases 1 Comment