PN532 NFC RFID module V3 kits : Didn't find PN53x board


I’m trying to make my PN532 NFC RFID module V3 kits working with my Arduino Uno.

According to this manual to communicate with the Arduino in I2C mode I need to set the DIP switch like this : “Channel 1: ON, Channel 2: OFF”

Here is the wiring:

I’v tried with this lib and the Adafruit one

There is my code (it’s the iso14443a_uid sketch):

#if 0
  #include <SPI.h>
  #include <PN532_SPI.h>
  #include "PN532.h"

  PN532_SPI pn532spi(SPI, 10);
  PN532 nfc(pn532spi);
#elif 0
  #include <PN532_HSU.h>
  #include <PN532.h>
  PN532_HSU pn532hsu(Serial1);
  PN532 nfc(pn532hsu);
  #include <Wire.h>
  #include <PN532_I2C.h>
  #include <PN532.h>
  #include <NfcAdapter.h>
  PN532_I2C pn532i2c(Wire);
  PN532 nfc(pn532i2c);
void setup(void) {


  uint32_t versiondata = nfc.getFirmwareVersion();
  if (! versiondata) {
    Serial.print("Didn't find PN53x board");
    while (1); // halt
  // Got ok data, print it out!
  Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX); 
  Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC); 
  Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
  // Set the max number of retry attempts to read from a card
  // This prevents us from waiting forever for a card, which is
  // the default behaviour of the PN532.
  // configure board to read RFID tags
  Serial.println("Waiting for an ISO14443A card");

void loop(void) {
  boolean success;
  uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };  // Buffer to store the returned UID
  uint8_t uidLength;                        // Length of the UID (4 or 7 bytes depending on ISO14443A card type)
  // Wait for an ISO14443A type cards (Mifare, etc.).  When one is found
  // 'uid' will be populated with the UID, and uidLength will indicate
  // if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight)
  success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
  if (success) {
    Serial.println("Found a card!");
    Serial.print("UID Length: ");Serial.print(uidLength, DEC);Serial.println(" bytes");
    Serial.print("UID Value: ");
    for (uint8_t i=0; i < uidLength; i++) 
      Serial.print(" 0x");Serial.print(uid[i], HEX); 
    // Wait 1 second before continuing
    // PN532 probably timed out waiting for a card
    Serial.println("Timed out waiting for a card");

There is my output


Thanks for help :slight_smile:

Hello SebDominguez,

Do you find any solution for this problem? I have the same problem with Arduino MEGA.

Hello, Developers!

I found the solution: Connect the pin IRQ to Arduino pin 2. :o

very easy and all is ok.

Excuse me fidodido18.

Do you know how I should connect my PN532 NFC RFID module V3 by I2C mode or HSU mode on a NodeMCU board?? and the libraries that I need to detect it on Android phone.

and the libraries that I need to detect it on Android phone.

Your Android phone is NOT going to detect the presence, or absence, of hardware attached to some other piece of equipment.

It would be like your phone trying to determine if I have a printer attached to my PC.

Same problem as me,
Could you please share wiring diagram for "pin IRQ to Arduino pin 2"