HomeConnect USB Driver for Linux

3Com HomeConnectThe 3Com HomeConnect (3CO3C886) is a good quality USB camera which, as standard, is supplied with Windows and Macintosh drivers but, regrettably, none for Linux. Unfortunately neither 3Com or Vista Imaging who designed the camera have released any technical information to allow a driver to be written believing that their commercial interests could be damaged if this information were to become public, so we're on our own with this one.

The Sourceforge project is here.

Armed with USB Snoopy, John T Willis has successfully captured conversations between the driver and the camera. His page detailing his investigations is here.

Progress report

This is what we know about the camera's data format so far: In monochrome mode the 3Com HomeConnect Webcam returns image data as a stream of bytes that represent the luminance of pixels that form the image. These bytes are transmitted in left to right, top to bottom order. Image recovery is simply a question of scaling the resulting image to restore the original aspect ratio (few if any of the camera's modes seem to have naturally square pixels).

In colour mode the same amount of data is transmitted but now the intensities of the pixels in the image vary in a repeating 2x2 pattern. It seems that this represents the superimposition of lower bandwidth chrominance information onto the luminance data. Along a particular raster that byte values at any point are the sum of the luminance and the phase alternated chrominance. For example:

luma12312812912011190
chroma191918171512
combined14210914710312678

The chroma information at each position can be extracted by subtracting each sample from its neighbours and negating every second result. Once this has been filtered it can be used to recover the luminance.

The colour information on even numbered scan lines represents how red or cyan the image is while the odd numbered scan lines encode magenta/blue - green/yellow. On a 360° colour wheel these colour pairs are set at 90° to each other:

Encoding

I believe that the first few nondisplayed bytes of image data contain information which has affects the decoding process although I haven't started to decode them yet.

A Message to 3Com

As an aside, I believe 3Com's decision not to release Linux drivers or the information that would help to write them is misguided. If you've bought or would consider buying the camera for use with a Linux system please go to this page and send them a polite note telling them about the sale they would otherwise have missed.

Some links

SourceForge Logo

Andy Armstrong, andy@tagish.com, 2001/03/08