Driver Disaster

Why USB ports changed the world for the better, or what I learned from a futile month of trying to get a 25-year-old webcam working on a modern PC.

Today in Tedium: With apologies to speedy processors and thinner screens, the Universal Serial Bus may be the most important invention in modern technology. It took a complicated, esoteric process—adding external devices to a computer—and largely made it trivial. It shrank the size of the average port and made the addition of new hardware actually fairly painless. It may be more responsible than any other connector for enabling the mobile revolution. And while we’re living life in dongle-vision with the move to USB-C, on balance, that port has been something of a godsend. Because, let me tell you, what we had before sucked. I gained some first-hand experience with this pre-USB world recently, and it makes me realize how far we’ve really come. Today’s Tedium plugs and plays into the bad old days of hardware peripheral installation. — Ernie @ Tedium

Today’s GIF comes from a Connectix Christmas video from 1994, the year they released the Quickcam. By the way, this issue is sponsored by Lemonade. More from them in a few.

“The PC industry has evolved ad hoc. We were always adding one more piece of baggage.”

— James L. Pappas, Intel’s current director of technology initiatives, discussing the Universal Serial Bus in a 1995 New York Times article. Pappas noted that the port discussion evolved from the creation of a new telecom port, which was seen as unworkable because it just added a new kind of port to an already port-laden computing interface, to the creation of a port that could handle any kind of device thrown at it. It was not the first simple desktop port system—for example, the Apple Desktop Bus, designed by Steve Wozniak, had many of the advantages of USB a decade earlier, though it was much slower than USB and not hot-swappable.

The 1994 Connectix Quickcam that was the bane of my existence for about a month.

Why I spent a month trying to install a webcam in vain

As I said when I bought my Xeon experimentation station, one of my primary reasons for doing so was because I wanted to test the waters of virtualization. As much fun as it is to travel through a warehouse of vintage computing goodies, the fact is that most people are going to be reliving old technology through new machines.

But, usually, they do this through software, not hardware. Emulation has become an important way to keep the ideas of computing alive, if not the actual equipment, which creaks and cracks and often needs to be treated with tender loving care.

USB, having largely remained a consistent specification for more than 20 years, makes life a little easier on this front. I recently plugged in a USB-based preamp that I bought when I was in college, and even though the software did not install on the Xeon, MacOS detected it right away, meaning I can use it to record my horrible bedroom folk for hours on end. (Likewise, I recently bought an old iPod, and wouldn’t you know it? It worked!)

But before that? Well, things get complicated.

I will admit, starting off, that I was trying to do something that was a little out of the norm. Nudged by a pal of mine, I bought the original PC version of the Connectix Quickcam, which was originally designed for Windows 3.1 and released in 1994. (A Mac version, using the Apple Desktop Bus, came out first.) This was the first commercial webcam, effectively the idea that launched a million YouTubers, but my device was very limited. It only supports 16 layers of grayscale, and even then, only in 320x240 resolution. And while it could do video, it was limited to an extremely slow 15 frames per second. It was an extremely limited proof of concept, but a successful one—it sold 500,000 units in a three-year period between the PC and Mac versions.

In 2010, Time called it one of the 100 greatest gadgets of all time. It was sold for more than a decade, and set the stage for its eventual owner, Logitech, to sell a whole line of webcams. The lineage between that little camera and the multiple cameras you have on your smartphone is obvious.

Now, I’m not the first person to write about this device or cover it—David Murray, a.k.a. The 8-Bit Guy, did a great video about it four years ago, where he successfully used it to shoot videos and even created “color” images using a physical filtering technique. But my goal was a little weirder than Murray’s. He plugged his into an era-specific laptop. I was trying to get mine working with a modern PC by any means possible, though leaning on virtualization.

I waited quite a while for an original Connectix Quickcam to appear online. Eventually, I found one, along with a PCIe-based parallel port that specifically touted its compatibility with Linux. (As a Hackintosh guy, I should tell you that PC-style parallel ports were never a thing in the world of Macs; PC and Mac peripherals only became easily compatible thanks to USB and Firewire.)

The camera shipped my way within a few days, and um, the quality was a bit lacking. I was warned that it came from a smoker’s house, and evidence is strong that the prior owner might have been Joe Camel himself. It took a little while to get the scent out. (Beggars can’t be choosers!)

Eventually, I did, but the path forward still wasn’t easy.

“You know, I want to tell you something. This to me—and I’ve heard a lot of stuff about the internet, a lot of yadda, yadda, yadda, about the internet, and I don’t care about the internet—this, to me, is like the perfect idea for the internet. Don’t you think?”

— David Letterman, in a 1998 interview with Jennifer Ringley, the creator of the popular Jennicam, which was one of the first attempts at lifecasting. (It, famously, relied on a number of Quickcam devices, which would periodically update.) Ringley, as highlighted by the fact that she was doing an interview with Letterman, became very famous for using the Quickcam for simply streaming her life. In a 2014 episode of Reply All (well before that podcast became a massive hit), she explained the highs and lows of living a life online in this way. (Long story short: She’s not really on social media at all, so she’s no longer extremely online like she once was.) But she added that an unexpected high point came when someone sent her a message finding solace in the fact that Ringley was doing laundry on a Saturday night—just like they were. “I’m glad to hear that I somehow gave somebody permission to just be themselves,” she stated.

I saw this screen a whole lot.

The technique I tried (and failed) to use to get the Quickcam to show up

Now, before I hop in, a quick explanation of virtualization. The concept of running a virtual machine, which basically substitutes actual hardware for a software-base equivalent, has been around for decades, used in all sorts of places, such as the early Zork text-based adventures. In a lot of ways, virtualization is sort of a sibling to emulation—with the difference being that, rather than reprogramming everything in software, it actually uses the machine’s real hardware to run everything.

A lot of work has been done on virtualization in recent years. One such tool, called QEMU, has made it possible to run operating systems at high speeds on modern hardware, particularly on Linux, where the rise of kernel-based virtual machines, or KVMs, has basically made it possible to run modern operating systems at almost full speed, while passing through components such as USB ports, peripherals, even graphics cards. With the right rig, you can push an Nvidia or AMD card to a virtual machine, rather than the host, and run it natively.

This is something I wanted to try out with the Xeon, and I’ve had some success getting MacOS to work in this way. (The Passthrough Post, a website dedicated to Linux-based virtualization, has put up a guide explaining how to do it.) But I wanted to take it a step further and get the Connectix Quickcam to install in an old version of Windows through this passthrough strategy.

Admittedly, I had no idea if it would work, but I knew I had to give it a shot, because I write Tedium and Tedium is about stuff like this.

The good news is that the passthrough approach worked—the hardware was detected without an issue. The bad news is that the camera did not, after many painful attempts.

Virtualization is not an easy technology to cozy up to for folks who aren’t sysadmins. While there are apps such as VirtualBox or VMware Fusion that can adeptly load operating systems, KVM is generally considered ahead of these tools on things like passing through hardware—but it’s also much more technical, which means you’re often stuck loading drivers from scratch. (As this is something of a generalist newsletter, I’ll leave out some of the more painful details, like editing virsh config files.)

I tried to cover every base I could possibly think of. I went on old websites to attempt to download old Linux programs that were written to support the Quickcam, only to find that the software would not install on modern versions of Linux without a whole bunch of tweaking, because it had been written for a 20-year-old version of the Linux kernel.

So it became clear that using Windows was the best option. Getting a hold of the operating systems themselves was trivial—the site WinWorld has hosted OS abandonware for years, with the most recent version hosted being Windows 2000. There were complications with running these operating systems on VMs due in large part to their age—including drivers, which needed to be added manually. Obscure errors would prevent some operating systems, like Windows NT 4.0, from running entirely on my virtual machine, with errors preventing them from installing or even booting. (I tried multiple versions of NT 4, and got different results every time!) Other operating systems, like Windows 98, were so unstable as to be unusable—which is honestly how I remember it back in 1998.

I would say that only starting with Windows XP, which I downloaded from the Internet Archive, was I able to find a version of Windows with a level of consistency to make it worth regularly using—not that I would recommend using XP in 2019. The problem is, there were no QuickCam drivers for XP, so it wasn’t very useful to use that, despite the fact it gave me access to (relatively) recent web browsers from which to download drivers.

I did find something of a sweet spot in Windows 2000. It was relatively stable (though prone to malware, such as the infamous Code Red worm), and I was able to get graphics and networking drivers installed relatively easily, which I couldn’t say the same about for Windows 98 or NT 4.

There’s a lot I could say here, but the long story short is this: I could not get the webcam to work after a month of off-and-on experimenting, though the parallel port did successfully pass through and was correctly detected, which is something of a half-victory—especially since the minimum supported version of Windows the card officially supported was Windows XP. I even went so far as to try ReactOS, an open-source remake of Windows, to no avail.

I had better luck with the Logitech Quickcam VC than the original. But not by much.

Eventually, just to hedge my bets on the off-chance there was a hardware problem, I did get another Connectix Quickcam, the Quickcam VC, which was the last model of the device that had an option for a parallel interface. (Thankfully, the world was moving to USB.)

This is about the closest I got.

I had slightly better luck with the Quickcam VC, which was quickly detected by most of the operating systems I tried (no luck with ReactOS, however). However, it ran into issues with the printer port—basically, it would recognize the camera was plugged in, and accept the necessary drivers for it that I downloaded from a sketchy looking site on the internet, but getting it to go any further than that was totally futile.

As a final step to say I had covered every track, I installed a version of Windows onto a drive in my machine, rather than as a virtual image. (Fun fact: I had to disable every other hard drive and SSD in the computer to get it to work!) And it turned out that all the issues I had with my frustrating experiment were basically the same on a bare-metal version of Windows 10. Yes, it even correctly detected the Quickcam VC. (Not that it could actually do anything with it!)

But hey, at least they look good in selfies—as props.

Get renters insurance starting at $5/month

  • Protect your laptop, phone, and other stuff wherever you go

  • Sign up and make claims in seconds

  • Insurance written in plain English

  • Don’t end up making claims? Awesome! That money will go to a charity of your choice

Check Your Prices with Lemonade

The Quickcam VC, parallel port version. It was also sold in USB variants.

How the Quickcam highlights just how important USB really was

Now, to be clear, I am not the first person in history to have problems with the parallel port, one of the most frustrating in the history of computing. During the 1990s, there was a small colony of IT people who would complain about installing printers, because it was a deadly combination of mission-critical (you can’t run a business without paper, and printers controlled paper) and supremely annoying (IRQ ports are the devil!). I’m sure that social clubs were built around people who complained about how much they hated installing printers.

By the time the Quickcam came about, it was clear the parallel port was on its way out. The fact it was even being used by the Quickcam at all was kind of a kludge. See, the version of the Quickcam for the Apple Macintosh used a serial port, which could both power the device and deliver data at decent speeds. But the PC of the mid-1990s didn’t have a single port well-suited to something that had to move around a lot of data and power a device at the same time—which is why the Quickcam not only had a parallel port cable, but also a PS/2 keyboard cable for plugging the device in.

In fact, despite their physical similarities, the Mac and PC versions of the Quickcam were vastly different technically. Per a technical FAQ of the era:

Many people ask if they can connect their QC to the serial port of their IBM PC, using a parallel-to-serial converter or using the Mac version of the camera.

This is not possible, due to restrictions of the PC’s serial hardware.

Why? The QC was originally designed as a serial device and was first built for the Mac. It needs (according to Connectix’s Mac programming specs) a speed of 918 kbps. The Macintosh’s RS422 serial ports can easily handle this speed. The early PC’s RS232 serial 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.

So, to be clear, the PC serial port is only able to get 12.5 percent of the throughput of the Mac serial port. The parallel port, at a maximum speed of 2.5 megabits per second, is faster, but it struggles to handle “bidirectional” communication, allowing for information to be shared both ways. Parallel ports, of which is generally only one on a computer, doesn’t really handle “daisy chaining” particularly well, either, so good luck trying to get it to play nice with a printer or Zip drive.

“Some of these ports required their own dedicated expansion cards, they all took up a bunch of space, and they were often fussy when it came time to configure or troubleshoot them,” a 2014 Ars Technica piece on USB-A (and how relatively minor the upside-down port problem is compared to what came before) explained.

But at the time of its release, there was an obvious need for more capable ports. USB was a great choice that hit the sweet spot of price and performance. It could handle printers; it could handle webcams; it was about 100 times faster than a parallel port, even in its relatively pokey USB 1.0 variant; and it handled plug and play components like a champ. Plus, it had the useful side effect of making pretty much every mainstream piece of external hardware released since the turn of the 21st century much more manageable than its predecessors.

There are still niche uses for RS-232 serial ports, as well as parallel ports and other PC ports of the era (the COM port used with modems; the game port used with game controllers and MIDI devices), of course, but could you imagine yourself using one just to use a device with your home computer? In 2019?

It’s really, really hard, and I think that’s a testament to just how much better USB was than what came before.

Are there things I could do from here? Sure. I haven’t traveled the path of setting up virtual images with old versions of Linux that might be more compatible with hardware from 1999, though it’s probably a road I could travel if I wanted to pursue this further.

There are more versions of Windows I could test—along with other variants, such as OS/2. And there’s always the option of trying different hardware—say, a parallel port to USB adapter—and seeing if I have any better luck with that.

And, of course, I could always get a hold of a laptop from 1995 and see if it gives me any better luck.

I spent a month trying to install a Quickcam and all I got was this selfie.

But in a way, I almost feel at peace with the fact that these vintage pieces of hardware, which I had no confidence in actually working with a modern computer in the first place, proved too difficult to get working after all this time. It was an ambitious ask I had, the kind of ask a lot of people probably wouldn’t pursue, and that it didn’t work out in the end merely highlights the value of the adventure. When dealing with computer hardware this old, that’s what I have to keep reminding myself.

There are folks more technically adept than I that have done very ambitious things with the Quickcam. This guy got it working with an Apple II! These devices are pretty brilliant. It’s just too bad that their hardware was held back (at first) by a cruddy PC port situation.

So, I hate to break it to you guys, but I will not be turning Tedium into the next Jennicam. But then again, it’s not exactly like that’s particularly unique these days anyway.

--

Find this one interesting? Share it with a pal! And thanks again to our sponsor Lemonade.