RFID RC522 Communication Failure??

Hi Guys.
I am student from Vietnam
I received a RFID Module from my friend. I have used RFID from link: GitHub - miguelbalboa/rfid: Arduino RFID Library for MFRC522
I have complied and download a example from this libary. I tried with DumpInfo.
But It said that: Communication Failure?

I use Arduino Mega.

here is pinout:
RST------------5
SS-------------53
SCK------------52
MOSI----------51
MISO----------50



I changed SS and RST Configure follow this:

#define RST_PIN		5		// 
#define SS_PIN		53		//

Here is my full code:

/*
 * ----------------------------------------------------------------------------
 * This is a MFRC522 library example; see https://github.com/miguelbalboa/rfid
 * 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		53		//

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("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("MFRC522 Software Version: 0x");
	Serial.print(v, HEX);
	if (v == 0x91)
		Serial.print(" = v1.0");
	else if (v == 0x92)
		Serial.print(" = v2.0");
	else
		Serial.print(" (unknown)");
	Serial.println("");
	// When 0x00 or 0xFF is returned, communication probably failed
	if ((v == 0x00) || (v == 0xFF)) {
		Serial.println("WARNING: Communication failure, is the MFRC522 properly connected?");
	}
}

what wrong? Please tell me!
Thanks for reading

Anybody help me??

Hello!

Please try this code:
note the pinMode(SS_PIN, OUTPUT);

void setup() {
pinMode(SS_PIN, OUTPUT);
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..."));
}

Good luck!

Carrera

I am having the exact same problem :confused:

Carrera:
Hello!

Please try this code:
note the pinMode(SS_PIN, OUTPUT);

void setup() {
pinMode(SS_PIN, OUTPUT);
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..."));
}

Good luck!

Carrera

I got this error after including the SPI.h and MFRC522 libraries and setting the SS pin to 10 (as I am using Arduino UNO):

Arduino: 1.6.5 (Mac OS X), Board: "Arduino Uno"

sketch_sep25b.ino: In function 'void setup()':
sketch_sep25b:10: error: 'mfrc522' was not declared in this scope
sketch_sep25b:11: error: 'ShowReaderDetails' was not declared in this scope
'mfrc522' was not declared in this scope

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.

Could it be a library installation issue?

Hi guys!

I have the same issue...and search a lot about a solution.

Then I finnaly decided to soldering the contacts in to reader...

So, after this, I got success!

do you have solve this problem @xaxa9ztb

i have the same problem, i don't know how to solve it plz give me a help

I had a same issue, Is just a proper connection problem, Just solder the given bug strips to RC522 module and connect it. Enjoy with it :slight_smile:

Hi,

Have you tried with another RFID card/tag?

If still not resolve, it should be caused of reader device (all of them from China and the quality is not guaranteed.

Regards,

I was getting the same error whilst using a cheap Chinese breadboard, I tried soldering the connections instead and this fixed the communication error :slight_smile: