

The RC522 RFID Module, manufactured by NXP Semiconductors (Part ID: MFRC522), is a compact and cost-effective device designed for reading and writing RFID tags. Operating at a frequency of 13.56 MHz, it supports communication with a variety of RFID tags and cards. This module is widely used in applications such as access control, inventory management, contactless payment systems, and other identification-based systems.
Its small size, low power consumption, and compatibility with microcontrollers like Arduino make it a popular choice for hobbyists and professionals alike.








Below are the key technical details and pin configuration of the RC522 RFID Module:
| Parameter | Value |
|---|---|
| Operating Voltage | 2.5V to 3.3V (logic level) |
| Power Supply Voltage | 3.3V |
| Operating Current | 13-26mA |
| Operating Frequency | 13.56 MHz |
| Communication Protocol | SPI, I2C, UART |
| Maximum Data Rate | 10 Mbps (SPI) |
| Reading Distance | Up to 5 cm |
| Dimensions | 40mm x 60mm |
The RC522 RFID Module has 8 pins, as described in the table below:
| Pin Name | Pin Number | Description |
|---|---|---|
| VCC | 1 | Power supply input (3.3V). |
| RST | 2 | Reset pin. Used to reset the module. Active LOW. |
| GND | 3 | Ground connection. |
| IRQ | 4 | Interrupt pin. Can be used to signal events to the microcontroller. |
| MISO | 5 | Master-In-Slave-Out (SPI data output). |
| MOSI | 6 | Master-Out-Slave-In (SPI data input). |
| SCK | 7 | Serial Clock (SPI clock input). |
| SDA/SS | 8 | Slave Select (SPI chip select). Also used for I2C communication. |
VCC pin to a 3.3V power source and the GND pin to ground.MISO to Arduino pin 12MOSI to Arduino pin 11SCK to Arduino pin 13SDA/SS to Arduino pin 10RST to Arduino pin 9Below is an example Arduino sketch to read an RFID tag using the RC522 module:
#include <SPI.h>
#include <MFRC522.h>
// Define RC522 module pins
#define RST_PIN 9 // Reset pin connected to Arduino pin 9
#define SS_PIN 10 // Slave Select pin connected to Arduino pin 10
MFRC522 rfid(SS_PIN, RST_PIN); // Create an instance of the MFRC522 class
void setup() {
Serial.begin(9600); // Initialize serial communication
SPI.begin(); // Initialize SPI bus
rfid.PCD_Init(); // Initialize the RC522 module
Serial.println("Place an RFID tag near the reader...");
}
void loop() {
// Check if an RFID tag is present
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) {
return; // Exit if no tag is detected
}
// Print the UID of the detected tag
Serial.print("Tag UID: ");
for (byte i = 0; i < rfid.uid.size; i++) {
Serial.print(rfid.uid.uidByte[i], HEX); // Print each byte of the UID in HEX
Serial.print(" ");
}
Serial.println();
// Halt the tag to stop further communication
rfid.PICC_HaltA();
}
Module Not Responding
Unable to Read RFID Tags
Interference from Metal Objects
Library Not Found
Can the RC522 module write data to RFID tags?
What is the maximum range of the RC522 module?
Can the RC522 module work with 5V logic?
What types of RFID tags are compatible with the RC522 module?