Me and a group of students are building a UAV and we want to put a high quality camera in it (i.e. a decent ~100mm zoom lens) and interface the imagery with on board processing. I have looked around for a camera that can interface over USB, or any other connection that is compatible with either a Pandaboard or a DE0, but I have not been able to find any that meet the specifications (without being much too expensive).

We have a Casio Exilim EX-Z1050 that has a crack in the screen, and thus perfect for integrating with the UAV. The question is, what is the best way to get either video or at least 2 stills per second out of it in real-time?

I was thinking of using something like this to grab either video or stills as they are being recorded onto an SD card. What is the feasibility of using perhaps an FPGA to perform this? If someone knows where I can find a spec for the SD protocol (the 1/4 bit one, not the slow SPI one), or perhaps a useful enough reverse-engineered spec, a link would be very useful.

Any other ideas?

Many thanks!

  • \$\begingroup\$ The more I think about it, you have a very interesting idea. With an understanding of the protocol, you can snoop the data as it travels to the SD card. Or if you're more ambitious, you can emulate the SD card in the FPGA. Either way means a lot of work, and I would want more RAM than the DE0 has. What is your timeframe and budget? \$\endgroup\$
    – mng
    Commented Mar 18, 2012 at 23:33
  • \$\begingroup\$ @mng Well, the "understanding of the protocol" bit is what I have problems with: I can't seem to find any spec on the 1/4 bit SD protocol. We the project in total has about $1000 to it, but we need to spend most of it in getting the plane in the air. In terms of time, all work is done in spare time, so available time is mostly a function of how fun the work is ;D The DE0 has 8MB of sd-ram which should be fast enough for the data stream to the SD card. \$\endgroup\$
    – Madcowswe
    Commented Mar 19, 2012 at 0:05

2 Answers 2


Most of the of the Canon A series cameras are able to run the free and stunningly capable CHDK - Canon Hack Development Kit and also here.

  • CHDK allows you to communicate via USB, control the camera's every know feature and add extra features. eg you can set up motion sensing of a selected area with action of choice to follow even though this facility is probably available as std on none of the cameras concerned.

CHDK is installed on an SD card which is inderted in the camera and the camera loads and runs it along with any "program" files at power up. The camera is not altered. I understand that the latest Canon A series camera are not compatible, but the project is ongoing and capable.

Overview here

They say:

Enhanced Image Capture: CHDK supports RAW format for pictures (in addition to JPEG), longer recording time and length for videos (up to 1 hour or 2GBs), and several new compression options.

Additional Information On-Screen: With CHDK, you can customize your on-screen display to your heart's content, including worthwhile information like remaining battery life, histogram, depth of focus, and more.

Additional Photographic Settings: CHDK takes many of the features already available on your camera and gives you way more options, including longer exposure times (up to 65 seconds), faster shutter speeds (1/25,000 sec or faster), automatic bracketing of your photos, and more.

Support for Small Programs/Scripts: CHDK can run small scripts that will allow your camera to perform a set of actions based on the conditions of the script. Tons of scripts are available, and they provide functionality like motion-sensing photography (which reportedly works for lightning strikes) and unlimited interval time-lapse photography (see video below). Click to view

Even better, CHDK is being actively developed, which means that new features are always on the horizon. There are actually several versions of CHDK in development, but the version we're going to focus on is called the Allbest build—a build that incorporates many of the best features available in other builds (get it?).

What You'll Need

To use CHDK, all you need is a supported Canon digital camera and an SD memory card. If you've already got a supported camera then it only follows that you've got the memory card, so you're already well on your way.

  • \$\begingroup\$ Now this is VERY cool, especially since we may have access to a supported camera. However, although the CHDK enables a lot of extra functionality, I couldn't find any feature that allows you to extract any stills/video. Thanks for the cool heads up anyway ;D \$\endgroup\$
    – Madcowswe
    Commented Mar 18, 2012 at 23:16

You can use a DSP to do this. Some of the DSPs have on-board MPEG/JPEG encoders which will boost the framerate that you need. For example, you can check out Gstreamer for TI DSPs. Here, Gstreamer is a software package which is used on various DSP boards for realtime video processing.

  • \$\begingroup\$ Hm, my question is how to interface the camera to my processing equipment, not how to process it... \$\endgroup\$
    – Madcowswe
    Commented Mar 18, 2012 at 7:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.