MFRC-522 and Arduino Uno

Alright, so despite many vids and tutorials on the internet , I can’t just make my RFID module work. When I run the “dump info” program, the mfrc-522 doesn’t read my MiFare 13.56MHz card and keychain. When I run the code, I get this everytime on serial monitor:

MFRC522 Software Version: 0x0 (unknown)
WARNING: Communication failure, is the MFRC522 properly connected?
Scan PICC to see UID, type, and data blocks…

I am running the following code (Dump info) which came as an example with the library:

/*
* ----------------------------------------------------------------------------
* This is a MFRC522 library example; see GitHub - miguelbalboa/rfid: Arduino RFID Library for MFRC522
* for further details and other examples.
*
* NOTE: The library file MFRC522.h has a lot of useful info. Please read it.
*
* Released into the public domain.
* ----------------------------------------------------------------------------
* 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.
*
* 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 5 //
#define SS_PIN 10 //
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**
** ShowReaderDetails(); // 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()) {**
** return;**
** }**
** // Select one of the cards**
** if ( ! mfrc522.PICC_ReadCardSerial()) {**
** return;**
** }**
** // Dump debug info about the card; PICC_HaltA() is automatically called**
** mfrc522.PICC_DumpToSerial(&(mfrc522.uid));**
}
void ShowReaderDetails() {
** // Get the MFRC522 software version**
** byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);**
** Serial.print(F(“MFRC522 Software Version: 0x”));**
** Serial.print(v, HEX);**
** if (v == 0x91)**
** Serial.print(F(" = v1.0"));**
** else if (v == 0x92)**
** Serial.print(F(" = v2.0"));**
** else**
** Serial.print(F(" (unknown)"));**
** Serial.println("");**
** // When 0x00 or 0xFF is returned, communication probably failed**
** if ((v == 0x00) || (v == 0xFF)) {**
** Serial.println(F(“WARNING: Communication failure, is the MFRC522 properly connected?”));**
** }**
}

I also tried with other mfrc-522 libraries out there but still got the exact same thing.I also tried with reset pin as 5 and 9 (obviously changing the code accordingly ) . I have the exact same connections as mentioned in the beginning of the dump info code.

Is there any good soul on the internet which can help me out with this thing? :confused:

Which Arduino board are you using ?

Arduino UNO , to be specific DCcduino Uno (clone)

In fact, I am using UNO just to test and see if the mfrc-522 is working. If it works, I would add it into my main project which uses Arduino mega 2560 .

I know that you say that your wiring matches that described in the library but can you please spell out exactly how you have the RFID reader wired to the Arduino ?

UKHeliBob:
I know that you say that your wiring matches that described in the library but can you please spell out exactly how you have the RFID reader wired to the Arduino ?

MFRC-522 Arduino UNO

3.3 V 3.3V
GND GND
RST 5( Also tried 9)
IRQ ------
MISO D12
MOSi D11
SCK D13
SDA/SS D10

They sound OK assuming that the clone board really matches a Uno and that you have got it wired as you describe. I have a no name RFID card using those pins on a genuine Uno and it works fine. Have you tried using the equivalent pins on the ICSP header ? See Uno pinout

UKHeliBob:
They sound OK assuming that the clone board really matches a Uno and that you have got it wired as you describe. I have a no name RFID card using those pins on a genuine Uno and it works fine. Have you tried using the equivalent pins on the ICSP header ? See Uno pinout

where would be the reset pin then?
D5 as defined in code or one of those ICSP headers at the right?

UKHeliBob:
They sound OK assuming that the clone board really matches a Uno and that you have got it wired as you describe. ? See Uno pinout

yeah pretty sure about the connections and the board…cuz I tried working with this module and the same arduino a while ago and it worked perfectly…but now, I can’t just come up with the same result using the same arduino and same module…don’t remember if I did anything special the last time :confused:

Check the actual wires very carefully. It is not unknown for a plug or socket to separate from the wire.

where would be the reset pin then?

On a digital pin as defined in the code.

UKHeliBob:
Check the actual wires very carefully. It is not unknown for a plug or socket to separate from the wire.

I have connected male-Male with Female-Female Jumpers as Uno has sockets where the male goes and rfid module has headers where the female goes.

In other words ,it goes like:

Arduino UNO---> male-male---> female-female---->rfid module

I have checked the connections, they are according to the library. Do you think there might be a connection issue and I should go for a nice and clean solution using a breadboard?

Keep the number of connections to a minimum however you do it. Can you borrow another Arduino and/or RFID reader from someone ?

UKHeliBob:
Keep the number of connections to a minimum however you do it. Can you borrow another Arduino and/or RFID reader from someone ?

I have 3 UNOs and a Mega . Tried them all , nothing different. For the mega , I used the pins as mentioned in the code.

However, I am afraid that MAYBE the first time I used the module , I may have tried the 5V .I would have got the expected results that time but due to 5V it may have fried my module and this time its not working...

Any suggestions how I can check if its working or damaged? The led on the module turns on when I connect it to any arduino.

It does sound as though the RFID unit is dead, or at least brain dead.

@UKHeliBob yeah I think something is wrong with rfid, ordered another one over the night....Thanks a lot for the replies and the help!