RC522 RFID with Arduino: Wiring & What Passive Means

RC522 RFID with Arduino: Wiring & What Passive Means

Quick answer: The MFRC522 (Rs.180) reads 13.56MHz RFID tags over SPI and runs on 3.3V only — our record states 5V will damage it, and recommends a level shifter on a 5V board like the Uno. Tags need no battery: "passive" means the reader's own field powers the tag just long enough to read its UID.

Written and fact-checked by Compoden's engineering team, India. Every spec, pin and price below is read from our live catalogue record for the exact part named. Published 19 August 2026 · Last updated 19 August 2026.

The RC522 module (properly the MFRC522 chip) is the cheapest way to add a working RFID reader to Arduino, and it is genuinely simple once wired correctly — the trap is that "correctly" means more than plugging VCC into 5V because that's what every other module wants. It also assumes you're buying tags on the same frequency it reads, which is a separate mistake our catalogue makes easy to avoid if you know what to check.

MFRC522 reader and its two tag families — catalogue records checked August 2026
Spec MFRC522 Reader MIFARE Classic Card (5-pack) MIFARE Keychain Fob
Price (India, COD) Rs.180 Rs.75 Rs.17
Frequency 13.56 MHz 13.56 MHz 13.56 MHz
Interface / role SPI reader/writer Passive tag Passive tag
Power 3.3V DC, 13-26mA None — passive None — passive
Memory N/A 1 KB, ~100k write cycles 1 KB, ~100k write cycles
Compatible with 125kHz readers No No No

Verdict in one line: the MFRC522 needs 3.3V and careful wiring on a 5V board, but at Rs.180 for the reader and Rs.17-75 for tags, it's still the cheapest working RFID setup in our catalogue.

What does "passive" actually mean for an RFID tag?

It means the tag has no battery, and our own records say so plainly — both the MIFARE card and the keychain fob list their power as simply "passive." A coil of wire inside the tag sits inert until it enters the reader's magnetic field; the reader's own antenna induces a tiny current in that coil, which briefly powers the tag's chip just long enough to transmit its UID back. Nothing is stored, charged or drained — the tag is dead metal and plastic until the instant it's near a reader, and dead again the instant it leaves. That's also why range is so short: our record states the MFRC522's practical read distance tops out around 5cm, because the induced power falls off fast with distance, and there simply isn't much of it to begin with.

Why does the MFRC522 need 3.3V, and what happens with 5V?

Our record does not hedge on this: "5V will damage" it, stated as plainly as that. The chip's operating voltage range is 2.5-3.6V, and 5V sits well outside it — not a "usually fine" overshoot, a hard limit. The same record adds a second instruction easy to miss: "use level shifters with 5V microcontrollers," meaning not just the power pin but the SPI data lines too, since an Arduino Uno drives those at 5V logic. Powering the module from the Uno's 3.3V pin protects VCC; it does not, on its own, protect the SPI lines the Uno is actively driving.

MFRC522 safe operating voltage range against a 5V Arduino Uno's logic level The MFRC522's safe operating voltage range is 2.5 to 3.6 volts. A 3.3 volt supply falls inside that range. A 5 volt supply, which is what an Arduino Uno's logic runs at, falls well outside the safe range and will damage the module. Voltage scale, 0V to 6V — MFRC522's safe band vs a 5V Uno 2.5V–3.6V safe range 3.3V correct supply 5V Uno logic — damages it 0V 6V Scale: 60px = 0V, 620px = 6V, so 1V = ~93px. Green band and both markers placed to that scale.
The MFRC522's entire safe range (2.5-3.6V) sits well below a 5V Arduino Uno's logic level. Figures — the 2.5-3.6V range and the explicit "5V will damage" warning — are both stated in our own catalogue record.

How do you wire an MFRC522 to an Arduino Uno?

Seven wires, on the Uno's fixed SPI pins, with the 3.3V caveat above in mind for a build you want to run reliably rather than just once on a breadboard.

MFRC522 to Arduino Uno — wiring
MFRC522 pin Arduino Uno pin Note
VCC 3.3V Never 5V — our record states this damages the module.
RST D9 Any free digital pin; the library lets you choose.
GND GND Common ground.
SDA (SS) D10 SPI chip select.
MOSI D11 SPI data, Uno to module.
MISO D12 SPI data, module to Uno.
SCK D13 SPI clock.

An ESP32 avoids the level-shifting question entirely, since its GPIOs already run at 3.3V — SDA/SS to GPIO5, SCK to GPIO18, MOSI to GPIO23, MISO to GPIO19, RST to any free GPIO, VCC to the ESP32's 3.3V pin. Simpler wiring is a real reason to prefer it here, not just a general preference.

What code reads a tag's UID?

The MFRC522 library (Miguel Balboa / GithubCommunity fork), which our record names directly, handles the SPI protocol and the ISO 14443A card handshake. The sketch below was written for this guide and has not been compiled by us.

// MFRC522: print a tag's UID when one is presented.
// Library: MFRC522 (install via Library Manager).
// Wiring (Uno): SDA->D10, RST->D9, MOSI->D11, MISO->D12, SCK->D13, VCC->3.3V.

#include 
#include 

#define SS_PIN  10
#define RST_PIN 9

MFRC522 rfid(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  Serial.println("Ready - present a tag");
}

void loop() {
  if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) {
    return;
  }
  Serial.print("UID: ");
  for (byte i = 0; i < rfid.uid.size; i++) {
    Serial.print(rfid.uid.uidByte[i], HEX);
    Serial.print(" ");
  }
  Serial.println();
  rfid.PICC_HaltA();
}

Why won't my 125kHz tags work with this reader?

Because they're a different technology at a different frequency, not a compatibility setting. Our catalogue also stocks 125kHz EM4100 tags, and that record is explicit: "Not compatible with 13.56MHz readers like MFRC522." The two families use different modulation and different air-interface standards; a 125kHz tag held against an MFRC522 antenna simply produces nothing, no error message, just silence. If you already own 125kHz tags or a 125kHz reader (an EM-18 or RDM6300, for instance), buying an MFRC522 does not extend to them — you'd need a 125kHz-specific reader instead. Check the frequency printed on the reader and on the tag packaging before buying either separately.

Which reader and tags should you actually buy?

The MFRC522 RFID Reader/Writer Module (Rs.180) is the reader itself. For tags, the MIFARE Classic card pack of 5 (Rs.75) is the cheapest way to have several UIDs to test with, and the MIFARE keychain fob (Rs.17) is a more durable single tag for something like a door lock you'll use daily. If you'd rather not buy the reader and a tag separately, the RFID Card Inductive Module MFRC-522 with Key Chain (Rs.260) bundles the reader with one fob already included. All available cash on delivery across India.

What should you read next?

Want a finished project rather than a bare UID print? Our RFID door lock build guide takes this exact reader further, and the Arduino Uno pinout reference is worth checking before you claim D9-D13 for something else.

Building access control or attendance tracking? Open Soldr, describe what should happen when a tag is scanned, and it will generate the wiring and the logic.

Frequently asked questions

MFRC522 RFID module ko Arduino se kaise jodein?

Saat taar, Uno ke fixed SPI pins par: VCC ko 3.3V par (5V kabhi nahi - hamare record ke mutabik isse module kharaab ho sakta hai), RST ko D9 par, SDA/SS ko D10 par, MOSI ko D11 par, MISO ko D12 par, SCK ko D13 par, aur GND ko GND par. MFRC522 library install karein, fir UID padhne ke liye simple code likhein.

What does "passive" mean for an RFID tag?

It means the tag has no battery of its own. Our own records list the power source on both tag types simply as "passive" — a coil inside the tag is powered briefly by the reader's own magnetic field, just long enough to send back its UID, then goes dead again the instant it leaves the field. This is also why range is so short, typically around 5cm for this reader.

Can I power the MFRC522 from an Arduino's 5V pin?

No. Our catalogue record states directly that "5V will damage" the module — its safe operating range is 2.5-3.6V. Power it from the Uno's 3.3V pin instead, and our record also recommends a level shifter on the SPI data lines themselves when pairing it with a 5V microcontroller like the Uno, since VCC is not the only connection running at the wrong voltage otherwise.

Will my 125kHz RFID tags work with an MFRC522?

No. The MFRC522 reads 13.56MHz tags only, and our 125kHz tag record states plainly it is "not compatible with 13.56MHz readers like MFRC522." They are different technologies at different frequencies — a mismatched tag produces no error, just no read at all. Check the frequency on both the reader and the tag before buying.

What is the price of an RFID reader and tags in India?

At Compoden, the MFRC522 RFID Reader/Writer Module is Rs.180, a pack of 5 MIFARE Classic cards is Rs.75, and a single MIFARE keychain fob is Rs.17. A bundle with the reader and one fob together is Rs.260. All available with cash on delivery across India. Prices checked August 2026.

Back to blog

Open this project in the Soldr app → What is Soldr.ai → parts, wiring and code for what this guide builds