NPX RFID RC522 Not responding


I am using RFID for the first time.

My Hard is

Arduino UNO R3 original,
RFID RC522 with NPX Chip, 3,3 Volt
Wiring as described in ino file, triple checked.

Ide 1.8.12
#include <MFRC522.h> from Balbuena


 * --------------------------------------------------------------------------------------------------------------------
 * 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:
 * 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           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         9          // Configurable, see typical pin layout above
#define 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()) {

	// Select one of the cards
	if ( ! mfrc522.PICC_ReadCardSerial()) {

	// Dump debug info about the card; PICC_HaltA() is automatically called

When sketch starts, answer is:

Firmware Version: 0x92 = v2.0
Scan PICC to see UID, SAK, type, and data blocks...

When I pass card or tag, nothing happens.


A. I am aware of difference in logic level voltages, but I know that NPX chips in this config tolerate 5 VDC instead on 3.3 VDC.
NPX datasheet has only the +B feed voltages but says nothing about max Logic Level limits.

B. All the package (RFID, card, tag) came together from an Amazon kit, I suppose they are compatible.
No voltage shifter came in that package.

C. Just for testing purposes, I did RESET removing, one at a time, this cables:


Total 5 tests, always the system responded:

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

This behavior makes me think that cables, breadboard and RFID board have at least continuity,

When I restore the missing cable in place, answer is the same as before:

Firmware Version: 0x92 = v2.0
Scan PICC to see UID, SAK, type, and data blocks...

Thanks for your help,


Still working on this,

After reading a lot in the web, I would try voltage dividers to drop 5 Volt Logic levels out of Arduino to 3.3 Volt to be read by 552.

Seems to be that 3.3 volt should trigger Arduino as well as 5 Volt when received. And now in lockdown is impossible to get voltage shifters, but I have resistors !


I could not find any scheme.

Any help or reading about this ?

Thanks a lot,

simple way may worl: Try 1k Serial reistors in the comm.lines.
..Or make full voltage dividers

Thanks for your answer,

I think that from the five comm lines, only four are read by the RC522 3.3 volt slave.



Need to be connected via voltage divider resistors, for instance 510R to the line then 1K to ground, to shift down from 5 to 3.3

The fifth line (MISO) is at 3.3 volt in the slave, but this can be connected directly to the PIN12 in UNO, as it will read 3.3 volt as a HIGH condition.

Is this scheme right ?

Thanks so much

Yes. (I'd double those resistor values: 2k2 / 3k3)