NFC Bridge

Jump to: navigation, search


  • Bridge Series based on Arduino is a totally new and extremely hot product series, released by ElecFreaks in 2013. Some of them are compatible to Arduino interface, and some others are designed for unique development environments. They are highly characteristic by the bridging role, bridging wireless communications, bridging to the Internet, bridging to various interfaces such as XBee, RF, SD card, NFC, WIFI and so on.
  • NFC Bridge is a very unique Arduino board, mainly composed of PN532 module, mainboard control module ( ATmega32U4)and XBEE interface. Based on NFC Module, NFC Bridge adds mainboard control module and XBEE interface, which is convenient in practical use because it is not necessary to connect to mainboard. In addition, NFC Bridge also adds wireless transmission function, besides, in order to take full advantage of ATmega32U4 hosted ic, we also spared interface on the hosted analog port.




  • Completely compatible Ariduino/ Freaduino
  • Communication range: 5 cm
  • ISM band: 13.56MHZ
  • Communication Interface: IIC
  • Built-in PCB antenna
  • Immersion Gold design
  • Input Voltage :5-12V
  • IO Operating voltage: 3.3V
  • Size: 90mm × 52mm

Application Ideas

  • Use as a RFID reader with Mifare One tags (ISO14443 Type-A) and cards (13.56Mhz).
  • Build visiting card sharing system.
  • Build attendance systems.
  • Design authentication systems.
  • Read Smart Posters.
  • Securely exchange small data with other NFC devices
  • And other endless possibility.


  • When we burn the code, you should choose Leonardo
  • NFC Bridge is the largest external access to power 12V, please do not exceed this voltage

Pin definition and Rating

NFC Bridge A.jpg

Mechanic Dimensions

NFC Bridge B.jpg



Includes important code snippet. The PN532 software library for NFC Bridge is derived from Adafruits PN532 Library.The original library provides API for reading Passive Target ID of Mifare Card/Tags. This is enough for card/tag identification purpose. We have added APIs for authentication, reading from and writing to Mifare Cards/Tags. The software library only provides low level functionality. Users have to implement NFC application layer(if required). Please Note: Arduino 1.0 users have to change the #include <WProgram.h> lines to #include <Arduino.h> in PN532.cpp and PN532.h.

Quick Start Demo

A simple sketch which reads the Passive Target ID from MIFARE cards and tags. Passive Target ID is an unique, permanent and read-only number programmed on to the MIFARE card by the manufacturer. This number is used to identify one card from another.

  • Compile and upload the program to Arduino.
  • Bring a Mifare Card near the NFC Antenna as shown above

Demo code like : <syntaxhighlight lang="php">

Demo code {/**************************************************************************/ /*!

   @file     iso14443a_uid.pde
   @author   Adafruit Industries
   @license  BSD (see license.txt)
   This example will attempt to connect to an ISO14443A
   card or tag and retrieve some basic information about it
   that can be used to determine what type of card it is.   
   Note that you need the baud rate to be 115200 because we need to print
   out the data and read from the card at the same time!
   This is an example sketch for the Adafruit PN532 NFC/RFID breakout boards
   This library works with the Adafruit NFC breakout 

   Check out the links above for our tutorials and wiring diagrams 
   These chips use I2C to communicate, 4 pins required to interface:
   SDA (I2C Data) and SCL (I2C Clock), IRQ and RESET (any digital line)
   Adafruit invests time and resources providing this open source code, 
   please support Adafruit and open-source hardware by purchasing 
   products from Adafruit!
  • /


  1. include <Wire.h>
  2. include <Adafruit_NFCShield_I2C.h>
  1. define IRQ (4)
  2. define RESET (5) // Not connected by default on the NFC Shield

Adafruit_NFCShield_I2C nfc(IRQ, RESET);

void setup(void) {

 uint32_t versiondata = nfc.getFirmwareVersion();
 if (! versiondata) {
   Serial.print("Didn't find PN53x board");
   while (1); // halt
 // Got ok data, print it out!
 Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX); 
 Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC); 
 Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
 // Set the max number of retry attempts to read from a card
 // This prevents us from waiting forever for a card, which is
 // the default behaviour of the PN532.
 // configure board to read RFID tags
 Serial.println("Waiting for an ISO14443A card");


void loop(void) {

 boolean success;
 uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };  // Buffer to store the returned UID
 uint8_t uidLength;                        // Length of the UID (4 or 7 bytes depending on ISO14443A card type)
 // Wait for an ISO14443A type cards (Mifare, etc.).  When one is found
 // 'uid' will be populated with the UID, and uidLength will indicate
 // if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight)
 success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
 if (success) {
   Serial.println("Found a card!");
   Serial.print("UID Length: ");Serial.print(uidLength, DEC);Serial.println(" bytes");
   Serial.print("UID Value: ");
   for (uint8_t i=0; i < uidLength; i++) 
     Serial.print(" 0x");Serial.print(uid[i], HEX); 
   // Wait 1 second before continuing
   // PN532 probably timed out waiting for a card
   Serial.println("Timed out waiting for a card");





The projects and application examples.

Bill of Materials (BOM) /parts list

All the components used to produce the product.


Please list your question here:


If you have questions or other better design ideas,

Version Tracker

Revision Descriptions Release
v0.9b Initial public release date

Bug Tracker

Bug Tracker is the place you can publish any bugs you think you might have found during use. Please write down what you have to say, your answers will help us improve our products.

Additional Idea

The Additional Idea is the place to write your project ideas about this product, or other usages you've found. Or you can write them on Projects page.


How to buy

Click here to buy:

See Also

Other related products and resources.


This documentation is licensed under the Creative Commons Attribution-ShareAlike License 3.0 Source code and libraries are licensed under GPL/LGPL, see source code files for details.

External Links

Links to external webpages which provide more application ideas, documents/datasheet or software libraries