RFID ERROR: PCD_Authenticate() failed: Timeout in communication

Hello:

I bought an MRFC-522 for reading/writing tags via RFID.

Using the examples in the library I can read and write tags with no issue.

I would like to write tags with my phone instead of Arduino, but when I write the tags with any app I tried (NFC tools, Scan write, NGC writer, TAG writer MiFARE classic...) I get the following error message when tring to read in arduino:

"RFID ERROR: PCD_Authenticate() failed: Timeout in communication"

I have read a lot of post on this subject, and the suggested an autentification key is needed.

I doubt this is the issue, because I can read the tags with any app, so either they all share the same autenthfication key, or that info is not true...

Any one can help?¿

Thanks in advance.

I would believe what you have read.

Finally I have been able to read tags in arduino that been written by the app call" MIFARE classic".

I think the issue is coming from the low capacity of MRFC-522 and/or arduino to handle complex security tags...

The issue when using MIFARE classic app, is that you have to enter the data you want in HEX, so it adds another layer of complexcity....

I am wanting to do what you've done, write a record to a tag using NFC Tools, then read the record with Arduino code. In my case, I am writing a Wi-Fi Network record. I verify the record is readable using NFC TagWriter. But, when I try example MifareClassicValueBook, I am getting the following:

Card UID: A3 83 77 DD
PICC type: MIFARE 1KB
Authenticating using key A...
PCD_Authenticate() failed: Timeout in communication.

You say you got it to work using "MIFARE classic". Is that any different than the example "MifareClassicValueBook"? Which MFRC522 library are you using? I've tried four, so far, all give same timeout error using DumpInfo.

Hi, I'm using the latest library. I don't know about the example you are tring to use.

What I finally did, is that knowing the the manufacture+serial number of the TAG is unique, I stored the information in another place instead of the RFIDTAG....That way I don't have to write the RFID cards and then interpretate what's inside...

OK, thanks for info. I want my users to store their WiFi connections on a tag, using NFC Tools, or some std app, then swipe tag on my product then select the WiFi from OLED screen. I don't want a soft keyboard for WiFi pass entry, keeping it simple.

1 Like

you must write this function in void loop() that if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}

// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
Serial.println("card selected");

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.