Porting CHDK to new cameras

While researching the CHDK How-To, we came across the team’s instructions for porting the firmware to entirely new cameras. In theory, CHDK should work on any Canon running the DIGIC II or III processor since most of them are running the same VxWorks OS. A dump of the camera’s firmware is required before porting work can begin. On some cameras, the firmware was retrieved using software, but others required a hardware route. Pictured above is a Canon A610 that’s slowly flashing out every bit of its firmware using the built in LED. The photodiode is hooked up to a soundcard where the entire bitstream is recorded. It takes 1-7 hours to read the entire firmware. Once the sound file has been captured, it’s reverted to the original bytes and can then be decompiled with something like IDApro.


  1. Taylor Alexander says:

    Canon 40D? The firmware images are freely downloadable online (assuming it’s the right format). I’d love to be able to do time lapse without hooking it up to a PC (or maybe it does this? heh, i haven’t actually looked).

  2. AndrewNeo says:

    Reading the earlier post on CHDK made me rather interested in this, but it’s pretty awesome they managed to get the firmware extracted through the LED.
    Now, if only their site listed which cameras where cheapest/most decent..

  3. cjolson140 says:

    the led flashing firmware dump is one of the more elegant hacks i’ve seen in a while.

  4. mr.t says:

    Would be great if it was ported to the Cannon S80

  5. Scott Lenger says:

    AndrewNeo: The SD800 and SD870 would be my first choice as they support wide angle (28mm equiv.) They are not the cheapest, but are the best in my mind.

    Flickr has a nice chart showing which models are most popular. “IS” means it has image stabilizer which is handy for preventing blurry shots in lower light.

    If you want super cheap try the 570, though I think you’ll find having 28mm is worth the extra $.

  6. Scott Lenger says:

    sorry the flickr url was stripped from my last post:

  7. xhantt says:

    @andreneo: If you want time lapse you can code your own ubasic script it has a sleep sentence. Also there’re builds that have motion detection.

  8. strider_mt2k says:

    @#3: elegant is exactly the word that struck me.

    Beautiful work

  9. schjlatah says:

    @andrenceo: I have a canon SD30 that I would love to get time lapse working on (actually the reason I bought it was because it’s a canon and thusly hackable). Do you have any info/links to facilitate writing a ubasic script or installing it on the cam?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,725 other followers