# DIY: What is required in order to save a picture captured from a CMOS image sensor to a digital format?

I have a need to programmatically capture HD pictures (2 MP or better) under predictable lighting from at least 8 locations. Buying multiple cameras is not only expensive, but does not allow me to automate taking pictures and collate/label them.

Buying multiple CMOS image sensors and stitching things together seems to be what I require. However, extensive Google searching continues to leave me at a loss of what steps I need to take outside of buying an image sensor in order to get to my goal.

I am new to diving into hardware at this level so any help regarding ways to centralize and read image sensor output would be great.

• My guess is that this will be difficult as a first project if you haven't worked with electronics before at the circuit level. Do you have an interest in spending a couple weeks-months getting familiar with basic circuits and microcontrollers before trying to undertake this? You may want to start looking at some beginner tutorials of arduino or similar starter kits, there are lots of great starter projects. Once you're comfortable with that it's just a matter of reading the datasheet of your sensor and interfacing with it. – Tim Mar 20 '13 at 18:51
• While I agree that time investment is needed, I'm not certain that Arduino would be the appropriate solution. To simply put it: It's too slow. Another point are the sensors themselves and how much processing the module actually does. Some will require connection to a specialized bus, while others will be able to send the data in common serial format. Only practical solutions that I can see would be to re-purpose existing electronics. 2 MP has been available for cameras for quite some time. Maybe get old or used cameras and just hack the trigger button? – AndrejaKo Mar 20 '13 at 18:57
• I've never used arduino so I couldn't really argue, but here seems to be a 2MP open source arduino based camera: arducam.com, so it might not be too slow. – Tim Mar 20 '13 at 19:27
• @Tim Yeah, but take a look a the pictures of the board: It has an Altera MAX II CPLD coupled with Averlogic AL422 to do the heavy lifting. When I wrote the Arduino too slow comment, I meant that the Arduino would be too slow to do any actual image processing and interfacing with the image sensor itself. Keep in mind that the board itself costs $30 and it doesn't have the image sensor, which would be several tens of dollars more. Still, it's an interesting board. – AndrejaKo Mar 20 '13 at 19:38 • Do the sort of image sensors you intend need optical lenses and stuff for focussing, zooming etc.. – Andy aka Mar 20 '13 at 21:08 ## 1 Answer If you want to be acquiring video from image sensors, you'll need not only the image sensors, but you'll need to machine or buy the housings to couple lenses to the sensors, you'll need to buy the lenses, you'll need to design electronics that consume the image sensor data and compress it, and you'll need to write firmware and software for all of that. For a one-off project, especially if you're not very experienced, this is way more trouble than it's worth unless you really want to tackle a high-tech project and learn everything as you go. You're quite secretive about how really do you envision your project. Is it one self-contained device with 8 cameras? Cameras in multiple locations on the scale of a building? 8 cameras in orbit? What are the images for? What software do you need to feed the images to? I hope you see the problem. One simple way to do it is to use IP cameras. Yes, you will have to buy cameras, but it's still an easy way to go about it while having trivial programmability from almost anything with a gigabit ethernet port on it. For 2 megapixels, you're looking at$300-\$600 per camera.

If the cameras can be USB and plug into one PC, then you may get by using webcams. You'll have to test this solution, since webcams differ wildly in the quality of the electronics, firmware and drivers. Ideally you want something that supports the standardized USB Video Class, as you then have a choice of not using Windows on the machine that collects the video data.

If you only need to collect the pictures onto a memory card, then using custom firmware on supported Canon digital cameras would be the way to go. You can then also have full programmatic control on picture-taking, either internally within the camera, or remotely over USB.

## protected by W5VO♦Mar 20 '13 at 19:23

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).