Hacking Canon Point-and-Shoot Cameras
Pig Hogger writes "If you're stuck with a cheap Canon point-and-shoot camera and have feature envy over the neighbor's sophisticated latest model, fret not! According to this LifeHacker article, the CHDK project allows nearly complete programmatic control of cheap Canon point-and-shoot cameras, enabling users to add features, up to and including games and BASIC scripting."
Canon hacking has hit mainstream, it seems... with extra visibility I'm sure the higher ups in the company will soon know about them (no doubt the engineers already knew about the project). I LOVE my Canon cameras, so, I really hope Canon doesn't pull an Apple or a Creative and start intentionally guarding against firmware hacks because then my future purchases will have to go elsewhere.
Sidenote: I had an old A80 camera that's maybe 6 years old stopped taking pictures. Turns out there was an old technical bulletin about it in their KB and that Canon was offering free repairs to any affected unit regardless of its age. I sent it in and they did what they promised AND the turnaround was around a week.
More Twoson than Cupertino
Um, changing the firmware isn't going to put a LCD screen on the mirror. Apparently you haven't grasped how a SLR works.
The firmware probably isn't going to be able to get the shutter to go any faster reliably. What you need to use is a ND filter if you like wide apertures.
Certainly the scripting stuff could be used in a SLR.
If I have nothing to hide, don't search me
Withstanding OR notwithstanding the DCMA, I think the developers and players could be literally figuratively "shooting themselves in the foot"... (LOL!)
Previously: "Linux... Toward the Sunrise..." Now: "Linux... Toward the-- No, now, part of Every Sunrise"
There is no risk of "screwing up" your camera, the hack loads the "firmware" into volatile ram in such a way that simply deleting the file from your mem card will revert your camera to the original state.
-*The above statement is printed entirely on recycled electrons*-
Actually, don't the shutter blades always fall at the same speed? Their speed is the flash sync, the fastest speed where the whole film is exposed at a single point in time, right?
Then to set the 'shutter speed', the time between the first shutter blade and the second shutter blade is changed.
At least, that is how Focal Plane shutters work. Leaf shutters are different.
If I have nothing to hide, don't search me
What exactly was hard about the instructions?
When I first found out about CHDK I had it running on my camera *3 minutes* after the download completed.
All you do is:
1) copy the files to your flash card
2) Power up the camera in playback mode while holding the menu button to add the firmware update option to the menu. This is something you should already know how to do from the cameras manual!
3) Select the update.
Once the files are on the flash card you can repeat this process at any time in under 15 seconds. If you want to use the stock firmware then you just don't run the update.
The custom firmware has all kinds of neat features. If you like making HDR pics, you can use available scripts or write your own to bracket the exposures. My Powershot A620 now has the ability to shoot RAW thanks to CHDK.
Some builds even incorporate face detection and motion detection. Screw webcams, how about having a 7 megapixel camera capturing what's happening outside your window.
Time lapse photography is now a cinch, as are all kinds of things that the stock camera doesn't do.
I never found any of the features to be all that hackerish. They don't document using a histogram, sure... but if you're downloading a firmware for the use of a histogram, you probably already know what one is!
The risk of screwing up your camera comes from potentially feeding it a parameter outside of it's safety zone.
For instance what if there were a RAM mode in the hacked firmware for firing the flash at a rate faster than the camera's default firmware would allow. You try it for that super cool skateboard picture and wonder why your flash Fresnel is brown and smoking after the fact. Granted the caps shouldn't be able to do that, but what if?
Or you try to drive the aperture 1 click past its physical limit? Do you know if the camera has limit switches or is relying on firmware pointing to known values in RAM (pulled from EEPROM at boot) that define the scope of aperture values to control that motor? Maybe it can handle a few slams at the end of travel, but what if you keep doing it by mistake?
Or you use a mode to leave the LCD backlight on while the flash caps recharge (normally the LCD backlight is off) and you fry the power supply in the camera because you sourced too much current?
Or you use a mode to drive the lens into the extended position, but somehow the hacked firmware ignores the limit switch for the little lens cover door and tries to run it at the same time? Scraaaaape.....
Don't get me wrong, this looks freakin' cool! But to presume there is zero possibility of damage seem naive to me.
I'm thinking about it, therefore I might be.
Nope. It runs VxWorks, at least that is what the firmware dump from my Canon indicates.
Time makes more converts than reason
Because it's physically impossible on an SLR. In an SLR, you have the lens, that then is followed by a mirror. The mirror, in the "down" position, reflects the light from the lens through the prism viewfinder and then to your eye.
When you click the shutter, the mirror flips up (viewfinder goes dark), exposing the shutter which then opens and shuts the right amount of time the actual camera sensor.
That's not to say it's not possible to say, add a little cameraphone like sensor and offer a live preview (several dSLRs do this now), but historically, it wasn't possible. The light is either going to the main camera sensor, or the viewfinder. A small amount is actually reflected *down* for autofocus, though.
Though, as anyone knows, holding your camera at arm's length (so you can use the LCD as a viewfinder) sucks for camera shake. And most camera LCDs are of QVGA or lower resolution, so you miss out on all the nice little details youc an see through a real optical viewfinder like that on a dSLR...
It was hardly done just to spite the hackers.
If your product still runs adequately with :
- less RAM (cheaper!)
- a slower processor (cheaper!)
Then you go ahead and make the change to:
- increase profit margins
- keep up with your competitors so they don't price you out of the market.
Pretty clear-cut business case. In their case, they went out of their way to provide the original model again, pretty much just for hackers. They could've just dropped the old version, y'know.
You are in a twisty maze of processor lines, all alike.
There is a lot of hype here.
No, they renamed the original G to GL, jacked the price up $20, then came out with a new, shitty router that they named G for the same price that the better hardware had been before. And all this while hardware costs should have been going down anyway (as is the general trend in technology).
(Have you got a hint abut why people are pissed off yet?)
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
You're making a video with your phone, when it rings. Unwilling to interrupt your filming, you hit the divert button, redirecting the call to your MP3 player. This annoys your offspring, who were watching a movie on it. To placate them, you tell them to fetch your video camera, which they can use to stream the same movie to your television in higher quality...
Repton.
They say that only an experienced wizard can do the tengu shuffle.
When you upgrade firmware in a Canon camera, there is scope to run an application before the firmware upgrade. What CHDK does is trigger the upgrade process, but doesn't upgrade the firmware -- it just uses the firmware upgrade routine to run the CHDK code on top of the firmware. The camera still works, and the CHDK code has access to all the camera variables, allowing you to do pretty much anything you want. But the underlying firmware remains unchanged (and thus your warranty isn't void).
It's all rather neat, and the CHDK code is easy to hack around with (I've done so in the past).