NFC Shields + ARDUINO Vs Commercial NFC Readers (ACR122U)

Experts: Share your thoughts

A. I am NFC newbie am trying to understand whats the difference between a NFC shield which we connect to boards like Arduino etc… and a commercial NFC Readers(Arygon, ACR122) supporting IOS14443/18092. They both pretty much do the same. How and why they are different and why does LIBNFC supports ONLY NFC reader and not NFC Shields with Micro-Controllers ? When looking for a reader what does LIBNFC look for internally and why cant it find NFC shields + Arduino

  1. NFC Reader/writer functionality,
  2. NFC Reader for phones or devices running in card emulation mode.
  3. One end for a Peer to Peer NDEF exchange via NPP between 2 active NFC readers.

B. Why NFC Shield + Arduino is not recognized by javax.smartcardio.CardTerminal(Smart Card package) classes as a valid CardTerminal, but ACR122 and Arygon are recognized as valid CardTerminals by a desktop.

A. Both ACR122 and NFC Shield use PN532. What ACR122 can do can also be done by Arduino + NFC Shield. The differences is:
+ ACR122 uses UART to commuicate with PN532, but Arduino uses SPI to communicate with PN532
+ Software is really different. using Arduino + NFC Shield, you need write some code to implement a function. Fortunately, you can use libraries from

B. You can write an application for Arduino + NFC Shield to make it recognized by javax.smartcardio.CardTerminal. If you want to Arduino + NFC Shield as an ACR122, why not just use ACR122? With Arduino + NFC Shield, you can add other shields or sensors to something else.

Thanks for your reply.

I was trying to understand the internals of both.

I also learnt it just not UART vs SPI.
ACR122* has PCSC (PC smart card comaptibility) for it javax.smartcard library to recognize.
It ACR122* receives inputs in APDUs and converts internally into PN532 commands.