How to be sure that the SpringCard PC/SC driver is installed on Windows?

Since all SpringCard USB PC/SC couplers comply with the USB CCID specification, they are supported by the generic CCID driver supplied by Microsoft as a part of the Windows operating system. As a consequence, when connecting a SpringCard PC/SC coupler to a computer for the first time, this coupler is associated to the generic "Microsoft Usbccid Smartcard Reader (WUDF)" driver by default.

This is a problem for many users, since this generic driver has many limitations that make it un-suitable for most of the use cases.

In this article, we'll expose its 3 most obvious limitations, and expose the 2 different methods to installing the right driver.

The 3 issues with MS' generic CCID driver

Issue 1: not exposing the right reader names

Winscard's SCardListReaders function is responsible for returning the names of all PC/SC readers connected to the system.

When MS' generic CCID driver is used, the name of any SpringCard PC/SC coupler is only "SpringCard CCID" plus a number (see below a snapshot of PCSCDiag2 showing the issue).

PCSCDiag2 showing one reader named "SpringCard CCID 0", where the same reader would be named "SpringCard Prox'N'Roll Contactless 0" if SpringCard's CCID driver were used.

This may sound as a small detail, but this is a real annoyance to the end-user who is expecting a clear identification of the actual device he is working on.

Once SpringCard's CCID driver is installed, the reader names follow a clear rule: "SpringCard <Product Name> <Slot Name>" plus the number (for instance, "SpringCard Prox'N'Roll Contactless", "SpringCard CrazyWriter SAM A", ...).

This also makes it possible for an application developer to automatically (pre)select the right reader when the system has many, typically by looking for the "Contactless" string to locate NFC/RFID readers, or for the "Contact" or "SAM" strings to locate smart card readers.

Issue 2: not supporting multi-slot devices

The second problem is critical and prevent any PC/SC coupler that features more than one slot. This is namely the case for Puck One (2 slots: Contactless and SIM/SAM) and CrazyWriter (2, 3 or 5 slots: Contactless, ID-1/Contact and 1 or 3 SIM/SAM).

MS' generic CCID driver does support single-slot readers only and doesn't even show the other slots the device may have.

PCSCDiag2 showing only one reader, where the connected device is a SpringCard Puck One that features 2 slots.
Once the system has been set-up to associate SpringCard's CCID driver to the Puck One instead of MS's generic driver, PCSCDiag2 shows its 2 slots "SpringCard Puck Contactless 0" and "SpringCard Puck SAM 0".

Issue 3: SCardControl is not allowed

This third problem is not critical in most situations, but may prevent some applications to operate correctly.

The point is, MS' generic CCID driver forbids sending direct commands to the reader. In other words, it doesn't allow invoking the SCardControl function.

This is a critical issue if the application expects to control the reader's UI (driving the LEDs or the buzzer directly) or to use any advanced feature of the device (such as PUCK's internal secure elements).

SCardControl always returns error 1 (Incorrect function) with MS' generic CCID driver.
With SpringCard's CCID driver, the SCardControl commands are always allowed.

NB: using SCardControl with MS' generic CCID driver is disabled by default, but could be activated by writing a setting in the registry. Search string EscapeCommandEnable in this article for details.

Installing SpringCard PC/SC Driver for USB couplers

Solution 1: download and install SpringCard SD16055 package

SpringCard SD16055 is the setup package that installs the SpringCard USB PC/SC driver for Windows.

To download it,

  • Go to https://www.springcard.com/en/download/
  • In the right Filter list, select Drivers
  • Click the Filter button,
  • Find Windows PC/SC Driver for USB couplers / sd16055 in the list and download the current version.
Snapshot of the download page on www.springcard.com

Alternatively, you may use this direct link:

The double-click the downloaded .EXE file to run the installer

NB: you need an accound with administrative priviledges to do so.

SpringCard USB PC/SC driver comes with USBList and PCSCDiag2, two lightweight and useful applications to validate your installation and start working with smart cards directly.

If you have a SpringCard PC/SC coupler connected to the computer, the new driver is activated immediately during the execution of the setup wizard.

Troubleshooting

If the correct driver is not activated immediately for any reason, open the Device Manager, navigate to the device and launch the driver update procedure (see detailed steps in paragraph Install SpringCard's driver through Windows Update below).

  • When the screen How do you want to search for drivers? shows, select Browse my computer for driver.

  • Click Let me pick from a list of available drivers on my computer
  • In the Model box, select the driver provided by SpringCard instead of the ones provided by Microsoft and click Next.

NB: the actual names shown in the Model box depends on the device. This would be SpringCard H663 for Prox'N'Roll, CrazyWriter, etc, and SpringCard SpringCore for Puck, SpringPark, etc.

  • Restart the system if the Update Drivers wizard prompts to do so.

Important recommendation

Installing SpringCard SD16055 before connecting a SpringCard PC/SC coupler to the computer for the first time is the best approach!

In a corporate environment, deploying the SD16055 package on all the computers that are likely to have a PC/SC reader provides the best experience to the end-user - and frees the IT staff from the burden of installing the driver manually afterwards.

The SD16055 setup .EXE is suitable for unattended installations. Launch it with the /H flag on the command line to explore the options and don't hesitate to contact SpringCard Support should you need our assistance to automate a wide-range deployment.

Solution 2: install SpringCard's driver through Windows Update

SpringCard USB PC/SC driver for Windows is available on Windows Update and could be installed automatically through this channel.

To do so, launch the Device Manager either from the Start Menu or by entering "Device Manager" in Windows' Search Bar.

NB: you need an accound with administrative priviledges to do so.

  • Locate the Smart card readers group in the list of connected devices and click-it to expand.
  • Confirm that your SpringCard device is currently associated to MS' generic CCID driver. The name is "Microsoft Usbccid Smartcard Reader (WUDF)" for Windows 10, and could be slightly different on a earlier versions of Windows.
  • Right-click this very device in the tree to open the pop-up menu
  • Click Update driver
  • Select Search automatically for drivers
  • Select Search for updated drivers in Windows Update

Windows opens the Windows Update part of the Control Panel.

  • If the search does not start automatically, click the Check for updates button
  • Wait a few minutes while your computer queries the Windows Update server
  • The package SpringCard - SmartCardReader should now be listed as ready for update.
  • Restart the system if Windows Update prompts to do so, or just while the system activates the new driver.

Once the right driver is installed, the device appears under the Smart card readers group of the Device Manager with its actual family name (either SpringCard H663 or SpringCard SpringCore).

Foot note

The above procedure shows how to force the execution of Windows Update, in order to replace MS' generic CCID driver by SpringCard's driver "right here, right now".

But on a typical setup, Windows Update also runs periodically, and installs automatically any relevant update. This means that even if you don't perform this procedure to install SpringCard's driver, it is likely to be installed anyway by the unattended updates after a few days or a few weeks.

Validate your installation

To verify the your computer is running the right PC/SC driver for USB CCID couplers, SpringCard PcscCheck is a fast an easy solution.

SpringCard PcscCheck is a portable application that works immediately after downloading from any location (no setup to run, no ZIP to extract).

The only dependency is the .NET 4.8 runtime, that is installed by default since Windows 10 v1903, and should have been installed through Windows Update over all today's systems.

Find the right version here:

If your computer is running the SpringCard USB PC/SC driver for Windows, PcscCheck shows the version of the driver (and raise a warning if a new version has been published).

PcscCheck also performs a few other verifications, that include testing the SCardTransmit function. Since SCardTransmit is not available unless there's a card in the reader, PcscCheck ends with warning "Some tests have not been run".

Now, insert a smart card in any of the SpringCard readers (this may be any supported NFC/RFID card in the Contactless slot, any ISO/IEC 7816 smart card in the Contact slot, or any ID-000 SIM/SAM smart card in one of the SAM slots).

Run the diagnostics again; PcscCheck now confirms that everything is fine.

If the device is still associated to MS' generic CCID driver

When a SpringCard PC/SC device is found and not associated to the right driver, PcscCheck issues a warning with message "You should install the PC/SC driver for SpringCard USB Couplers".

You'll find more information regarding PcscCheck and the warnings or errors it may report in this article.