ACS ACR122U
ContactlessACS·NFC / USB
Overview
The ACS ACR122U is a USB NFC reader that supports ISO 14443 Type A and Type B contactless smart cards, including DREWQ's contactless interface when present. It uses the PN532 NFC controller and communicates via USB CCID, making it compatible with the standard PC/SC stack. The reader is widely used in access control, contactless payment, and identity verification scenarios where card holders prefer not to insert the card physically. Note that DREWQ contactless reading requires the card to support the ICAO contactless interface — confirm your card variant before deployment.
Requirements
- USB-A port (USB 2.0 or higher)
- PC/SC daemon with NFC CCID support (pcscd + libnfc or ACR122U driver)
- Python 3.9+ with pyscard
- DREWQ variant with ISO 14443 contactless interface enabled
Setup Guide
Connect the Reader
Plug the ACR122U into a USB-A port using the supplied USB cable.
ACS provides a PC/SC driver package at acs.com.hk — install on Windows for best results.
On macOS/Linux, the built-in CCID driver plus pcscd handles the reader adequately.
The blue LED ring illuminates when the reader is powered and ready.
Configure PC/SC
macOS: `brew install pcsc-lite && brew services start pcsc-lite`
Ubuntu/Debian: `sudo apt-get install -y pcscd pcsc-tools libacr122 && sudo systemctl enable --now pcscd`
Install pyscard: `pip install pyscard`
Optional: install libnfc for lower-level NFC access: `sudo apt-get install libnfc-bin`
Verify Detection
Run `pcsc_scan` — the reader appears as `ACS ACR122U PICC Interface`.
Tap a contactless DREWQ on the reader surface and observe the LED flash.
Python check: `python -c "from smartcard.System import readers; print(readers())"`
Verify with `GET /card/status` — confirms `card_present: true` on tap.
Test with the API
Start the server: `uvicorn main:app --reload`
Tap the DREWQ on the reader and immediately POST to `/card/scan`.
Contactless reads can be faster than contact reads — typically under 500ms.
Check `GET /scans?limit=1` to confirm a successful log entry.
Troubleshooting
Reader detected but card tap not registered
Ensure the card is tapped flat against the center of the reader (not the edge). Contactless range is 0–5 cm. Remove any metal objects near the reader that may interfere with the RF field.
libnfc conflicts with pcscd
libnfc and pcscd both try to claim the ACR122U. Only run one at a time. For the DREWQ API (which uses pcscd), ensure libnfc is not running: `sudo modprobe -r pn533_usb` then restart pcscd.
DREWQ does not respond to contactless read
Not all DREWQ variants support the contactless interface. Confirm with the issuing authority whether your card variant has the ICAO contactless application. If not, use a contact reader instead.
Need more help?
Check the full documentation or the reader compatibility guide for additional context.