RFID RC522 reliability of comms when dumping card info

I have an RFID-RC522 board from ebay and am testing with the library by Miguel Balboa.

I can read the NUID on the card and fob fine.

However the dumpinfo example seems a little unreliable.

I can read the entire contents of the Mifare 1kb card and fob about 10% of the time.

The rest of the time I am getting these errors:

61 MIFARE_Read() failed: The CRC_A does not match.
60 MIFARE_Read() failed: A MIFARE PICC responded with NAK.
59 PCD_Authenticate() failed: Timeout in communication.

The initial card data with NUID, SAK and PICC type always seems to read ok.

I have also succesfully written data to the card and fob but the dump seems a bit flakey.

I am running on a Mega2560, so I'm using the 3v3 output to power the board and obviously 5v logic on the SPI interface.

Is this just down to not using level shifters?

There are quite a few connection diagrams on the net without any level shifting.

Connections are just 100mm long jumpers.

I am running on a Mega2560, so I'm using the 3v3 output to power the board and obviously 5v logic on the SPI interface.

The maximum current consumption of the MFRC522 sums up to about 159mA according to the datasheet. The 3V3 regulator of the Mega2560 provides 150mA, so in some situations the power might be not sufficient.

5V to the logic pins is definitely out of the specs. It might be no problem as your board may have level shifters but as you failed to provide a link to the boards schematics it's up to you to check that.

pylon:
The maximum current consumption of the MFRC522 sums up to about 159mA according to the datasheet. The 3V3 regulator of the Mega2560 provides 150mA, so in some situations the power might be not sufficient.

5V to the logic pins is definitely out of the specs. It might be no problem as your board may have level shifters but as you failed to provide a link to the boards schematics it's up to you to check that.

Will check that the 3v3 isn't dipping, during the dump.

All the wiring exmples I've seen, including the docs that came with the library, use the Arduino Uno/Mega 3v3 output and wire direct to the 5v logic, but I have some level shifters I can try.

I don't have a schematic for the board but it's just the generic chinese board you see all over ebay etc.

More experimentation seems to show that the reader is sensitive to the way the card is presented. Approaching the reader antenna slowly gives better results than slapping the card directly onto the antenna area of the pcb.

It also appears to read better with the card at a distance of 20mm and no closer.