When dealing with multiple instances of the same or similar peripheral device it is, to say the least, a minor problem not being able to differentiate the devices by name. Manufacturers don’t really give distinct names to their devices, instead making us rely upon the GUID or not running multiple similar devices. Not great when we do need multiple similar devices such as webcams but this is not an insurmountable problem.
For one of my current projects I need to have an easy way to tell one webcam from another when I connect it to my computer. These new names are also something we can reference within an application or service in order to pick out which camera we should be using for a given purpose, should the need arise. In my case the reason behind this task was that each configured camera represented a human eye and needed to be placed on the left or right side of a rig that I had constructed. This is an interesting project/story that goes along with this but more about that in another post.
When looking within the Windows Device Manager this is what we see when we have two of the same brand of cameras connected: both of the cameras are named “Logitech HD Webcam 310.”
Changing these webcam names so that we can more easily see what the purpose of each camera by name when it is connected was actually much simpler than I thought it would be.There were two very helpful online tutorials that walked me through the process successfully.
The first tutorial dealt specifically with accomplishing the task. It goes through just about all of the steps needed to change the names of the devices. Click here for How to Change Device Names Within Device Manager.
The second article that I referenced walked me through changing the permissions on registry keys within RegEdit, an important part of the process, but not present in the first article pertaining to Windows 8. WARNING: This is not something that you would want to do for any Registry Keys that you don’t already know their purpose, as changing permissions on the wrong keys will open up your system to vulnerabilities. You should also only do this for the specific key that you wish to alter and not for all keys within a hierarchy. That’s about the best warning I can give not to do this but click here for the Guide to How to Take Ownership/Permission of a Registry Key in Windows.
What this allows us to do is to go from this being the Friendly Name: @oem59.inf,%PID_081B_DD%;Logitech HD Webcam C310
To this being the Friendly Name: Left Eye Logitech HD Webcam C310
Going back to the Windows Device Manager we caeasilyeasily differentiate the webcams, and also derive purpose from the new names of the webcams.
Now naming these cameras “Left” and “Right” is merely my convention. I could have just as easily named one Bert and the other Ernie, but the important thing is for me to be able to plug the camera in and know which camera it is without having to alter the camera (or make any marks on it).
So, really, what does this buy us?
Take a look at the first screenshot of what the Device Manager looked like prior to the name change. In my use case there are a total of four webcams connected to the Microsoft Surface. Two internal webcams (rear and front facing cameras built into the device) and two that are connected via USB. Knowing which webcams I am speaking with and being able to identify it by name is very important, and it also saves me from having to program a way around not knowing what webcam was giving me input.
Programming aside, this also winds up making for less trial and error when selecting a default webcam within an application. Skype and many video other chat applications offer camera selection. Being to identify the camera by name just makes sense as being something the user should be able to do easily.
It’s worth mentioning that even the two Microsoft webcams have descriptive names (Front and Back) so that when a user is picking from the two it will be very apparent which will suit their need. This just makes good sense from a User Experience standpoint and I am a bit puzzled as to why the device manufacturer nor the OS handle this in a way that would make this simpler for a user.
It’s also worth mentioning that this change does not effect the webcams themselves, and these name changes only exist on the computer you are making them. Plugging these webcams into another computer will still show the original names for these devices.
I posted a Tweet asking where to send this as a feature request and really would like to see this feature making it into a future version of Windows. But for now this gets me past a minor hurdle and further into doing some pretty cool things.