NederlandsKlik deze knop voor de Nederlandstalige website

ACR122U NFC USB reader on a Raspberry Pi

The ACR122U USB NFC Reader is usually connected to a PC or laptop but, of course, nothing is keeping you from connecting it to a Raspberry Pi instead. It took me some time and effort to get it all up and running but with some experimenting it finally worked out pretty good. For future reference and other Raspberry Pi users Googling for clues on how to install the drivers and packages, I describe the procedure below.

Installing the ACR122U USB NFC tag reader on a Raspberry Pi running Raspbian

The type of NFC reader I am using for this experiment is a ACR122U-A9 by Advanced Card Systems. This reader is connected by USB to a Raspberry Pi model 2B running Raspbian (version May 2015, release date 2015-05-05, Debian Wheezy, kernel 3.18).

First, we need to update the package lists and download and install some required packages:
sudo apt-get update

sudo apt-get -y install subversion autoconf debhelper flex libusb-dev libpcsclite-dev libpcsclite1 libccid pcscd pcsc-tools libpcsc-perl libusb-1.0-0-dev libtool libssl-dev cmake checkinstall
Then we download, extract, configure and install libnfc:
wget https://github.com/nfc-tools/libnfc/releases/download/libnfc-1.7.0-rc7/libnfc-1.7.0-rc7.tar.gz

tar -xvzf libnfc-1.7.0-rc7.tar.gz

cd libnfc-1.7.0-rc7

./configure --with-drivers=acr122_usb

make

sudo make install
If all went well, issuing this command will list your ACR122U and any tags present:
sudo nfc-list
But if it shows “nfc-list: error while loading shared libraries: libnfc.so.4: cannot open shared object file: No such file or directory” instead, then try this:
sudo sh -c "echo /usr/local/lib > /etc/ld.so.conf.d/usr-local-lib.conf"

sudo ldconfig
After doing so, you can try again with the command “nfc-list”.
sudo nfc-list

If it says “Unable to claim USB interface” then you need to prevent modprobe from autoloading the pn533 and nfc modules by blacklisting them. To do so, create the file “blacklist-libnfc.conf” by using nano:
sudo nano /etc/modprobe.d/blacklist-libnfc.conf
Add the following two lines to the empty file, save (CTRL+O), and exit (CTRL+X):
blacklist pn533
blacklist nfc

Then all you need to do is this:
sudo modprobe -r pn533 nfc
Finally, “nfc-list” should now work without errors.
sudo nfc-list
It will show you some information about the NFC reader and the NFC tag, if one is present.

And now you can use the ACR122U USB NFC Reader on your Raspberry Pi!

NFC ACR122U RFID Contactless smart Reader + 5pcs Mifare IC Card
Tested and recommended by OneGuyOneBlog.com:

NFC ACR122U RFID Contactless smart Reader + 5pcs Mifare IC Card

This post is also available in Dutch.

19 Comments

Add a Comment

Your email address will not be published. Required fields are marked *