Closed Digital Cameras - Does Anyone Care?
Karamchand asks: "Free Software and open standards are ubiquitous in the server and even desktop area. But why does nobody seem to care about openness in digital cameras? I couldn't find a single hint as to what main processor my camera uses (I guess many use ARMs and others use TI DSPs), and while searching for information about (re-)programming digital cameras, I had to give up (apart from the scriptable Digita OS which was used by some discontinued cameras by Kodak, HP et al). Do you know of any efforts in this direction, whether they are actual disassembling/programming of cameras or asking vendors to get more open?" I still have my Kodak DIGITA-based camera from several years ago and I loved the flexibility, even though the performance is poor by today's standards (long cycle times, poor battery life, etc). Why are digital camera manufacturers keeping the lid on the capabilities of their products, when digital cameras could be so much more than their film-based counterparts?
The Canon Digital Rebel (a/k/a 300D) is in many ways a crippled version of the Canon 10D. A Russian hacker developed a version of the firmware that unlocks much of the hidden potential of this camera.
Q:How many libertarians does it take to stop a Panzer division? A:None. Obviously market forces will take care of it.
Here's the main info page that gives an English overview of all the hacked features: http://www.bahneman.com/liem/photos/tricks/digital -rebel-tricks.html
PepperHacks - Hacking the Pepper Pad
Personally, I like to have a nice, working, manufacturer supported camera more than I like having a 1337 LEENOOKS-2000 fuzzy image device. But then, I also stopped using Gimp and Linux in favor of Mac and Photoshop, so flame on.
I really hope the parent was tongue-in-cheek. In terms of a modern digital camera, my DiMAGE A2:
1. Turn it into a temporary USB data storage device if it has a USB port on it
Check.
2. If it has audio capability, turn it into a digital audio recorder that works kind of like a mini-cassette recorder (ie. shitty quality, but lots of record time)
Check. The video function works fine for this, and if you leave the lens cap on, the black-frame video takes up almost no space.
3. Make it into a "cam" that can be attached to your PC for live web cam stuff
Check.
4. Turn it into a video recorder for short clips in a format like MJPEG
Check. You have, y'know, used a digital camera, right? MJPEG's been the main video capture format for years, only now being supplanted with MPEG4.
7. Set it up for motion sensitive mode. It will span a picture only when something in the field of view moves
8. Or similar to above, in motion sensitive mode with USB, it could just dump the image straight to your PC whenever there is motion. Imagine combining this with a laptop to work as a spycam...
Check, check.
That said:
5. Make it into an e-book reader that can read PDF or Postscript docs (after all many digital cameras have scroll wheels and multiple menu buttons, etc...)
6. Play some old school video games on them: Space Invaders, Pac Man, maybe even Doom. Doom's been done before...
9. MP3 or Ogg Vobis player the works from CD or Flash media (again if your camera has audio capability)
10. A USB video monitor. Combine your camera with a Mac Mini and a foldup KB and mouse and you have a pretty compact but powerful system for travelling. (Yes, I don't mind squinting at small screens)
The fascination people have with putting Ogg/DOOM/eBooks on random objects amuses the hell out of me. I have a Vorbis player on my iPaq, and an eBook reader on my iPod, and never use either of them. As for porting games...oi. I recommend a GameBoy.
In response to the original poster, my camera's a MIPS, according to my firmware disassembly. Here's something I'm amazed nobody has mentioned:
My camera's firmware contains a TCP stack, PPP implementation, SMTP implementation, and dinky FTP server. It's pretty clear that the manufacturer intends (or intended) to release a modem of some sort. Yet, nobody seems to have mentioned network connectivity!
On the Nikon D70 for example there are even 2 different firmwares you can update. Does anyone know which 2 processors are used in the D70? I understand one is used for the user interface and the other for the signal processing(DSP)
So no technical reason to stop us disassembling the code (lateste update for example) and make some changes or extensions and reprogram your camera.
With an JTAG connection debugging would be way easier. Although, we might be able to use the USB port for feeding debuging data back to a PC.
The only real problem I see, is if you really mess up the firmware, you might block the possibility to reprogram the firmware and you end up with a non functional camera...
In the case of the D70 we could start with the DSP only, assuming the other processor can still reprogram the firmware in case of an 'accident'.