Grove - NFC

From Wiki
Jump to: navigation, search


Near Field Communication (NFC) is a set of short-range wireless technologies. It's behind daily applications such as access control system and mobile payment system. Grove NFC features a highly integrated transceiver module PN532 which handles contactless communication at 13.56MHz. You can read and write a 13.56MHz tag with this module or implement point to point data exchange with two NFCs. Grove NFC is designed to use I2C or UART communication protocols, and UART is the default mode. In addition, we assign an independent PCB antenna which can easily stretch out of any enclosure you use, leaving more room for you to design the exterior of your project.


Working Voltage: 3.3V Working Current: Static Mode: 73mA Write/Read Mode: 83mA Support host interface: I2C, UART(default). Serve for contactless communication at 13.56MHz. Support ISO14443 Type A and Type B protocols. Max operating distance for detecting NFC tags is 28mm depending on current antenna size. Support P2P communication. Dimensions: 25.43mm x 20.35mm Get Started

Download PN532 library and put 4 folders(PN532, PN532_SPI, PN532_I2C and PN532_HSU) into Arduino's libraries. Download Don's NDEF library, put it into Arduino's library and rename it to NDEF. Open Arduino IDE. If Arduino IDE is already opened, restart it. In Arduino IDE, click menus: File -> Example -> NDEF -> ReadTag We used I2C interface in the libraries of NDEF, so please cut off the connection between P1 and UART via a little knife, and solder P1 and I2C together.

NFC cut&solder.jpg

Debug for Grove - NFC v1.0 : There's a bug while using I2C communication, please use jumper wires to follow those connection

Arduino/Arduino Mega Grove - NFC SCL RX SDA TX GND GND 5V VCC

Also you can use UART interface without cutting any connection, Seeeduino Mega(Arduino Mega) or lite(Arduino Leonardo) are preferred. Following are the modified program.

  1. include "PN532_HSU.h"
  2. include "PN532.h"
  3. include "NfcAdapter.h"

PN532_HSU interface(Serial1); NfcAdapter nfc = NfcAdapter(interface);

void setup(void) {

   Serial.println("NDEF Reader");


void loop(void) {

   Serial.println("\nScan a NFC tag\n");
   if (nfc.tagPresent())
       NfcTag tag =;

} Of course, you can communicate Grove - NFC with UNO via UART interface, but you can't get any information on the monitor of Arduino IDE.

Related Reading

FAQ of Grove - NFC. Also, you can enter the FAQ page by clicking the "FAQ" button which in the right side of product's wiki page.