nRF5 SDK v15.3.0
Adafruit NFC Shield library
This information applies to the nRF52832 SoC only.

The Adafruit NFC Shield library is a port of the Arduino library for nRF5 microcontrollers. The library provides functions to read and write data in ISO/IEC 14443 A compatible NFC tags, creating an NFC polling device. The library is intended to be used with the Adafruit PN532 NFC Shield.

For the API documentation of this library, refer to Adafruit PN532 NFC Shield library.

The Adafruit Tag Reader Example example shows how to use the library in an application.

Adafruit PN532 NFC/RFID Controller Shield

The Adafruit NFC Shield is an Arduino shield that uses the PN532 chipset for communicating through NFC. It can generate its own field to read and write NFC tags and behave like a tag itself. To communicate with a host microcontroller, the PN532 chip provides a communication protocol for TWI and SPI. For the documentation of the protocol, see PN532 User Manual. More information about the shield is available on the product page: Adafruit PN532 NFC/RFID Controller Shield

The shield can cooperate with the nRF52 development board PCA10040. This board is Arduino-compatible. Therefore, no additional adaptation is needed to connect the shield to the board. A tutorial about how to connect the shield to an Arduino board is available here: Shield Wiring

Functionality of the library

The Adafruit NFC Shield library is a port of the library for Arduino, adapted to work with nRF52, with some improvements and bugfixes. The source code of the original library is available in the Adafruit GitHub repository.

The library provides the following functionality:

The library was tested with the PCA10040 development boards At the moment, the library supports communication with the shield via TWI only. The following pins are used to communicate between the NFC Shield and the development board:

Function Adafruit NFC Shield PCA10040
IRQ Digital 2 P.13
RESET indicator Digital 3 P.14

Make sure to connect the correct pin to the IRQ line that is specified in sdk_config.h. This file contains the default configuration, so in most cases you will not need to update it.

Documentation feedback | Developer Zone | Subscribe | Updated