PN532 RFID Module

From LinkSprite Playgound
Jump to: navigation, search


The PN532 is the most popular NFC chip, and is what is embedded in pretty much every phone or device that does NFC. It can pretty much do it all, such as read and write to tags and cards, communicate with phones (say for payment processing), and 'act' like a NFC tag. If you want to do any sort of embedded NFC work, this is the chip you'll want to use! NFC (Near Field Communications) is a way for two devices very close to each other to communicate. Sort of like a very short range bluetooth that doesn't require authentication. It is an extension of RFID, so anything you can do with RFID you can do with NFC. You can do more stuff with NFC as well, such as communicate bi-directionally with cell phones

Because it can read and write tags, you can always just use this for RFID-tag projects. We carry a few different tags that work great with this chip. It can also work with any other NFC/RFID Type 1 thru 4 tag (and of course all the other NXP MiFare type tags)

The PN532 is also very flexible, you can use 3.3V TTL UART at any baud rate, I2C or SPI to communicate with it. This chip is also strongly supported by libnfc, simply plug in an FTDI cable and use the FTDI serial port device to communicate - this lets you do NFC dev using any Linux/Mac/Windows computer!

[Model: RFID_NFC_BB_PN532]

PN532 MODULE.jpg


Production Features

  • Reader/writer functionality compatible to ISO/IEC 14443 A&B, MIFARE, FeliCa and NFC Forum tag types (MIFARE Ultralight, Topaz, FeliCa, MIFARE DESFire)
  • Full peer-to-peer functionality
  • Card emulation functionality compatible to ISO/IEC 14443 A when connected to secure controller (SmartMX P5CN072)
  • Up to 10cm operating distance
  • Optimized 80C51 core processor with embedded firmware in ROM
  • Multiple interfaces (UART, SPI I2C)
  • Integrated MIFARE cipher crypto1


  • Easy pairing of Bluetooth-, Wi-Fi- or WUSB-enabled devices
  • Read/ write NFC Forum tags such as MIFARE, MIFARE Ultralight, DESFire, Felica and Topaz


  • Easy pairing of Bluetooth-, Wi-Fi- or WUSB-enabled devices
  • Exchange data (business card, picture, etc.) between two active devices

Card emulation

  • The PN532 makes it possible to emulate:
  • A MIFARE card to access public transport, stadium, building etc.
  • A MIFARE card to store loyalty program or pre-paid wallet
  • An EMV payment card such as PayPass and VisaWave
  • An active tag and change its content over the air (OTA)

Arduino Sample Code

<syntaxhighlight lang="c"> /* PN532 reads the tag by Arduino mega command wake up reader send: 55 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 03 fd d4 14 01 17 00 return: 00 00 FF 00 FF 00 00 00 FF 02 FE D5 15 16 00

firmware send: 00 00 FF 02 FE D4 02 2A 00 return: 00 00 FF 00 FF 00 00 00 FF 06 FA D5 03 32 01 06 07 E8 00

reads the tag send: 00 00 FF 04 FC D4 4A 01 00 E1 00 return: 00 00 FF 00 FF 00 00 00 FF 0C F4 D5 4B 01 01 00 04 08 04 XX XX XX XX 5A 00 XX is tag.

  • /

const unsigned char wake[24]={0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,0xfd,0xd4,0x14,0x01,0x17,0x00};//const const unsigned char firmware[9]={0x00,0x00,0xFF,0x02,0xFE,0xD4,0x02,0x2A,0x00};//const const unsigned char tag[11]={0x00,0x00,0xFF,0x04,0xFC,0xD4,0x4A,0x01,0x00,0xE1,0x00};//

unsigned char receive_ACK[25]; int inByte = 0; // incoming serial byte

void UART1_Send_Byte(unsigned char command_data) {



void UART_Send_Byte(unsigned char command_data) {



void array_ACK(unsigned char temp) {

   for(unsigned char i=0;i<temp;i++)                                           


void wake_card(void) {

   unsigned char i;
   for(i=0;i<24;i++) //send command


void firmware_version(void) {

   unsigned char i;
   for(i=0;i<9;i++) //send command


void read_tag(void) {

   unsigned char i;
   for(i=0;i<11;i++) //send command


void dsplay(unsigned char tem) {

   unsigned char i;
   for(i=0;i<tem;i++) //send command


void setup() {

 Serial.begin(9600); // open serial锛宻et Baund rate 9600 bps


void loop() {

  if (Serial.available() > 0) 
   // get incoming byte:
   inByte =;
   if (inByte=='r')
   else if (inByte=='v')





Schematic of PN532 Breakout board in PDF


Pin definition and Rating

Mechanic Dimensions

2" (51mm) x 4.7" (117.7mm) and 0.425" (1.1mm) thick


Hardware Installation



Please list your question here:


If you have questions or other better design ideas, you can go to our forum to discuss or creat a ticket for your issue at linksprite support.


How to buy

Click here to buy PN532 RFID Module RFID_NFC_BB_PN532 at LinkSpriteDirect cart

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.