CARDSPEED - Card Readers and Memory Cards

How To Identify Your USB Card Reader

All USB card readers will provide an ID holding information about the Manufacturer or Vendor (Vendor ID: VID), the reader itself (Product ID: PID), and some version information. In many cases, this is the ID of the controller chip used. Only some large companies use their own IDs to hide the origin of "their" products.

What's the use of this ID?

Well, the performance of a card reader is mainly influenced by the controller chip used. Some controller manufacturers use different firmware for the same controller, which can influence performance and compatibility. Sometimes the firmware is stored in ROM, which means that the controller simply gets the latest firmware available at the date of manufacturing. If the firmware is stored in either internal or external flash memory, and the manufacturer decides to publish the uploader software and the firmware binaries, then the firmware can be updated by the end user.

For Mac OS, see the instructions below.

How to get the IDs with Windows XP

The easy and comfortable way is to download and run   >>>  usbid.exe  <<<   (52kB). This is a Win32 Console Application that will read the IDs from the Windows Registry.

Because there was a complaint that the tool would not work, but open and close a small black window instead, the current version will wait for a keystroke. Therefore, it can simply be started from the Windows environment. I even added a nice 32x32 and a not so nice 16x16 pixel icon. But beware, you still have to figure out how to copy the output to the clipboard, if you want to share the information: If you did not activate the Quick Edit Mode yet, you have to right-click the Title Bar and select "Edit - Mark". Then you can select a certain text area with the left button and confirm the selection with the right button.

If you start the tool from the Command Prompt (a.k.a. DOS Box), you can specify a dummy parameter to bypass the confirmation keystroke. The surrounding text is written to stderr, the data is written to stdout. Specifying "usbid x 1>usbid.log", for example, will write only the data to the logfile.

Getting the IDs Manually

The hard and adventurous way is to get the IDs from the Registry and the Drive Properties.

How To Get The USB ID

Getting the USB ID is actually simple, you just have to run "regedit.exe". Then navigate to the key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Enum

Regedit USBSTOR Key

There should be one REG_SZ value named "0", as shown above. If there are numerical value names other than zero, then you have more than one USB storage device connected and you have to find out the one for the card reader. The easiest way is to eject and unplug the card reader and watch the IDs (you might have to press F5 to refresh the display).

To get the content of the registry value, just double-click the respective entry, copy the value data to your clipboard, and press the 'Esc' key or hit the 'Cancel' button.

Registry Value Data

How To Get The Firmware Version

Usually, the firmware version can be looked up in the Computer Management Console. If you prefer to use regedit as well, see the note below. With the Computer Management Console, navigate to
Storage - Removable Storage - Libraries

Computer Management, Removable Storage

You should see one entry for each drive letter assigned to removable media. Open the properties window of one entry from its context menu (right-click) and choose the tab "Device Information".

Device Information

The "Revision" entry shows the firmware version of the controller. Usually, the same firmware level should be displayed for all drives of one reader. However, there are very few models that show individual version numbers for each drive. For some card readers, the Revision entry is blank.

Note: If you can't get the firmware ID from the Computer Management, you can check the disk entries in the registry. Navigate to the key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum
Similar to the USBSTOR\Enum entries, there will be the list of physical drives. Each drive letter of the card reader will show up as one drive. The values will start with "USBSTOR" and have "Rev_xxxx\" in the middle, where xxxx represents the firmware level.

How to get the IDs with Mac OS

Thanks to Gerd M. Hofmann for locating the IDs with Mac OS and supplying the screenshot.

With Mac OS you can use the System Profiler to look up the USB IDs. Select "Hardware - USB" and locate the entry for your card reader in the USB Device Tree...

Mac OS System Profiler

The important values are Vendor ID, Product ID and Version.
In this case we are dealing with an smsc USB97C210 with firmware 2.16.

What To Do With The ID?

Those who followed a link from one of my Car Reader polls, please post the information as reply to the forum message.

You can look up vendor an product ID on my  Controller Overview  page. Then you can check whether I have tested a card reader with the same controller on my  Card Readers Overview . If there is no card reader listed, you can check the  Card Readers Reference  if the information has already been submitted.


Hans-Jürgen Reggel   ·   http://www.hjreggel.net/cardspeed/   ·   2006-05-03 ~ 2007-05-16