An up-coming new hobby reminded me of the CHDK (Canon Hack Development Kit) project. I realized that my old Canon 350D body was ripe for some experimentation, since (due to a flaky shutter release button) I use it only as a backup to my T1i these days.
As it turns out, my Canon 350D (a.k.a. Rebel XT) digital SLR camera is not supported by CHDK. This means it’s outside of the normal CHDK ecosystem of motion detection, BASIC/Lua scripting and the like.
However, there is a way to hack the 350D to enable a smaller handful of “bonus” features and settings, including an ISO extension to ASA 3200 and an intervalometer mode useful for things like time-lapse photography. I had a few hiccups getting it going — proceed at your own risk! — especially from Mac OS X it seemed, but here’s how I did it:
- First, find a small (4GB or less) empty CF card and format it using the camera’s menu — this should give you the FAT16 filesystem needed for the next two steps.
- Grab the bootflg2.zip file attached here and copy the “bootflg2.fir” file in it onto your card, preferably via the command line. (NOTE: I had trouble when I just copied it using the Mac OS X Finder, which creates a hidden ._bootflg2.fir metadata file alongside. This extra file seems to confuse the camera in the next step, so make sure you delete this file if it appears via Terminal.)
- Now follow the instructions in the ReadMe.txt file included in the bootflg.zip folder for how to trigger the “hacking” of your camera’s built-in firmware so it will load the additional bootable code we’ll be dealing with in the next steps.
- Now download and use the MacBoot card preparation tool that fills in for the Windows-only CardTricks step. Make sure to choose the “Make DSLR-bootable” radio button, which (as explained above) is different than the normal CHDK process. You can use the same card as before or a new one(s).
- Once you’ve setup each CompactFlash card to enable the bootable custom firmware, you’ll need to actually put a version of on each card you’ll be taking pictures onto while the custom controls are enabled. The latest version of these files I could find was 350D-20101011.zip (via the forums). Basically, put the included “autoexec.bin” file on any cards you’ve made DSLR bootable via the previous step.
There’s some more detail and links in the instructions buried within the banner ad–splattered CHDK Wiki page for the Rebel XT, as well as the best overall summary of how to actually use the custom menu features enabled by the custom code on your CF card about halfway down the page. If you have questions, the best place to get help and find even more details is probably this forum thread.
Not quite plug-and-play but on the bright side, there’s very little fluid dynamics or tax regulations involved. Now when I plug in a compact flash card I’ve made bootable, I get even more control over my exposures than the camera already provides out of the box.
With this hack running, I can also set my camera to just keep taking pictures, say, every 10 seconds — should be great for time lapse and remote photography situations. If I want to disable all the experimental “power user” features, I just turn my camera on with a non-bootable card in the CF slot, and it goes back to its normal featureset.