The Connectix Quickcam Technical FAQ (Proposal)
December 4, 1997
This document is archived at
http://www.cs.duke.edu/~reynolds/quickcam/
This file lists answers to some of the often heard technicalquestions about the Connectix Quickcam line of digital cameras.
The information in this text was gathered by independentdevelopers on the "Connectix Third Party Drivers mailinglist" and is NOT official and was NOT approved by Connectix.In other words - we cannot guarantee that this information is100% correct, and if you destroy your camera using theseinformation, don't sue us, please. You were warned.
0. First of all
0.1. Where you should go on the Web
1. The Connectix Quickcam digital camera
1.1. Technical differences between Mac and PC versions
1.2. Technical differences between B&W and color versions
1.3. Can I use the parallel version on a serial port (or viceversa)?
1.4. Now what about that parallel port of my PC? Is itbidirectional?
1.5. Can I connect the Quickcam to a XYZ computer?
1.6. Can I connect more than one camera to one PC?
1.7. Oddments of the serial Quickcam
1.8. Can I connect the Quickcam to a network? (Web-Cam)
2. Home repairs and extra fun with the Quickcam hardware
2.1. The infrared filter / night vision
2.2. The lens / video-microspope
2.3. Disassembling the B&W Quickcam ball
3. Writing software for the Quickcam
3.1. Connectix official developer support
3.2. Is there a driver available for the XYZ operating system(e.g. Linux)?
3.3. The low level programming specs
3.4. What mistakes exist in the specs?
4. Troubleshooting
4.1. How to make my PC's parallel port bidirectional?
4.2. Linux Autoprobing: Sometimes, the driver finds the camera,sometimes not.
4.3. There is that clinkering noise in my QC ball. What's wrong?
5. About this text
0. First of all
If you are interested in Linux or FreeBSD drivers, read section3.1, please.
Low-level interface specifications for the B&W and ColorQuickcams used to be available from Connectix. Logitech has takenthese documents offline and shows no interest in making themavailable to developers. Windows NT drivers also used to beavailable from Connectix and were removed from the Quickcam website when Logitech took over development of the Quickcam line.
People are still working on Unix drivers for the B&WQuickcam, Color Quickcam, Quickcam VC, and Quickcam Pro. If youwish to join the discussion or support the development, pleasejoin the Third Party Drivers mailinglist throughhttp://www.crynwr.com/qcpc/.
0.1. Where you should go on the Web
Check the Quickcam Third Party Drivers website athttp://www.crynwr.com/qcpc/.
This is the main non-official resource for developers. It ismainly intended for people who do write software for OTHERoperating systems than Windows or MacOS (but even if you do, youwill find a lot of interesting things there). Please join themailing list to hear the latest discussion.
There is a FTP archive available atftp://ftp.cs.unm.edu/pub/chris/quickcam/
There is a list of third-party drivers athttp://www.cs.duke.edu/~reynolds/quickcam/
1. The Connectix Quickcam digital camera
The Quickcam comes in several versions - the original GreyscaleQuickcam, the Color Quickcam, the Color Quickcam 2, the QuickcamVC, the Quickcam Home, and the Quickcam Pro. The GreyscaleQuickcam and the Color Quickcam are available in Macintosh(serial) and PC (parallel) versions. The Color Quickcam 2 isparallel-only. The Quickcam VC and Quickcam Pro are available inparallel and USB versions. All Mac versions include a microphone;the PC versions do not.
The Color Quickcam and the Color Quickcam 2 use the sameprotocols, so the same drivers work for both. The Quickcam VC,Quickcam Home, and Quickcam Pro use new protocols (clearly theUSB version is a new protocol!). The Quickcam VC and Quickcam Prouse one protocol.
The Quickcam's main advantages: it's cheap and it's easy to use.While most computer video hardware products need complicated A/Dchips to convert an analog video signal to a digital computerbitmap, the QC directly transfers the data of its digital CCDchip to the computer. This results in simple, small hardware andlow price. These features have made the Quickcam the most populardigital camera to date.
Its main disadvantage: the image quality is okay, but notprofessional, and it's too slow to take movies with high framerates. The QC is great for surveillance, videoconferencing orother low bandwidth applications, but not for high quality videoprocessing. But hey - what did you expect for that price?
[That's it for a very brief overview. You'll find more technicaldata at Logitech's website. If you think that I should include afull data sheet table, let me know.]
1.1. Technical differences between Mac and PC versions
The Mac version connects to a RS422 serial port and includes abuilt-in microphone. (With video conferencing, it looks prettysilly when you approach your camera and yell into it...)
The PC version connects to a Centronics parallel (printer) portand needs an additional link at the keyboard connector for 5Vpower supply. There is no built-in microphone.
The PC version allows bi-directional data transfers on parallelports. This feature is not supported by some older PC computers.(The parallel port was originally designed to send data bytes tothe printer and receive only a few status bits like "printeronline" or "out of paper". Bidirectional portsallow to receive data bytes, too.) This makes the image transferabout 2.5x faster compared to uni-directional transfers.
In an earlier version of this text, I assumed that the Mac andthe PC versions are basically the same hardware except for aserial to parallel converter in the PC version's connector plug.
Here's what William Lewis () had to say aboutthat:
"Actually, in the PC version, the only thing in the eyeballitself is the CCD and some power-supply stuff and signalconditioning stuff. Everything else, including the A/D converter,is in the connector shell, which contains a 20-MHz PIC 16C64. ThePC camera seems to be a completely new design, not just a Maccamera with a parallel interface; for example, the circuit boardin the eyeball says "WCAM100" on it and doesn't appearto have any blank spots where a microphone would have beenconnected for a Mac version.
One consequence of this is the cable between the eyeball and theshell is actually carrying the pixel values as analog voltages. Igather from some postings to this list that it's not too hard toinduce noise on this line, which shows up as sparkles in theimage. This gets worse if you hack up the camera to extend thecable length."
The color version of the camera appears to send digital signalsbetween the eyeball and the shell. The analog-digital conversionand optional compression are taking place in the eyeball.
1.2. Technical differences between Quickcam versions
The color Quickcam's firmware implements a new image compressionalgorithm, VIDEC, that reduces the data size needed for one imageframe by about 4:1. This is about as much data per frame as withthe B&W version, so the color version can send 15-bit colordata at about the same frame rate as the B&W version.
VIDEC compression works only on still images (like GIF or JPEG),not on streams of images (like MPEG). There is not enough memoryin the eyeball to store multiple frames at once. VIDECcompression is very lossy, though not in a manner similar toJPEG. The color depth is reduced repeatedly, and then bits areshaved using a Huffman table. The processing required is muchsimpler than for GIF or JPEG; thus compression can be performedreal-time by simple circuitry.
The algorithm has been patented by Connectix. As of this writing,they have not entered any licensing agreements with 3rd-partyfree software developers.
The color protocols as published by Connectix only describe howto use the camera without compression. The uncompressed protocolsuse 4 to 6 times as much data per frame as the B&W protocols,and thus the frame rate is much lower.
The Quickcam VC and Quickcam Pro support ECP-mode parallel portsin addition to older, SPP-mode ports. Thus transfers are faster.The VC and Pro models also use a new CCD layout and low-levelimage-transfer protocol. Little is known about either aspect ofthese cameras.
1.3. Can I use the parallel version on a serial port (orvice versa)?
Many people ask if they can connect their QC to the serial portof their IBM PC, using a parallel-to-serial converter or usingthe Mac version of the camera.
This is not possible, due to restrictions of the PC's serialhardware.
Why? The QC was originally designed as a serial device and wasfirst built for the Mac. It needs (according to Connectix' Macprogramming specs) a speed of 918 kbps. The Macintosh's RS422serial ports can easily handle this speed. The early PC's RS232serial ports however had a maximum secure speed of 9600 bps,today's PCs can handle 115200 bps.
This is why Connectix had to use the parallel port.
Too bad, because parallel ports are a lot harder to program thanserial. Third Party Driver developers would be much better off ifthe PC version was a serial device. (Ok, but you can't blameConnectix for that...)
[Is it really easier to write software for the serial QC? Notnecessairily - read the comment in section 1.5. for details.]
So what you'd need is special additional hardware. You could usehigh-speed serial ports (RS422 cards are available for the PC).But since there is no Connectix driver support for this kind ofhardware, you'd have to write your own drivers from scratch.
If you are just concerned about your PC's single parallel portthat you need for your printer: buy a mechanical port switch oran additional printer port card. The latter is less hassle, moreelegant and even cheaper (<$20, make sure to buy abi-directional port).
1.4. Now what about that parallel port of my PC? Is itbidirectional?
Now let's first explain some details about the parallel port ofyour PC.
There are three kinds of parallel ports: SPP (Standard ParallelPort), EPP (Extended Parallel Port) and ECP (Extended CapabilityPort). The EPP and ECP ports are extensions to the SPP thatpermit rapid I/O-Transfer to devices with an EPP or ECP port. TheSPP port was designed for doing output to a printer. It wasn'tintended for efficient input. However later it was extended topermit higher-speed input in what is called bidirectional mode.Since the advent of EPP and ECP (which also provide fast input)the presence of a bidirectional SPP mode isn't as important, thuscomputer and CPU board manuals often don't mention thebidirectional SPP capability.
Transferring an image through the parallel port takes arelatively long time. To make matters worse the PC has to beinvolved in the whole transfer (unlike other slow devices on a PCwhere the transfer is done via DMA or is interrupt-driven).Therefore, reducing the transfer time means that you'll get yourimages faster and that you'll be able to run other programs whilecapturing images. You don't want to do image capture as a lowpriority background task since if you take too long to capture animage it will fade out of the camera's memory. A bidirectionalparallel port will permit the data to be transfered through theparallel port nearly three times as fast.
The Linux and Freebsd quickcam libraires (that you can find atthe Third Party Drivers website) test to see if the parallel porta camera is attached to is bidirectional. You'll probably want toadd some code to print out whether the port was found to bebidirectional. If the libraries say that the port is notbidirectional but you're pretty sure it is, then it may be a BIOSsetup problem. Check your BIOS setup and see how the parallelport's mode is specified. In one case setting the mode to SPP(from ECP) allowed the port to run in bidirectional mode.
Connectix recommends using the EPP mode or the SPP bidirectionalmode. Users have reported problems with the ECP mode.
One quick note regarding ECP and EPP modes: the features of thesemodes are a superset of the features provided by bidirectionalSPP ports. ECP and EPP have the ability to use interrupts or aDMA channel to make I/O easier on the CPU. However, Connectixchose a proprietary pinout that isn't compliant with either ECPor EPP, so drivers must use the standard bidirectional style oftransfer.
1.5. Can I connect the Quickcam to a XYZ computer?
If you are trying to connect a QC to a non-Apple and non-Intelplatform, check section 1.3. first for some basic information.
If your computer has a RS422 serial port (some Unix machines do)or a serial port fast enough for the QC, get the Mac version andthe Mac programming specs. Consider yourself lucky: programmingis much easier with a serial device.
If your computer has a fully PC compatible 25-pin parallel port,the PC version might work. Consider yourself lucky if yourhardware allows bi-directional transfers . However, you need tobe able to control every single data pin of that parallel port,which might not be easy with your platform. Not all resellers ofUnix workstations have the low level programming specs of theirparallel hardware available...
As I write this, I know of only two non-Apple/Intel drivers:
1) John Bashinski has written a driver for Sun SparcStationsrunning Solaris: ftp://ftp-eng.cisco.com/s2qcam.
2) The cqcam driver, originally for Linux/x86 also works withLinux/Alpha on Alpha-PC hardware and Linux/ARM on the Netwinder.Look at http://www.cs.duke.edu/~reynolds/cqcam/.
Other Linux/x86 drivers may work on Alpha hardware, also.
1.6. Oddities of the serial Quickcam
With my earlier comments, some developers felt encouraged to tryand connect the serial (Macintosh) version of the QC to their PC.But it seems that my comments were more harm than good.
While it's certainly true that writing software for a serialdevice is easier than for one connected to the parallel port,people are still having trouble with the serial QC.
I should make clear that currently, there is no third-partyserial driver available. If you want to try, you will dopioneer's work. I also have to admit that all my earlier commentswere just things I made up reading the serial specs of the QC.
First of all, the serial technical specs are rather poor comparedto the document describing the parallel version of the camera.Or, as Roy M. Lovejoy III () notes:"The FAQ was QUITE mistaken when it said that serial is mucheasier... The Tech notes for the serial cam are a hair less thanworthless."
Jonathan Laventhol () adds some furthertechnical oddments of the serial Quickcam:
"You say (section 1.3) that it uses 918 kbs. This looksunlikely - but possible. Apple's documentation (TechnicalIntroduction to the Macintosh Family, 2nd ed.) says, p154, that'both ports can be operated up to about 256 kilobaud using theinternal clock generator, or somewhat faster using an externallysupplied clock. [...] In most Macintosh models, the modem portcan use an incoming handshake line as a second external clocksource to support synchronous modems requiring separate receiveand transmit clocks.'"
"Your statement that Mac serial port can 'easily handle thatspeed' seems suspect: it would be right at the limit, accordingto the Apple doc just quoted. It also is rather a strangespeed."
[Note: Jonathan is right - the serial specs of the QC say:"the minimun data clock rate from the camera is 918 kbps...a nonsymetric, bipolar clock output is generated by the camera tosupply the external clock input required by the computer tosupport this rate..."]
1.7. Can I connect more than one camera to one Mac/PC?
Yes, if you have the sufficient number of ports or a port switch.
The Connectix Windows software "QuickPict" supportsusing more than one camera, although only the active applicationpolls the image stream and the others show a still image.
1.8. Can I connect the Quickcam to a network? (Web-Cam)
There are different approaches.
First, you can turn your computer to a camera server. There are alot of different solutions out there for exactly this kind ofthing, software, drivers and scripts for all kinds of operationsystems.
For still images, you should check the long list of Third Partydrivers at http://www.crynwr.com/qcpc/. Most people areinterested in drivers for the various unix flavours, (e. g.Linux, FreeBSD) - you'll find it here!
If you want to see moving images over the net, a videoconferencing software is on your shopping list. Connectix sellsit's own, but I'd recommend CuSeeMe. It is available for manyplatforms and it's shareware. Check http://www.cu-seeme.com.
There is a Linux program, Q-SeeMe, that speaks the CuSeeMeprotocols. It works by capturing an X window, so an X Quickcamdriver such as xcqcam or xqcam is required. See
http://www.pangea.org/~mavilar/qseeme/qseeme.html
The nv and vic programs also work with the Quickcam. Pointers tothese programs, hacked versions, and patches, can all be found at
http://www.cs.duke.edu/~reynolds/quickcam/#vc
If you do not have a computer to spare and all you want is aplain simple Web-Cam, you can also buy a box that connects yourcamera on one side and the LAN on the other. There is acommercial product out there called "Network Eye" andyou can find more information at http://microplex.com/ne.html.
2. Home repairs and extra fun with the Quickcam hardware
You can do a few foolish things with your QC, but maybe thissection is also helpful if you hear a strange noise from withinyour camera after it fell down once too often.
2.1. The infrared filter / night vision
The QC has a tendency to follow earth's gravitational field. Inother words, it falls down pretty often. One of the first thingsto break off is the internal infrared filter (if it's loose,you'll hear it rattling when you shake the camera ball). I cannotunderstand why Connectix used only three drops of glue to attachthe filter - a very cheap flaw in an otherwise good design.
You can have it repaired and wait a few weeks until the technicalsupport sends your camera back, or you can repair it yourself (atyour own risk, of course). Check the section below for that.
Some people even want to have the IR filter removed. According toConnectix's specs, the QC's CCD chip is so sensitive to infraredlight, that after removing the IR filter, a room lit by the lightof a TV remote control can be seen perfectly through the eye ofthe QC. So if you are interested in night vision, you might wantto remove the IR filter intentionally.
Michiel de Rond has done this with the Color Quickcam, you cansee some interesting images onhttp://www.rcd-net.com/infrared/index.html.
2.2. The lens / video-microspope
The B&W QC has a "fixed-focus" lens. If you want torefocus it (e.g. to make images of very close objects), you willhave to open the camera ball. Since you have to set the focusmanually, this is probably not the kind of thing you want to dovery often.
The color camera's lens is not fixed-focus and can be refocusedusing the ring on the front of the camera.
2.3. Disassembling the B&W Quickcam ball
PLEASE NOTE that this is a very delicate procedure and that theQC was not designed to be opened by anyone else but by theConnectix technical support. If you follow these instructions,you will greatly reduce the danger of cracking your camera. Ifyour camera is broken after this procedure, don't blame or sue me- it worked perfectly for me. But even if it doesn't - you willprobably only break the exterior plastic shell and not theelectronics inside.
[Note by William Lewis (): "I'd just liketo mention that I've ripped my QuickCam apart a zillion times(the first time I didn't know about the paper-clip-in-the-pinholetrick; I think I was one of the first people to mention it here)and have broken off two of the three clips that hold the balltogether, but it stays together just fine by friction. So it'snot quite the end of the world if you're a little clumsy takingit apart. (I would recommend being careful about staticelectricity, though, on general principles.)"]
On the backside of the ball, there is a little hole behind asticker. Use a paper clip or a similar small metal stud to gentlypress in there until you feel resistance. That is the first lockclip. Push it gently forward until it unlocks (you'll hear alittle "click"). Don't push too hard or it will breakoff.
There are two other clips above and below the lens' opening. Tounlock these, you have to tear apart the two plastic caps of theball. This is the most dangerous part, so be very careful. (Ialmost broke one of the clips while doing this, luckily I hadsome glue to fill the crack.)
You will now get the interiour parts of the camera ball: thecircuit board, the plastic box that covers the CCD chip, thatcontains the infrared filter and that holds the lens.
You can refocus the lens (B&W camera only) after loosening asmall screw - see the section above.
You can also remove (or repair) the infrared filter. It is insidethe plastic cover box, so you have to take it off the circuitboard after loosening two small screws. The filter is attachedonly by a few drops of glue, so that it comes off pretty easy ifthe QC falls down.
If everything went smoothly, you can reassemble the QC with novisual trace of the opening process. Before you do that, checkthe three clips and all other plastic parts for any cracks.
3. Writing software for the Quickcam
If you want to write software for Apple's MacOS or Microsoft'sWindows 3.1x, Windows 95, and Windows NT, you're lucky: the QCcomes with drivers that make the camera a "video-indevice" to the operating system. You do not need to hasslewith the QC's internal structure. Refer to your operatingsystem's programming specs to find out how to handle such a videoinput device.
3.1. Connectix official developer support
Connectix's Quickcam developer support program was discontinuedwhen Logitech bought the rights to the Quickcam.
3.2. Is there a driver available for the XYZ operatingsystem (e.g. Linux)?
To find drivers for plain DOS, Linux, FreeBSD and many otherplatforms, check the Third Party Drivers list onhttp://www.cs.duke.edu/~reynolds/quickcam/.
There is a FTP archive available atftp://ftp.cs.unm.edu/pub/chris/quickcam/.
If your OS isn't there, you need to get the programming specsfrom Connectix and lock yourself in your office for a few days.Some of the sources for existing drivers is portable; porting aworking Linux driver is probably easier than writing one fromscratch. If you wish to announce a driver for your OS, pleasejoin the mailing list; information regarding the mailing list canbe found at http://www.crynwr.com/qcpc/.
3.3. The low-level programming specs
Connectix used to hand out their low-level specs with anon-disclosure agreement. This meant that source code writtenfollowing their specs was not allowed to be freely available. Butthat's exactly what you need for a project like Linux or FreeBSD.
A few brave people started re-engineering the QC to find out ontheir own. (That way, you are not bound by the NDA.) The firstindependent drivers were based on the information gathered bythat project.
Connectix made low-level specifications available for the B&WQuickcam and Color Quickcam, but Logitech removed these documentsand has not made specifications available for any newerQuickcams. For programming information for older cameras, examinethe source for any of the readily available Linux Quickcamdrivers, or contact the Quickcam third-party developers list.
3.4. What mistakes exist in the specs?
There exists an errata page for the PC grayscale spec, version1.11.It gives corrections for two graphs in section 4.2.1.1 and4.2.1.2 and for two equations. If you got the current version ofthe grayscale specs, you also have this page at the end of yourdocument.
Currently, these mistakes are known for the PC Grayscale spec,version 1.3, Sept 24, 1996:
page 31, section 4.3.3.8 correct info is:
in 6-bit mode, 0x00 is white and 0x3f is black
in 4-bit mode, 0x00 is black, 0x01 is white and 0x02 through 0x0fare a smooth gradient from almost white to almost black
4. Troubleshooting
The obvious answer to many questions is: Did you read theDocumentation that came with your software? Sometimes it's wiseto actually read the README and/or INSTALL files. Some of thesoftware even has man pages.
4.1. How to make my PC's parallel port bidirectional?
If you have a very old computer, chances are that you can't. Someolder models only support unidirectional parallel transfers.Maybe you want to buy an additional printer port card (availablefor $20 or less) and plug it in of your PC's extension slots.
If your PC is not a stone-aged model, use your PC's BIOS setup toset the parallel port to EPP mode. This worked for most users,though some reported problems. SPP should work, too.
Check section 1.4. for details.
4.2. Linux Autoprobing: Sometimes, the driver finds thecamera, sometimes not.
Don't always autoprobe. Let me explain why.
The autoprobe code used by the Linux drivers is not using themethod recommended by Connectix. The Connectix method can mess upa printer that is attached to your parallel port, so the authorchose a more "polite" method that will try to find yourcamera without barking at the printer. [ note: This is not thecase for all drivers. Some of the color QC drivers useConnectix's method, at least by default. ]
Autoprobe was only made to make the first steps easier for you,the user. So that you do not have to check all the hardware portaddresses of your parallel connectors, the autoprobe code willcheck all of them and try to find the camera. Then it tells youat which address the camera was found. Once it is found, you canwrite this port address into your qcam configuration file. Thedriver will skip autoprobe and use this address right away. Readthe README file for details.
Here are some details by Sean Foderaro ():
"You have to first understand how the Quickcam works. Fromthe moment the camera is powered on, it cycles between 'picturemode' and 'command mode'. In 'picture mode' the Quickcam measuresthe light falling on the CCD. Then it copies that picture to itsmemory and enters 'command mode' where it awaits a command fromthe PC (such as one to copy the image to the PC). Command modeends when the Quickcam determines that the last image saved isbeginning to fade from its memory at which point to goes back topicture mode.
While in picture mode the Quickcam periodically toggles statusbits readable by the PC. This is to let the PC know that theQuickcam is still alive. It is these status bits being toggledthat tells the autoprobing software that a quickcam is attachedto a particular parallel port.
The problem with detecting a camera this way is that the durationof picture mode depends on the last brightness setting given thecamera (or some random value when the camera is turned on). Ifthe camera stays in picture mode too short a time then theautoprobing code may never see the toggling bits and may notrealize there is quickcam attached."
4.3. There is that rattling noise in my QC ball. What'swrong?
Uh-oh. There should be NO noise at all when shaking the QC ball.
If there is however, this does not really mean trouble. Most ofthe times, it's just the infrared filter inside that got loose.It's relatively easy to repair this at home (check section 2.).Be aware that you lose any warranty when doing home repairs.
5. About this text
This is a proposal. Its first draft version was written by HannoMueller of Kabel New Media, Hamburg, Germany. Hanno quietly quitmaintaining the document, and so Patrick Reynolds has released anupdated version and resumed maintenance.
The following people added valuable information. Thanks to...
Sean Foderaro () for parallel porthardware descriptions (1.4.) and for a buglist of the grayscalespecs (3.5.).
Paul Fox () for helping me [Hanno] withmy English
Charles Henrich () for further corrections
William Lewis () for additional hardwarespecific information
Roy M. Lovejoy III () for a helpfulcomplaint
Chris Snell () for setting up the Third PartyDrivers FTP site
I'd be more than happy to hear your opinion and to include youradditions about this text. Please e-mail to .