Gumstix Overo Water + eCAM32 camera demo

3.2 mega pixel cameraAs promised in my last post, here is a quick demo of the eCAM32 3.2 megapixel camera connected to the Gumstix Overo Water. I am presenting two videos, one showing the setup where the eCAM32 camera board is mounted on top of the Gumstix Overo Water, the other one being a screen cast demonstrating some of the most common settings of the camera. I am using the Tobi expansion board because it has Ethernet interface allowing me to stream H.264 encoded video to a host PC running linux.

I am using an OpenEmbedded build based on the dsp-console-image by Jumpnow, as I have mentioned in my previous post. The kernel is basically a 2.6.34-caspapx kernel modified according to the patch the came on the CDROM accompanying the camera.

My modifications are available in the master branch of my git repository at AMSAT DK: http://git.amsat.dk/cgi-bin/cgit/cgit.cgi/romit-oe/ or on Github: https://github.com/csete/openembedded – it is based on the Gumstix OE repository available here: https://gitorious.org/gumstix-oe/mainline . If you examine the network graph you will see that I am using their overo-2011.03 branch as basis. Please note that all this is very much work in progress.

Here is the first video showing the setup where the Gumstix Overo Water + eCAM32 camera is streaming video over the network to the host computer:

Watch video on Youtube.

The second video is a walkthrough of the most common features of the camera, e.g. focus, color, contrast and brightness settings. The camera is set to stream using the following Gstreamer pipeline:

  gst-launch -v -e v4l2src ! video/x-raw-yuv,width=640,height=480,framerate=10/1 ! 
      TIVidenc1 codecName=h264enc engineName=codecServer !
      rtph264pay pt=96 ! udpsink host=192.168.20.100 port=4000

On the host side, I start an H.264 player using this pipeline:

  gst-launch-0.10 -v udpsrc port=4000 caps='application/x-rtp, media=(string)video, 
clock-rate=(int)90000, encoding-name=(string)H264' !
  rtph264depay ! ffdec_h264 ! xvimagesink sync=false

Note that the player on the host PC must be started before the streaming application on the Gumstix, otherwise one has to pass a long stream-code from the server.

Once the video stream is up and running, I start the “capture.elf” application provided by e-con Systems. In addition to capturing frames from the camera, this example application can be used to adjust the settings of the parameters. This is what you see in the left side of the video.

Watch video on Youtube.

Note that the capture.elf demo application comes with source code 🙂

Finally, here is a still image taken at the full resolution of the 3.2 megapixel camera. Note how well the camera captures the fundamental colors even though I am using standard indoor lighting (no special photography lights). If you click on the image it will take you to Flickr where you can get it in highest resolution 2048 x 1536 pixels.

eCAM32 test image