Wednesday, March 25, 2009
My latest endeavor with the Overo Earth (micro-beast) is to connect a Logitech
QuickCam® Orbit AF Camera to obtain snapshot images from the camera and to control the vertical and horizontal position of the camera remotely. To that end I have met with some limited success.
In order to obtain images from a web cam or USB camera you need a driver for the device so the kernel can communicate with the hardware. Luckily for me, since I am terrible at programming, others have created kernel driver software which communicates with different types of USB camera hardware - the Logitech Sphere is one such device with a kernel driver already written for it. My second stroke of luck is the fact the specific kernel driver source code is already in the Overo Earth software respository and downloads when you setup a development environment for compiling software for the micro-beast (whew).
Now - even having the kernel software driver to communicate with the camera is just the first part needed. You still need software to act as an intermediary between an application that will access the camera and the kernel software driver for the camera. Again, luck is smiling on me and there exists such a software package for the Overo Earth system. The name of the software package is Video for Linux version 2, or more known as V4L2 and is a part of the linux kernel package for Linux version 2.6 and forward. Having the V4L2 already a part of the Linux package makes interfacing with different video cameras much easier for applications programs as the programmer writing the application only has to access the V4L2 API (Application Programming Interface) instead of different video camera hardware through the individual camera drivers directly - this makes the application much more portable than it would be otherwise and allows the same application to work with newer video camera hardware as new drivers are developed.
Great! I know have a method to get video snapshots from the Logitech Sphere but still need an application to do something with them. There are numerous applications that can do different things with video or video snapshots but I am looking to just capture a video snapshot from the camera and display it on a web page. One such application that lends itself very well to this application is called fswebcam.
FSwebcam talks to V4L2's API so can work with different video cameras and other video sources supported by V4L2 which makes it rather easy to configure and get working. Of course, in writing this article I look back at all of the different stumbling blocks I ran across getting video to work on the Overo Earth and hopefully some of the information contained here will be of some use to others going down the same path (grin). Working on the bleeding edge of technology requires bandages!
My next entry will describe how I setup a web server (Apache2) on the Overo and configured FSwebcam to place the images in the web server directory so you can access the image from a web browser... don't want the posts to get too long you know (grin)...
Posted by Gary N McKinney at 3:59 PM
Sunday, March 15, 2009
As delivered the Overo Earth computer comes with 256-Meg of DDR RAM memory and 256-Meg Flash non-volatile memory. For most embedded applications this is a vast amount of memory! On the other hand - if you are looking to use the device in a more-general purpose application such as a very very tiny desktop machine you will need more non-volatile memory for the storage of applications and application data files.
I know, it was once stated that most people would generally only need about 10 megs of storage and 640K of RAM, but consider the source of that statement - Bill Gates himself (code bloat extrodinare) at the 1986 Chicago Computer Show! I beg to differ (as I did in 1986) that memory requirements will only grow and should not be limited to some hasty decision from others who would think computer technologies will not advance. Oh well - gotta get off this soap box!!! I degress!
I am using a Micro-SD card (very very very tiny non-volatile memory storage device) to store my uboot, Linux kernel and the Linux filesystem. The specific card I am using is the A-Data 8-Gigabyte Class-6 Micro-SDHC card. The specifications for this uSDHC card are pretty good - not the fastest but respectable for the amount of storage afforded by the device.
- Brand: A-Data
- Type : Micro SD / TransFlash Card
- Capacity : 8 GB
- Size: 15mm x 11mm x 1mm(L x W x D)
- Speed: Speed Rate is Class 6, Guaranteed read/write speed of at least 6MB/s
- Warranty: Lifetime Warranty
Now, before you start quoting that SD cards have a limited life you may want to check on the current SD card memory capabilities. Most of the current SD and SDHC cards can write over one million times to the same memory cell (unit of storage) before there is the posibility of the memory cell not retaining the bit setting. Most current non-volatile memory devices now use a form of virtual addressing which allows the device to "balance" the use of the memory cells by translating the requested physical memory location into a virtual memory mapped location on the device. This ability to perform translation allows the device to balance the write operations on the device in such a way as to spread the write operations across the device more evenly thereby extending the useful life of the device.
One advantage I have found to running the computer system from the uSDHC card instead of the built-in non-volatile flash memory is if something goes horribly wrong with the information contained on the uSDHC card I can always boot up the system from the factory installed operating system contained in the built-in non-volatile flash memory! This is a very handy capability as there have been times during the learning curve of building the operating system for the Overo computer where I have actually had to use this capability to recover from some boo-boos (I like to refer to my stupid mistakes as such).
Currently, the uboot (initial bootup software), the Linux kernel (version 2.6.29-RC2) and the Linux filesystem along with various Linux applications and an x-windows environment comsume less than 1-gig of storage on the uSDHC card. The remaining free space is over 7-gigs of space which is a pretty respectable amount of storage space - even by todays standards.
More to follow...
Saturday, March 14, 2009
OK - So it's not the prettiest setup nor the cleanest setup but it works for testing (grin).
If you look closely (clicking on the picture will give you an enlarged view) you will see the different components which comprise my development system.
On the left is the DVI-D to RGB converter which allows viewing the video output from the Overo/Summit system on a regular LCD display. This adaptor is only needed if you have an older monitor that does not have a DVI-D input. Most current LCD HDTV sets do so that could double as a monitor too.
To the right is the actual Overo Earth board installed on a Summit expansion board. Installed in the MicroSD slot is a class-6 8-Gigabyte Micro-SDHC card which contains the uboot loader, Linux 2.26.29-rc2 kernel and the Linux filesystem. Even with all of that there is still over 7-gigs of free space left on the card.
Also in the picture is a Transend 2.5" SATA-2 64-Gig Solid-State Drive connected through a SATA-2 to USB-2 adapter to a Targus 2.0 USB Hub. Since the USB ports on the Summit expansion board are High-Speed USB-2 ONLY you need a 2.0 USB hub capable of handling the lower speed USB devices. For those of you who like technical specifications I have been able to read data from teh SS-Drive at about 20-Megabytes per second, write speed is much slower at around 2-Megabytes per second. Even though the write speed is slow by today's standards this is still very respectable given the size of the system.
Keyboard and Mouse input are handled by a Logitech Wireless Keyboard and Mouse and you can see the Wireless Keyboard/Mouse receiver connected to the USB HUB. The operating system loaded in the Overo's non-volatile flash memory already has the drivers needed to use this combo setup.
Ethernet connectivity is handled by a Hawking 10/100 Ethernet to USB adapter and the little device plugged into port three (second from the right on the HUB) is a Bluetooth transceiver. Now - the Hawking adapter shown here is a discontinued device but there have been reports of the Linksys USB200M Ethernet/USB adapter working fine with the board.
Again I stress - the Overo does not have enough power supply to handle external USB devices so you MUST use a powered 2.0 USB HUB The Overo only has high-speed (480-mbit/sec) USB ports which will not work with slower 1.1 and 1.0 USB devices which is the reason for using a 2.0 USB HUB. Trying to power external USB devices from the Overo directly is the best way I can think of in turning this little power-house into a dead speck.
So - in a nutshell there is a 600-MHz ARM Cortex-8 based computer with 256-Megs of Low-Power DDR RAM, 256-Megs of Flash memory, 8-gigs of Micro-SDHC storage with 64-gigs of SS-Drive external Storage, Wireless Keyboard and Mouse input, 10/100 Full-Duplex Ethernet, Bluetooth, Stereo Audio Input and output along with HDMI (720P) capable video output in the current configuration. All of this and the total system draws about 12-Watts of power!
Not a bad little system by any current standard.
More to follow....
Posted by Gary N McKinney at 6:01 PM
In looking at the images on the blog so far I realized there is nothing to reference the size of the Overo Earth to. Yes, I can give a description but a picture is truely worth a thousand words -especially in this case!
In the image to the right the battery is a standard double-A 1.5-Volt Duracell Alkaline Battery (not a plug for the brand).
Three of these batteries will run the computer for about six hours or so - or you can use Ni-Cad rechargable batteries ( four will give you 4.8 VDC to run the system for about 3 - 6 hours, depending on the current rating of the Ni-Cad batteries). I have run the system for about four hours on 2250-ma Ni-Cad batteries.
Note: In the image there is an Integrated Circuit on the left side with two miniature R.F. connectors to the left of the IC. On the current production runs this IC is not installed - it is a 802.11b/g and Bluetooth wireless IC but has not received F.C.C. approval yet so is not installed.
(Hope they get it approved soon then WiFi and Bluetooth will be integrated!).
More to follow...
Posted by Gary N McKinney at 9:44 AM
Friday, March 13, 2009
As the Overo Earth computer comes it is quite difficult to communicate with it. You see, there is very little in the way of communications as all of the input and output to the computer goes through two 70-pin miniature connectors on the bottom of the computer board. Normally, this would be an issue but the folks at Gumstix have a solution.
Meet the Summit expansion board for the Overo Earth computer. It has connectors configured to interface to the two 70-pin connectors on the bottom of the computer to allow access to different capabilities on the Overo Earth board. When the Overo Earth computer is plugged into the Summit expansion board you have the following interfaces available:
- USB OTG mini-AB
- USB host mini-A (experimental)
- DVI-D (HDMI) video out
- Audio In / Audio Out (stereo)
- USB Serial Console
- Signals available on 0.100-inch through-holes at 1.8V logic levels
- Two (2) two-wire serial ports
- One 1-wire port
- 6-ea. PWM output lines
- I2C port
- SPI Bus
- 4V to 5.5V input
- (2) 70-pin AVX 5602-24 connectors
- 80mm x 39mm
- Four (4) x #2 mounting holes
more to follow...
Tuesday, March 10, 2009
Most are probably wondering what an "Overo Earth" is. Well, it is one very very small computer with great potential! As you can see in the image the whole computer system is about 70% the size of a sitck of gum. Of course the company that makes this tiny powerhouse is named "Gumstix" and have been producing really small computers for a while now!
Even though the computer is really small (it is actually "under" the integrated circuit below the micro-SD socket in the picture to the right) it comes with some pretty impressive specifications:
|Processor:||OMAP 3503 Application Processor with ARM Cortex-A8 CPU|
|Performance:||Up to 1200 Dhrystone MIPS|
|Memory:||256MB RAM |
|Features:||- Pin-out compatible with future OMAP 35x-based Overo motherboards - on-board microSD card slot |
- I2C, PWM lines (6), A/D (6), 1-wire, UART, SPI, Camera in,
Extra MMC lines.
- Headset, Microphone, backup battery,
- USB OTG signals, USB HS Host
|Connections:||(2) 70-pin AVX connectors (1) 27-pin flex ribbon connector|
|Size:||17mm x 58mm x 4.2mm (0.67 in. x 2.28 in. 0.16 in.)|
|Expansion:||Expansion boards for Overo motherboards.|
Or, custom design from open specifications.
More to follow... gm.
Posted by Gary N McKinney at 3:06 PM