Camera Hacking

Introduction
Our cameras for high altitude ballooning were programmed using CHDK, which stands for Canon Hack Development Kit. It allows us to manipulate the camera in many different ways. CHDK programming is exceedingly simple to operate using scripts that can be loaded onto a camera's SD card. The variety of script commands are vast, spanning from increasing shutter speed to taking pictures when motion is detected. CHDK is very useful, if not necessary for capturing pictures while ballooning.

Choosing a Camera
Judging that CHDK stands for Canon Hack Development Kit, it only works on Canon cameras. Generally, CHDK is only supported by ceratin models of Canon's point-and-shoot(Powershot) cameras. Keep in mind that every model of camera, as well as firmware for those cameras, have their own unique port. A port for one model will not work for another. Click here for a list of cameras that support CHDK. If a camera is not listed, there is no CHDK for it at this point in time.

How it Works
CHDK uses scripts that run on the camera itself. There are different types of scripts, but the two that are commonly used are uBasic and Lua scripting. We, specifically used uBasic for our scripts since it has the simpler commands. It is very easy to find pre-written scripts online, but if you choose to write your own scripts, that is also simple to do. To find out more about writing your own scripts, click here. Once the script is written, it should be loaded onto the camera's SD card. When the camera is in  mode, you can navigate through the menu to the "Script Parameters" tab, choose the script you want to run. Since CHDK is made to not make any permanent changes to your camera, you have to turn CHDK on first, and also run the script, everytime you turn on the device. Cameras can be programmed to do many different things, once it has CHDK. After that, all you need is the correct script commands to make the camera do as you desire.

More information

 * To see more detailed and in depth descriptions on how to use CHDK, or to answer any questions you may have, visit the CHDK wiki, here.
 * To download CHDK for your camera, find the model camera you have and download the small or complete version here.
 * CHDK for Dummies