Back
Documentation

Gemalto PC Twin Reader

Banking

Thales·USB

Overview

The Gemalto PC Twin Reader (now marketed under the Thales brand following the Gemalto acquisition) is a dual-slot contact smart card reader that has become the standard terminal reader in West African banking. It supports two independent card slots, ISO 7816 T=0/T=1 protocols, and communicates via USB CCID. Its EMV Level 1 certification and long track record in regulated financial environments make it a trusted choice for deployments that also need to handle banking or SIM cards alongside DREWQ identity verification.

Requirements

  • USB-A port (USB 2.0 or higher)
  • PC/SC daemon (pcscd on Linux/macOS, built-in on Windows 10+)
  • Python 3.9+ with pyscard
  • Card inserted into Slot 0 (the bottom slot) for DREWQ reading

Setup Guide

1

Connect the Reader

Steps
1

Plug the PC Twin Reader into a USB-A port using the supplied cable.

2

The reader has two slots: Slot 0 (bottom) and Slot 1 (top). Use Slot 0 for DREWQ.

3

The OS loads the CCID driver automatically; no Thales/Gemalto software is required.

4

The LED on the active slot illuminates when a card is inserted.

2

Configure PC/SC

Steps
1

macOS: `brew install pcsc-lite && brew services start pcsc-lite`

2

Ubuntu/Debian: `sudo apt-get install -y pcscd pcsc-tools && sudo systemctl enable --now pcscd`

3

Install pyscard: `pip install pyscard`

4

Note: the PC Twin Reader registers as TWO reader names in pcsc_scan — one per slot.

3

Verify Detection

Steps
1

Run `pcsc_scan` — you will see two entries: `Gemalto PC Twin Reader [CCID] 0 0` and `...0 1`.

2

The DREWQ API auto-selects the first reader with a card present.

3

Insert a card into Slot 0 and confirm `GET /card/status` returns `card_present: true`.

4

Python: `from smartcard.System import readers; print(readers())` should show both slots.

4

Test with the API

Steps
1

Start the server: `uvicorn main:app --reload`

2

POST to `/card/scan` with BAC fields — the API selects Slot 0 automatically.

3

If the API picks the wrong slot, ensure the card is in Slot 0 (bottom).

4

Confirm the scan log via `GET /scans?limit=1`.

Troubleshooting

API reports two readers and scans the wrong slot

The PC Twin Reader registers as two separate PCSC reader names. The API defaults to the first reader with a card present. Insert the DREWQ into Slot 0 (bottom). If needed, set `READER_INDEX=0` in the API's environment variables.

Old Gemalto driver installed, causing conflicts

Legacy Gemalto GemPC drivers conflict with the built-in CCID driver on Windows. Uninstall them via Programs and Features, then rely on Windows' built-in CCID support.

Second slot not detected by pcscd

Some older libccid versions enumerate only the first slot. Update libccid to 1.5.0+: `sudo apt-get install --upgrade libccid` on Ubuntu.

Need more help?

Check the full documentation or the reader compatibility guide for additional context.