* --------------------------------------------------------------------------------------------------------------------
 * Example sketch/program showing how to read data from a PICC to serial.
 * --------------------------------------------------------------------------------------------------------------------
 * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid
 * Example sketch/program showing how to read data from a PICC (that is: a RFID Tag or Card) using a MFRC522 based RFID
 * Reader on the Arduino SPI interface.
 * When the Arduino and the MFRC522 module are connected (see the pin layout below), load this sketch into Arduino IDE
 * then verify/compile and upload it. To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M). When
 * you present a PICC (that is: a RFID Tag or Card) at reading distance of the MFRC522 Reader/PCD, the serial output
 * will show the ID/UID, type and any data blocks it can read. Note: you may see "Timeout in communication" messages
 * when removing the PICC from reading distance too early.
 * If your reader supports it, this sketch/program will read all the PICCs presented (that is: multiple tag reading).
 * So if you stack two or more PICCs on top of each other and present them to the reader, it will first output all
 * details of the first and then the next PICC. Note that this may take some time as all data blocks are dumped, so
 * keep the PICCs at reading distance until complete.
 * @license Released into the public domain.
 * Typical pin layout used:
 * -----------------------------------------------------------------------------------------
 *             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
 *             Reader/PCD   Uno           Mega      Nano v3    Leonardo/Micro   Pro Micro
 * Signal      Pin          Pin           Pin       Pin        Pin              Pin
 * -----------------------------------------------------------------------------------------
 * RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
 * SPI SS      SDA(SS)      10            53        D10        10               10
 * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
 * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
 * SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN         9          // Configurable, see typical pin layout above
#define SS_PIN          10       // Configurable, see typical pin layout above

MFRC522 MFRC522(SS_PIN, RST_PIN);  // Create MFRC522 instance

void setup() {
    Serial.begin(9600);     // Initialize serial communications with the PC
    while (!Serial);        // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
    SPI.begin();            // Init SPI bus
    MFRC522.PCD_Init();     // Init MFRC522
    MFRC522.PCD_DumpVersionToSerial();  // Show details of PCD - MFRC522 Card Reader details
    Serial.println(F("Scan PICC to see UID, type, and data blocks..."));

void loop() {
    // Look for new cards
    if ( ! MFRC522.PICC_IsNewCardPresent()) {

    // Select one of the cards
    if ( ! MFRC522.PICC_ReadCardSerial()) {

    // Dump debug info about the card; PICC_HaltA() is automatically called

I have recently purchased a RC522 RFID Module for my Arduino UNO. I connected everything, and started the IDE, downloaded the correct library, and ran the DumpInfo example program. The first time that I ran it, all went well, and when I swiped a card in fro, I recieved the correct data dump.

However, I started it up today, and reset everything, ran a new program to clear the Arduino, restarted my PC, and it still did not work. In the serial monitor it says that all is well, no error messages or anything. But, when I put a card in front of it, absolutely nothing happens.

Any help would be great!

  • Loose connection?
    – Majenko
    Jan 27, 2016 at 22:47
  • Definitely not, I made sure that all of them were well connected, and that would have returned an error in the Monitor if one wasn't communicating. Jan 27, 2016 at 22:54
  • Do you see the firmware number and so on when you run the sketch? Jan 27, 2016 at 22:55
  • Yes. It says Firmware Version: 0x92 = v2.0 Scan PICC to see UID, type, and data blocks... Jan 27, 2016 at 22:58
  • 1
    Yes, after that, I loaded the other program. Thank you for the Snarky remark. No, the issue isn't the programming, it's that the module is not resetting correctly after I restart my computer or it goes to sleep. As power is cut to the module, and then restored. I know it's not the program because I'm receiving the firmware version back from the module. Jan 30, 2016 at 5:28

3 Answers 3


Check your power supply. I've seen so many weird results from inconsistent/under powered circuits. It's worth a look.

What does your circuit look like? Are you powering the RFID reader from the Arduino or it's own source? Are the grounds coupled?

  • I'm powering it from the Arduino, and it's getting ample power supply, as it is sending and receiving data. The grounds are fine. Jan 29, 2016 at 3:31

If I am right then you have soldered the pins of the module yourself and I recommend you to desolder the pins and soldered them again.

I also used RC522 RFID Module with an Arduino and I faced same type of problem with the module. This way worked for me.


The first thing you could try is to increase the baud rate to 115200. I'm using a different library, and in the auth_read_write.ino sketch the Serial.begin() comments says "Read a fast as possible. There is a limit for how long we are allowed to read from the tags".

If changing the baud rate doesn't work, then have a look at this answer: RFID-RC522 not working, red led is on. It has a link to a different library which worked for me.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.