So tonight was the first meeting of the Hardware Hackers Forum, a SIG (Special Interest Group) that has been formed at my workplace. I work at a very tech-savvy company and although our business does not have anything to do with hacking hardware, we managed to round up a pretty sizable group of folks to come and discuss homebrew hardware hacking, such as the kind that I’m doing with the Arduino. I put together a slideshow for my presentation on this project and I’ve posted it here:

Just when I had nearly given up on airborne video, thanks to the über hacking skilz of CHDK Forums poster Dave (aka Zeno), I now have a working Canon firmware that can properly discriminate pulse widths when they are received over the camera’s USB cable. I hacked up a quick script (which I will post later) and soon was able to choose between still images and video by sending pulses of different lengths on my Arduino. This is huge! This means that the balloon payload will have still and video imaging capabilities! I’ll probably have the Arduino trigger pictures every 20 seconds or so and take short videos every few minutes. I might even put a little button on the payload that lets me trigger a video “on demand” so that we can record the actual launch.
Wooooooo!
The hardest part of this project has been keeping on task. This is a perennial problem for me. I’m very easily distracted by bright, shiny objects…like this new 2 meter radio. So I knew that I would eventually need a proper mobile radio for my truck, something that would give me enough the power to communicate to the other vehicles in the search party. In a balloon chase scenario, we might have several vehicles spread out on different highways and my puny 5 watt handheld radio would not be powerful enough to handle that sort of scenario. I also wanted a radio that has built-in APRS capability. If you’ve read my earlier posts, you’ll recall that this balloon will carry two independent APRS beacons. I needed a radio that could pick up location information from these beacons and simultaneously broadcast the position of my chase vehicle out to the rest of the gang. I had been putting off the purchase of this radio until I was further along with the project but when I made a spare parts run to the local ham store, there was a shiny new Kenwood TM-710A sitting on the shelf. The price was fair–roughly $590–so I picked it up. I spent the rest of the weekend preparing the truck for the installation. The old center console was a decroded piece of crap, not worthy of a shiny new radio, so I ripped it out and ordered a new Tuffy box. When I ripped the old box out, I was horrified to find an active mud dauber nest underneath the console! Mama wasp was very pissed off and chased after me as I ran down the driveway. After fighting off the wasps with clorox cleaning spray (it was all I had on hand), I cleaned up the floor pan and ran the cable for my new MFJ-1422 high-gain antenna. As soon as the Tuffy box comes in, I will mount that up and start cabling up the Kenwood’s control unit.
I didn’t make any progress on the CHDK camera controller problem but I did post a message to the CHDK forum and lo and behold, CHDK developer Dave thinks he found the bug that was causing my problems. I’ll test out the new firmware when I get home and if all goes well, I might have still/video mode switching from my Arduino tonight!
So I’m giving up–for now–my attempt to automate the still/video mode switching on this Canon camera. It’s going to require some help from the CHDK folks and while there is someone working on it, obstacles remain. In the interest of forward progress, I’m putting the camera stuff aside for now. Frankly, I’m bored with it and I need to stay engaged if this project is ever going to happen. So, my goal for today is to build the tilt mechanism and get the servo working with the Arduino. If I get that done, I’m starting on the enclosure.
Speaking of the enclosure, I’ve had some ideas lately. I’m no longer sure that a big styrofoam box is the best way to go. I was browsing the interwebs the other night and came upon EOSS’s foam core tutorial. EOSS–one of the premier balloon-launching groups–builds their payloads out of foam core. What is foamcore? Think back to your college days… If you were an upscale dorm dweller, you may have tried to impress the ladies by having your posters mounted on foam core. It’s a laminated board made of polystyrene and coated paper. It’s fairly cheap, readily available, and easily cut with a utility knife. Perfect for a balloon housing. By using foamcore, I can build a custom-sized payload that’s just big enough to hold my gear. This helps to keep the weight down, which is very important in high altitude ballooning. The lighter the payload weight, the less helium that you have to use to inflate the balloon. The less you inflate the balloon, the higher it will rise before bursting. If I want to break 100K feet, I need to keep the weight down. Additionally, building a more compact payload will reduce the wind load and will hopefully make for a more stable camera platform.
I’m hoping that this week will be good for project work. My girlfriend’s semester break is over, so she’s back to spending her evenings deep in the books, which means that I have time for balloon work once again.

I’m still having problems with the camera. Someone on the CHDK forums posted a new firmware build that properly senses pulse width on the USB cable but unfortunately, the software is not releasing the shutter button properly, causing the camera to take one picture and then freeze until my script is killed. I’m not sure where to go from here. I’m hoping that the folks on the CHDK forums will come through with a build that has proper USB pulse sensing and a working shutter. Otherwise, I’ll abandon my goal of high altitude video and simply do USB-triggered still photos.
I also started assembling the primary tracker this weekend but, like everything else I do in life, nothing seems to come easily. It looks like I didn’t pay close enough attention when I ordered the cable that connects the tracker to the radio. As it turns out, this Byonics cable is not compatible with the Argent Tracker2 TNC because it combines audio in with push-to-talk input. The Tracker2 needs these on separate lines. I ended up placing an order to RPC Electronics for a cable that will definitely work with my Tracker2. Once I get this sorted out, I should have a working primary tracker and it will be time to sort out the secondary tracker (either a BigRedBee, Byonics Micro-Trak, or an RPC Rtrak) and the payload case. Once that’s done, it’s time to order the balloon!
Well, I’m off to bed, nursing a wicked sunburn from a day spent kayaking on the Guadalupe.
I’m having some problems with the USB remote camera trigger. When running CHDK, the Canon A720 IS can detect voltage on the USB line. The problem is that, unlike some other Canon models, this particular model cannot determine the length (in milliseconds) of the pulse. This is going to be a problem when I want to switch between still capture and video capture using the Arduino. My original plan was to send a short pulse (~50ms) when I wanted a still picture and a long pulse (~200ms) when I wanted a video. Unfortunately, my Canon only registers that there was a pulse and tells me nothing about the duration of that pulse.
So, I’m going to have to get creative. I’m thinking about waiting a for a pulse and then waiting for a fixed number of milliseconds for another pulse. If a second pulse is received, my script will trigger a video. If no second pulse is received, my script will trigger a still photo.
Here’s a simple flowchart of the program flow:

At any rate, I spent most of tonight trying to figure out why my original plan wasn’t working. I’m going to try to rewrite the script tomorrow evening. I’d like to get it done before I leave on Friday to spend Memorial Day with girlfriend in South Carolina.
I ordered a tilt system for the Canon camera. Servo-driven and with 150° of tilt, it’s going to be perfect for shooting pictures of the ground, horizon, and sky. I also bought a Hitec HS-985MG servo to drive it. I’m not yet sure how it’s going to attach to the payload platform. The platform needs to be secure and stable. I certainly don’t want it breaking off in mid-flight, sending my $200 camera to its doom. I’m thinking about adhering pieces of plastic to the inside and outside of the styrofoam payload box, as a sort of washer to allow me to tightly secure the tilt mechanism without digging into the sides of the box. To protect the camera itself, I’m thinking about building a sacrificial balsa structure around the tilt system, big enough to take the brunt of any impact but small enough to stay out of the picture frame. I’ll probably braid the servo and camera USB remote control wires and put some shrink wrap around them, routing them through a small hole in the box. I’m also going to need a counterweight to keep the platform level. Securing batteries inside the box on the opposite side may do the trick.
Well, I’m off to the sporting goods store to buy Spectra fishing line for the suspension system and by the hardware store for some miscellaneous parts.
I spent most of this weekend hanging out with my girlfriend and didn’t work on the project much. I got back on it tonight, trying to get my mind around what’s left to do.
Here’s what I did today:
- Ordered a Yaesu VX-3R radio. After taking apart the Alinco VJ-C5, I’m not sure that I’ll be able to get it modified in any reasonable timeframe. So, I decided to be expedient and shell out for the Yaesu. While it doesn’t sip batteries as gently as the Alinco, it does have more transmit power and should be a reliable rig for the primary communications.
- Designed the ground recovery system. It’s pretty simple. I’m going to have a very loud buzzer mounted outside the payload and a few LEDs mounted in various spots around the payload as well. The buzzer and LEDs will probably pulse with my callsign. There’s no real reason for this, other than it’s fun to code on the Arduino. I’m not anticipating a night recovery but in case it happens, I want to be prepared. Also, I’m adding some red/silver conspicuity tape that I bought off of eBay to the outside of the payload. This stuff is awesome. When light shines on it, it looks very man-made. If we end up doing a nighttime search, a Q-beam searchlight should be able to pick this stuff up quickly.
- I’m starting to think that the styrofoam box may be too large. I’m going to start looking for something a little bit smaller.
Well, that’s all for now. Hope to make good progress in the next couple of days and hopefully have a working primary tracking system by the end of the weekend.
It’s hard to be the first person to do something anymore. I was hoping to be the first person to put a tilt/pan camera in a balloon using CHDK. Looks like somebody beat me to it. Well, to be exact, I’m not sure that they’ve actually put this in a balloon but they do make the suggestion on their site.

It’s a pretty neat little device. I’m guessing there’s a PIC underneath that plastic foil cover. I like the servo control idea a lot and the GUI interface is very cool.
Here’s what I’ve come up with for the design of this balloon. The primary payload consists of the flight controller and the primary tracking system, connected serially. The secondary payload will fly in its own capsule, 30 feet or so below the primary payload.
