Overview

The PN532 is a highly integrated Near Field Communication (NFC) and 13.56 MHz RFID transceiver IC manufactured by NXP Semiconductors. Built around an 80C51 microcontroller core, it is the most versatile NFC controller for maker projects, supporting Reader/Writer mode, Peer-to-Peer (P2P) mode, and NFC Card Emulation mode.

Unlike basic RFID readers (such as the MFRC522 which only reads ISO 14443A MIFARE tags), the PN532 reads and writes NTAG213 / NTAG215 / NTAG216 NFC stickers, MIFARE Classic/Ultralight cards, FeliCa cards, and communicates directly with NFC-enabled smartphones (Android / Apple).

Quick reference

Module VCC3.3 V to 5.0 V DC (onboard LDO)
Chip VDD / VBAT2.7 V to 5.5 V DC
Carrier Frequency13.56 MHz
Operating RangeUp to 50 mm (5 cm)
Supported ProtocolsISO/IEC 14443A/B, MIFARE 1K/4K, NTAG, FeliCa, ISO/IEC 18092 (NFCIP-1)
Operating ModesReader/Writer, P2P (NFCIP-1), Card Emulation (ISO 14443A)
Bus InterfacesI2C (0x24), SPI, HSU (High-Speed UART 115200 baud)
Interface SelectionOnboard 2-bit DIP switch (SEL0, SEL1)

Pinout

Standard Red PN532 Breakout Board Header & DIP Switches

PinNameTypeDescription
1VCCPowerSupply voltage (+3.3 V to +5.0 V DC)
2GNDPowerGround (0 V)
3SDA / SS / TXDigital I/OI2C SDA / SPI SS (CS) / HSU TX
4SCL / SCK / RXDigital InputI2C SCL / SPI SCK / HSU RX
5MOSIDigital InputSPI MOSI
6MISODigital OutputSPI MISO
7IRQDigital OutputActive-LOW Interrupt output (alerts MCU on card detection)
8RSTOUT / RSTDigital InputHardware Reset pin

Bus Mode DIP Switch Configuration

The onboard 2-bit DIP switch (SEL0, SEL1) sets the active hardware communication interface:

Bus ModeSEL0 Switch PositionSEL1 Switch PositionHardware Protocol Used
I2C ModeON (0)OFF (1)I2C (Address 0x24, SDA & SCL pins)
SPI ModeOFF (1)OFF (1)4-Wire SPI (SS, SCK, MOSI, MISO)
HSU ModeOFF (1)ON (0)High-Speed UART (TX & RX @ 115200 baud)

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply VoltageVBATV_{BAT}2.73.3 / 5.05.5VDC
Active Transmit CurrentITXI_{TX}100150mARF field active
Power-Down CurrentIPDI_{PD}15µAHard power-down
RF Output PowerPRFP_{RF}100mW13.56 MHz antenna driver
Operating Distancedranged_{range}03050mmDepends on antenna loop size

Wiring (I2C Mode Example)

PN532 Module PinMicrocontroller (Arduino Uno / ESP32)
VCC5V (or 3.3V)
GNDGND
SDASDA (A4 on Uno, GPIO21 on ESP32)
SCLSCL (A5 on Uno, GPIO22 on ESP32)
IRQGPIO Pin with Interrupt (e.g. D2 / GPIO4)
Note

DIP Switch Verification: For I2C mode, set DIP switch SEL0 = ON and SEL1 = OFF. Power cycle the PN532 module after changing DIP switches for new mode settings to take effect.

Common mistakes

  • Changing DIP switches without power cycle: The PN532 samples SEL0 and SEL1 pins ONLY during power-on reset. Changing DIP switch positions while powered on will not switch bus modes.
  • Forgetting I2C Pull-Up Resistors: If using I2C mode on bare custom PCBs, place 4.7 kΩ4.7\text{ k}\Omega pull-up resistors on SDA and SCL.
  • Card Emulation Limits: While the PN532 supports card emulation mode, iOS (Apple) and modern Android devices require Host Card Emulation (HCE) security keys. Emulating proprietary access cards may be restricted by smartphone OS security layers.

Notes

  • Compatible with Adafruit PN532 library, NFCBridge, and ESPHome pn532 component.

Assets & downloads