Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use PN532: Examples, Pinouts, and Specs

Image of PN532
Cirkit Designer LogoDesign with PN532 in Cirkit Designer

Introduction

The PN532 is a versatile NFC (Near Field Communication) controller that enables communication with NFC-enabled devices. It supports multiple modes of operation, including reader/writer, peer-to-peer, and card emulation. This flexibility makes the PN532 an ideal choice for a wide range of applications, such as:

  • Contactless payment systems
  • Access control and authentication
  • Data exchange between NFC-enabled devices
  • Smart posters and interactive kiosks
  • Inventory tracking and asset management

The PN532 is widely used in embedded systems and is compatible with microcontrollers like the Arduino UNO, making it accessible for both hobbyists and professionals.

Explore Projects Built with PN532

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Mega 2560 Based Security System with Fingerprint Authentication and SMS Alerts
Image of Door security system: A project utilizing PN532 in a practical application
This circuit features an Arduino Mega 2560 microcontroller interfaced with a SIM800L GSM module, two fingerprint scanners, an I2C LCD display, an IR sensor, and a piezo buzzer. Power management is handled by a PowerBoost 1000 Basic Pad USB, a TP4056 charging module, and a Li-ion 18650 battery, with an option to use a Mini AC-DC 110V-230V to 5V 700mA module for direct power supply. The primary functionality appears to be a security system with GSM communication capabilities, biometric access control, and visual/audible feedback.
Cirkit Designer LogoOpen Project in Cirkit Designer
Biometric Access Control System with RFID and Touch Activation
Image of DOORLOCK1: A project utilizing PN532 in a practical application
This circuit is designed for security and identification purposes, featuring an RFID-RC522 module for contactless communication and a fingerprint scanner for biometric authentication. It includes an LCD display for user interaction, a touch sensor for input, a buzzer for audio feedback, and a relay module for controlling external devices. The components are interfaced with a NANO Expansion board, which likely contains a microcontroller to coordinate the operations of the system.
Cirkit Designer LogoOpen Project in Cirkit Designer
NFC-Enabled Access Control System with Time Logging
Image of doorlock: A project utilizing PN532 in a practical application
This circuit is designed for access control with time tracking capabilities. It features an NFC/RFID reader for authentication, an RTC module (DS3231) for real-time clock functionality, and an OLED display for user interaction. A 12V relay controls a magnetic lock, which is activated upon successful NFC/RFID authentication, and a button switch is likely used for manual operation or input. The T8_S3 microcontroller serves as the central processing unit, interfacing with the NFC/RFID reader, RTC, OLED, and relay to manage the access control logic.
Cirkit Designer LogoOpen Project in Cirkit Designer
NFC-Enabled Access Control System with Real-Time Clock and OLED Display
Image of doorlock: A project utilizing PN532 in a practical application
This circuit is designed as an access control system with time-tracking capabilities. It uses an NFC/RFID reader for authentication, a real-time clock for time-stamping events, and an OLED display for user interface, all controlled by a T8_S3 microcontroller. A relay module actuates a magnetic lock, and a button switch provides additional user input, with a switching power supply delivering the necessary voltages.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with PN532

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Door security system: A project utilizing PN532 in a practical application
Arduino Mega 2560 Based Security System with Fingerprint Authentication and SMS Alerts
This circuit features an Arduino Mega 2560 microcontroller interfaced with a SIM800L GSM module, two fingerprint scanners, an I2C LCD display, an IR sensor, and a piezo buzzer. Power management is handled by a PowerBoost 1000 Basic Pad USB, a TP4056 charging module, and a Li-ion 18650 battery, with an option to use a Mini AC-DC 110V-230V to 5V 700mA module for direct power supply. The primary functionality appears to be a security system with GSM communication capabilities, biometric access control, and visual/audible feedback.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of DOORLOCK1: A project utilizing PN532 in a practical application
Biometric Access Control System with RFID and Touch Activation
This circuit is designed for security and identification purposes, featuring an RFID-RC522 module for contactless communication and a fingerprint scanner for biometric authentication. It includes an LCD display for user interaction, a touch sensor for input, a buzzer for audio feedback, and a relay module for controlling external devices. The components are interfaced with a NANO Expansion board, which likely contains a microcontroller to coordinate the operations of the system.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of doorlock: A project utilizing PN532 in a practical application
NFC-Enabled Access Control System with Time Logging
This circuit is designed for access control with time tracking capabilities. It features an NFC/RFID reader for authentication, an RTC module (DS3231) for real-time clock functionality, and an OLED display for user interaction. A 12V relay controls a magnetic lock, which is activated upon successful NFC/RFID authentication, and a button switch is likely used for manual operation or input. The T8_S3 microcontroller serves as the central processing unit, interfacing with the NFC/RFID reader, RTC, OLED, and relay to manage the access control logic.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of doorlock: A project utilizing PN532 in a practical application
NFC-Enabled Access Control System with Real-Time Clock and OLED Display
This circuit is designed as an access control system with time-tracking capabilities. It uses an NFC/RFID reader for authentication, a real-time clock for time-stamping events, and an OLED display for user interface, all controlled by a T8_S3 microcontroller. A relay module actuates a magnetic lock, and a button switch provides additional user input, with a switching power supply delivering the necessary voltages.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

The PN532 is a highly integrated NFC controller with the following key technical details:

General Specifications

Parameter Value
Operating Voltage 2.7V to 5.5V
Communication Interfaces I²C, SPI, UART
Operating Frequency 13.56 MHz
Current Consumption ~50 mA (active mode)
Supported Protocols ISO/IEC 14443A/B, FeliCa, NFC-IP1
Operating Modes Reader/Writer, Peer-to-Peer, Card Emulation

Pin Configuration

The PN532 module typically comes with a breakout board. Below is the pin configuration for a common PN532 breakout board:

Pin Name Description
VCC Power supply input (2.7V to 5.5V)
GND Ground
SCL I²C clock line (used in I²C mode)
SDA I²C data line (used in I²C mode)
MOSI Master Out Slave In (used in SPI mode)
MISO Master In Slave Out (used in SPI mode)
SCK Serial Clock (used in SPI mode)
SS Slave Select (used in SPI mode)
RX UART receive line (used in UART mode)
TX UART transmit line (used in UART mode)
IRQ Interrupt request output
RST Reset pin

Usage Instructions

The PN532 can be used in various modes depending on the application. Below are general instructions for using the PN532 with an Arduino UNO in I²C mode.

Connecting the PN532 to an Arduino UNO

  1. Connect the VCC pin of the PN532 to the 5V pin on the Arduino UNO.
  2. Connect the GND pin of the PN532 to the GND pin on the Arduino UNO.
  3. Connect the SCL pin of the PN532 to the A5 pin on the Arduino UNO (I²C clock line).
  4. Connect the SDA pin of the PN532 to the A4 pin on the Arduino UNO (I²C data line).
  5. Ensure the PN532 is configured for I²C mode (check the module's DIP switches or jumpers).

Example Arduino Code

Below is an example Arduino sketch to read an NFC tag using the PN532 in I²C mode. This code uses the Adafruit_PN532 library, which must be installed via the Arduino Library Manager.

#include <Wire.h>
#include <Adafruit_PN532.h>

// Define the I²C pins for the PN532
#define SDA_PIN A4
#define SCL_PIN A5

// Create an instance of the Adafruit_PN532 class
Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);

void setup() {
  Serial.begin(9600); // Initialize serial communication
  Serial.println("Initializing PN532...");

  nfc.begin(); // Initialize the PN532 module

  // Check if the PN532 is responding
  uint32_t versiondata = nfc.getFirmwareVersion();
  if (!versiondata) {
    Serial.println("Didn't find PN532 board");
    while (1); // Halt execution if the board is not found
  }

  // Display firmware version
  Serial.print("Found PN532 with firmware version: ");
  Serial.println((versiondata >> 16) & 0xFF, HEX);

  // Configure the board to read NFC tags
  nfc.SAMConfig();
  Serial.println("Waiting for an NFC tag...");
}

void loop() {
  uint8_t success;
  uint8_t uid[] = { 0 }; // Buffer to store the UID
  uint8_t uidLength;     // Length of the UID

  // Attempt to read an NFC tag
  success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);

  if (success) {
    Serial.println("NFC tag detected!");
    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);
    }
    Serial.println();
    delay(1000); // Wait 1 second before scanning again
  }
}

Best Practices

  • Ensure proper power supply to the PN532 module (use a stable 5V source).
  • Use pull-up resistors on the I²C lines (SDA and SCL) if they are not already included on the breakout board.
  • Avoid placing the PN532 module near metal surfaces, as this can interfere with NFC communication.
  • Use a logic level shifter if interfacing the PN532 with a 3.3V microcontroller.

Troubleshooting and FAQs

Common Issues

  1. The PN532 is not detected by the Arduino.

    • Ensure the wiring is correct and matches the selected communication mode (I²C, SPI, or UART).
    • Verify that the PN532 is powered correctly and that the module's DIP switches or jumpers are set for I²C mode.
  2. NFC tags are not being detected.

    • Check the distance between the PN532 and the NFC tag. The effective range is typically 2-5 cm.
    • Ensure the tag is compatible with the PN532 (e.g., ISO/IEC 14443A/B or FeliCa).
  3. Communication errors occur during operation.

    • Use shorter wires to reduce noise and interference.
    • Verify that the I²C pull-up resistors are present and correctly connected.

FAQs

Q: Can the PN532 read and write NFC tags?
A: Yes, the PN532 supports both reading and writing NFC tags in reader/writer mode.

Q: What is the maximum communication range of the PN532?
A: The typical range is 2-5 cm, depending on the antenna design and the NFC tag.

Q: Can the PN532 be used with a Raspberry Pi?
A: Yes, the PN532 can be interfaced with a Raspberry Pi using I²C, SPI, or UART communication.

Q: Does the PN532 support peer-to-peer communication?
A: Yes, the PN532 supports peer-to-peer mode for data exchange between NFC-enabled devices.