3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

Hacking A Keychain Digital Camera for Arduino Control

Hacking A Keychain Digital Camera for Arduino Control
«
  • IMG_0875.JPG
  • IMG_0884.JPG
  • IMG_0717.JPG
  • IMG_0856.JPG
  • 002.jpg
Photography options for the Arduino are few and far between. Webcams aren't practical for applications like kite photography or public photography, unless you feel like buying a 200 foot USB cable. And current techniques for stand-alone Arduino photography typically try to capture raw image data from CMOS cameras popped off of cell phones...and believe me, unless you need to digitally upload or alter those photos in real time, you don't want to go down that road. Why isn't there a normal, cheap, run of the mill digital camera that's controllable by Arduino? 

Turns out there is at least one - and they sell it at your local drug store (CVS/Rite-Aid/Walgreens/etc.) 
It's those chintzy little keychain cameras that they sell for $10-15 a pop. The photography on them isn't half bad with a resolution of about 300 by 200, they can store between 20 and 240 photos (depending on the one you find), and it turns out the little guys were just made to be hacked. You can also do this same hack with a cheap 1 or 2 megapixel camera that takes SD cards if needed (see below), but we'll be stepping through the process used on the more commonly found 300 by 200 cameras.

This Instructable will walk you through the process of disassembling, modifying and reassembling an off-the-shelf keychain camera. It will then walk you through wiring a simple set of transistor switch circuits that can be used by Arduino to turn the camera off and on and snap photos whenever your program desires. It'll also have sample code and plenty of pretty pictures.

Before we start, a few notes: 

*The camera being hacked may change from blue to silver and back in the photos. Don't fret, the internals of both cameras are the same (I'm working with both at the moment for research.). This same camera is sold across the country in different colors, under different brand names and even with slightly different physical casings.

*If this technique sounds familiar, it might be because what we're doing to the camera itself is very similar to the technique used by the CatCam, a project that went viral two years ago by putting small, time-lapse cameras on the collars of outdoor cats and watching where they go. The CatCam's technique uses a camera that's not easily available in the United States, and was written before Arduino really took off - hopefully this revisiting of the technique will help the DIY community rediscover and repurpose it in their projects. I discovered the CatCam as this project wrapped up, and both techniques were developed independently - so my technique likely varies from the CatCam technique; feel free to pick and choose techniques from the two.

*If you are outside the US or willing to order directly from CatCam, the hackable camera they sell is of a higher quality - 1 or 2 Megapixel - and can save photos directly to an SD card. Very nice for many projects (but not necessary for all.) But if you want a camera today, head to any Rite-Aid, CVS, etc and pick up the camera shown here - a Digital Concepts camera, usually distributed by Sakar international.

*My research actually has me controlling this camera via a stand-alone ATMega chip. If you're interested in learning that technique for some reason, let me know - if there's enough interest I'll whip up another Instructable. (I figured there'd be more demand for doing it via Arduino.)

UPDATE: By request I've added the circuit diagram to wire the stand-alone ATMega chip to the chip as the last photograph below. It won't be helpful for many of you, and I apologize for that - I hope to give this step its due diligence - but for those who are determined, it's better than nothing (I hope). 

*This technique is being documented as part of my research at Carnegie Mellon University's Master of Tangible Interaction Design program, in Pittsburgh, PA. If you are considering going back to school, enjoy making things and are interested in the intersection of technology and design or art, drop us a line! :)

Hope you found this helpful - comments on both technology and application are welcome! Feel free to write me directly or comment if you have any questions or want any clarifications.


 
Remove these adsRemove these ads by Signing Up
 

Step 1Assemble Supplies and Tools

Assemble Supplies and Tools
You'll need a few tools and supplies before you can hit the ground on this Instructable. Let's run through them now, shall we? 

Tools:
*A tiny Philips-head screw driver. (About the size of one you might use to repair glasses, or in a computer repair kit.)
*Helpful, but not critical if you have long fingernails - a tiny flat-head screw driver to use as a plier.
*Wire cutter/wire strippers
*Helpful, but not critical - multimeter.
*Soldering iron and solder. (Now, now, don't fret. All you'll have to do is heat up some existing solder and stick a few stripped wire ends into the existing connections. Only rudimentary knowledge of soldering necessary. You might even be able to get away with wire glue on some models, but soldering is safer.)

Supplies:
*An off-the-shelf Keychain Digital Camera. Often sold under the brand names "Digital Concepts" or "Shift." Sold at CVS, Rite-Aid, Walgreens, some Walmarts, and all over the Internet.
*Helpful but not critical - a few spare AAA batteries. The camera should come with one AAA battery. But if you intend to use your project more than a few times or over long periods of time, you'll need spares - the camera eats them.
*A few feet of insulated wire. (Either normal-gauge plastic insulated, shown, or thin-gauge paint insulated is fine - both have their pros and cons; I tend to use paint insulated because I sometimes make custom male headers for my connections.)
*Breadboard or other protoboard.
*Two longish pieces of white wire (for connecting transistors to Arduino)
*Two longish pieces of black wire (for connecting ground from Arduino to breadboard)
*Two longish pieces of red wire (for connecting high power from Arduino to breadboard)
*Helpful, but not critical - an LED (for debugging output).
*Two transistors (I use NPN 2N3904 transistors.)
*An Arduino with USB cable.

« Previous StepDownload PDFView All StepsNext Step »
21 comments
Jan 18, 2012. 3:18 PMvenzorc says:
Is the newspaper for static discharge?
Dec 25, 2011. 10:27 PMbenashbe says:
Did anyone ever find a driver? This is a great project - my first experience soldering. Thanks!

Ben
Nov 15, 2011. 6:25 AMstarvinartist17 says:
I have done all of the wiring and the camera was working fine until I tried to download the images to my computer. I installed the CD and it doesn't recognize the device. I've uninstalled, rebooted, done pretty much all I can think of. What more can I try?
Dec 8, 2011. 6:57 AMrobonerd says:
Did you figure it out? I put an email in to the company, but no response (go figure) I may actually have to bite the bullet and call them! I really want this to work! The only thing that doesn't is the stinkin driver for the "el cheapo" camera! lol!
Dec 3, 2011. 6:33 AMrobonerd says:
Same problem here. Must be a software issue? did you find a solution by any chance? BTW, this is an awesome instructible! Everything is documented quite well. THANKS!!! I'm wondering if I can use this on an old fuji finepix camera of mine?
Aug 24, 2011. 11:23 PMmagikid says:
Thanks for this awesome article! I was looking into the possibility of lifelogging with the arduino and realized that it's possible with something like this. A quick question though, what type of image does the camera output ie jpeg, raw, png?
Sep 13, 2011. 8:35 AMpcooper2 says:
Keychain cameras produce JPEG files, if memory serves.
Sep 13, 2011. 8:33 AMpcooper2 says:
The reason many of the "keychain" digital cameras eat batteries is that they store the images in cheap DRAM, not flash memory. They need to be always on. If the battery dies, so do your pictures, so plan on recovering them from the camera within an hour or two after you shoot them. If the application isn't weight or size sensitive, you could also rig up a HUGE external battery with alkaline D cells that could power the camera for days.
Apr 12, 2011. 7:04 PMBuild_it_Bob says:
Excellent work ! I have one of these cams ...just need to find the time to hack it and try your code.

Thanks!
Build_it_Bob
Feb 17, 2010. 5:15 PMEmptyFlash says:
For some odd reason I can't view the pde file. I'll try to make one on my own though.
Mar 1, 2010. 4:57 AMmarthaaa says:
 i also can't view the pde file. can you help??????
Mar 5, 2010. 2:30 PMzoltzerino says:
 I'm guessing your problem it that it downloads as a .tmp?

You need to change the extension of the file once it has downloaded to a .pde and open with the Arduino developing environment.
Feb 13, 2010. 10:24 AMjonnyboy323 says:
 Thanks for the fantastic Instructable. It worked like a charm :D
I now understand transistors too.
Jon
Feb 12, 2010. 1:22 PMNXTreme says:
Great idea! I have two of those exact cameras (blue and silver) that I got for about $6 each. I do have one question though as I am a bit new to transistors. Would any NPN transistor work? I have a couple different ones just lying around that I have taken out of random electronic things and I was hoping I could just substitute those. Thanks!
Feb 13, 2010. 6:17 AMNXTreme says:
True, very true. Thanks!
Dec 28, 2009. 2:07 PMmmalham says:
I love this instructable. Going to buy a keychain cam tonight. Can you add a schematic for the wiring of the arduino?
Dec 16, 2009. 2:12 PMOra says:
This is a great instructable. Really simple and easy to do, but still super cool.

Another instructable, or maybe just an additional step, explaining how to build the circuit to use a standalone Atmega would also be helpful.
Dec 20, 2009. 5:58 PMexabopper says:
I've been thinking of doing one of these myself. The camera I chose is by Vista Quest (as used by the Cat Cam www.mr-lee-catcam.de/cc_index_en.htm).  They make (or made) a couple of cameras that have no display for keychain use, but they have 3 megapixel capability, take videos, and output to an SD card, so you can take thousands of pictures or hours of video. Perfect for a kite cam.  I picked up a few at Toys R Us, for about $30 each clearance.  One other thing I thought about is taking the little beeper output of the cam and making it and input for the u-controller, so it would know when the camera had taken a pic and was ready for the next.

Great job overall!  Do you have a cat?  or a kite?  They also use these connected to a motion detector (Deer Cams, or wildlife cams).  Lots of applications here...

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
6
Followers
2
Author:smb(Biskerrific.com)
I'm a technology designer currently studying Tangible Interaction Design at Carnegie Mellon University. I'm particularly interested in applications of technology to cities, on the go, and generally in...
more »