When you buy a computer peripheral today – whether it be a webcam, gamepad or a keyboard, the expectation is that when you plug it in it will work without any manual configuration. Thanks to Plug-and-Play support in all of today’s operating systems, motherboards and devices, that is very much a reality. Having said that, the system is not perfect.
The problem lies with device drivers. The device drivers which ship with each operating system release is only what is available at the time, so it cannot support new hardware which has been released after that time. This means when you plug in the device, the system is not going to find a suitable driver or it’s going to end up becoming a generic device. I’m sure you too will be quite pissed when you just installed a $300 gaming keyboard and mouse, and it defaults as a generic USB keyboard and mouse.
Up to and until now, operating systems and hardware vendors have tackled this problem by the use of internet updating mechanisms which seek out new drivers when you plug in a device. This of course relies on vendors actually actively updating the drivers in this drivers pool which so far they’ve failed, but more importantly, it requires an active internet connection. The paradox of installing a new network adapter which requires a network connection to download a new driver is a good example where this fails.
Microsoft has just patented an idea that solves both of these problems with one stone. Patent application 20080071935, “Self-Installing Computer Peripherals” for those of you playing at home.
The idea involves adding a tiny bit of non-volatile flash memory right into the device. It would only need to be large enough to store with it the device driver and any additional software required to support the device. In addition, a USB hub needs to be built into the device so both the functionality and flash memory parts of the device can be accessed by the system.
When the device is manufactured, the vendor can write to the memory the latest available drivers for the device. When plugged in, the operating system will automatically install the necessary components from the flash memory to utilize this device.
What’s more, because the memory can be written as well as read, if new driver or software is available, it can be automatically updated onto the device as well. This means if the device is plugged into another computer, the driver always up-to-date.
This might not sound like much for experienced users who have no problems finding and installing new drivers, but it’s pretty common to find a large majority of user using outdated or generic drivers just because they’re not even aware of drivers let alone driver updates. I think this has huge implications for them.
Especially when it seems like almost every other week a new webcam or keyboard and mouse set is released, having the best possible experience without any driver scavenging will certainly increase user satisfaction and decrease technical support calls.
For now, this seems to be only applicable to USB devices. I’d imagine it might take just a little more effort to get this working on expansion devices such as optical drives, motherboards, graphics cards and sound cards where drivers play a more critical role in the success of failure of utilizing the device in the first run. That, would sure be a hit with pro users too.