Hello,
I have an RC522 I got direct from China, and it does not seem to work. I have tried multiple libraries, multiple different programs, have checked and redone the wiring dozens of times, changed breadboards, usb cables, and even arduinos, to no avail.
So far, I've had the most success with Micheal Balboa's Library (GitHub - miguelbalboa/rfid: Arduino RFID Library for MFRC522 I'm using the DumpInfo Sketch. It seems to connect to the RC522, as when I start the program I get this :
Firm to see UID, SAK, type, and data blocks...
Firmware Version: 0x92 = v2.0
Scan PICC to see UID, SAK, type, and data blocks...
I have tried the cards that came with the device, cards that I got from a previous RC522 that arrived broken, and cards I got from hotels. I have both the small round keychain cards and the white credit card sized ones, and neither will read. I've read forum post after forum post, and no solution has worked so far. I'm tearing my hair out on this one, and appreciate any help I can get.
Thank you for reading.
Could be so many things. What board from China? There is certainly more than one. You said one arrived broken. Maybe this one suffered the same fate? Wiring diagram and sketch is missing from your post?
Just so we can all try to keep our hair, maybe you could...
Tell us what Arduino board you are using now.
Send a diagram and possible picture of how you have it wired now so everyone can see to help.
Post your current sketch (With code tags).
I am sure you will get more help this way.
It's an RFID-RC522 that I bought from china. I'm using an arduino uno, and the only thing it's connected to is the RC522. I followed the wiring diagram in this sketch:
/*
* --------------------------------------------------------------------------------------------------------------------
* 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/101 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>
constexpr uint8_t RST_PIN = 9; // Configurable, see typical pin layout above
constexpr uint8_t 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, SAK, 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));
}
I hope this helps you understand my problem.
Still a lot of MRFC522 card makers from China. Look at the library, I would start by adding a self test call in setup.
if (mrfc522.PCD_PerformSelfTest()) Serial.println("Passed Self-Test");