Power the RC522 from 3.3 V, not 5 V. Then check SDA, SCK, MOSI, MISO and RST wiring.
What the message means
The module is a 3.3 V SPI device. A wrong supply or a missing reset connection gives no card or a version read of 0x00 or 0xFF.
Fix it in this order
- Connect VCC to 3.3 V and GND to ground.
- Wire SDA (SS), SCK, MOSI and MISO to the SPI pins of your board.
- Wire RST to the pin named in your sketch.
- Read the firmware version register and check it is not 0x00 or 0xFF.
- Hold a 13.56 MHz card within a few centimetres.
- Keep the antenna away from metal.
Why it happens
The RC522 runs at 3.3 V and must not be powered from 5 V. It reads 13.56 MHz cards and tags such as MIFARE, and does not read the 125 kHz tags used by some cheap key fobs. The SPI wires and the SS and RST pins must match the code.
Power it from 3.3 V, check MOSI, MISO, SCK, SS and RST against the library example for your board, and test with a card that you know is MIFARE.
If you see this, do this
| You see | Do this |
|---|---|
| Version reads 0x00 or 0xFF | Wiring or supply. |
| Version fine, no card | Wrong card type or too far. |
Related
Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.
Why this happens
The RC522 board carries the MFRC522 reader chip, which is a 3.3 V device that talks SPI. Powered from 5 V, it can fail or behave oddly. Many tutorials wire the logic pins directly to a 5 V Uno, which is above the chip’s rating; a level shifter or resistor dividers on the signal pins is the safer choice.
It reads 13.56 MHz tags such as MIFARE cards. Key fobs that work at 125 kHz are a different technology and will never be detected. The chip can answer over SPI even when no card is nearby, which makes the version register a good first test.
How to confirm the cause
- Run the library’s version dump and read the firmware version. Typical working values are 0x91 or 0x92; some clones report others. 0x00 or 0xFF means the chip is not answering.
- Measure the voltage at the module’s 3.3 V pin while it runs. It should stay close to 3.3 V.
- Check each SPI wire against the pin list for your board and compare it with the pins named in the sketch.
- Try a card you know is MIFARE, held flat about 1 to 3 cm from the antenna.
- Move any metal away from behind the antenna.
Worked example
A minimal check on an Uno, using the common MFRC522 library. Pins: SDA(SS) 10, SCK 13, MOSI 11, MISO 12, RST 9, power 3.3 V.
#include <SPI.h>
#include <MFRC522.h>
MFRC522 rfid(10, 9); // SS, RST
void setup() {
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
rfid.PCD_DumpVersionToSerial(); // expect 0x91 or 0x92
}
void loop() {}Common mistakes
- Powering the module from 5 V.
- Swapping MOSI and MISO.
- Changing the SS or RST pin in the wiring but not in the constructor.
- Using a 125 kHz tag.
- Sharing the SPI bus with an SD card without giving each its own chip-select.
If this did not fix it
- A weak 3.3 V source. The Uno’s 3V3 pin supplies only limited current, so a separate regulator may be needed.
- A cold solder joint on the header pins of the module.
- A clone chip that reports an unusual version, which some libraries reject.