Elechouse PN532 NFC Module V3 for Arduino etc.



  • I, too, stops on the line nfc.begin(); if disconnect board or select another pin - Didn't find PN53x board. Connect to I2C. SPI don`t work too.

    hardware\arduino\avr\libraries\Wire\utility\twi.c

    uint8_t **twi_writeTo**(uint8_t address, uint8_t* data, uint8_t length, uint8_t wait, uint8_t sendStop)
    {
     . . . . . . . . . . . . . . . . . . . 
      // wait for write operation to complete
      while(wait && (TWI_MTX == twi_state)){
        continue; //**stops here**
      }
      
      if (twi_error == 0xFF)
        return 0;	// success
      else if (twi_error == TW_MT_SLA_NACK)
        return 2;	// error: address send, nack received
      else if (twi_error == TW_MT_DATA_NACK)
        return 3;	// error: data send, nack received
      else
        return 4;	// other twi error
    }
    


  • @Lokki , thanks for the hint. I've tried the whole range from 9600 up to 250000, but the result is the same.

    @Sergey , I think, that we both have the same issue, I've also checked the twi.c and my intention was that my code stopped on the same line. What the hell? Has anybody better understanding of the I2C protocol? Maybe the NFC shield is absolutely not responding to I2C protocol? But, I've 3 NFC shields of the same type but ordered from 3 different shops. The result is the same.... It's very hard to imagine, that all 3 shields are wrong, so the question is, what are we doing wrong?!



  • @Pingi Hi. I think you should write about this problem on stackoverflow. Maybe Michael Roland spots your question and helps you, he is quite good in NFC things! Dont forget to come back with the solution to this forum ;)!



  • Try the same that I did! Read my previous reply. I made it work.



  • @Javier, thanks for the hint. I did not understood all you tries, but I've verified the followings already:

    • resetting arduino
    • changing voltage source from 5v to 3.3V

    What I do not understand is:

    • removing firmware lines of code


  • Has anyone worked with this module on raspberry pi?!
    I just tried i2c connection, the raspberry pi is able to detect the device, but still I don't know which library will work. Please can someone help?!



  • Hey guys, found this Thread via google. I have exactly the same issue with a Arduino Nano and ElecHouse V3 Board. I have 3 boards ordered over an Aliexpress dealer.

    • wired via i2c
    • 3,3V used
    • switch set to 1/0 for i2c
    • downloaded the libraries from elechouse github
    • power LED on board is on
    • used demo code from elechouse (and the pieces posted above)
    • removed all unneeded code related to SPI and Serial
    • also tried with 2 additional 10k pullup resistors on I2C

    -> same problem on all 3 V3 Boards - the code hangs on "nfc.begin". I have added a 2nd serial print "Hello" after "nfc.begin". This Hello isn't printed, only the first one. So it definatly hangs on this point.

    If I disconnect GND from board on the "Hello" point I get this output (Debug is enabled on PN532_debug.h):

    Hello!
    write: 02
    wait for ack at : 9101
    Time out when waiting for ACK
    Didn't find PN53x board



  • Tried an other Arduino Nano - it works. So maybe the I2C Pins or smthg else was bricked on the Nano.



  • @Pingi Some examples code have this lines of code:
    I commented because the library could be bad.

    void setup(void) {
      Serial.begin(115200);
      Serial.println("Hello!");
    
      nfc.begin();
    
    //  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);
    


  • I have the same problem.

    I have my pn532 v3 connected to my arduino mega via i2C.
    But I only get the "Hello" message trough the Serial Monitor.
    As suggested by Waldi the programm seems to get stuck at nfc.begin().

    does anyone have a fix for this problem?



  • @Lokki Hello sir. I have been trying to make my RFID work but with no success. I copied and pasted your previous codes, as I am very very new with PN532. May I know what could be the concern if as I run the program, it only stops on 'Im a Car!' or to @shagun_8 's code 'NFC Tag Writer'. Please help. Thank you


Log in to reply
 

Looks like your connection to NFC Ring Forum was lost, please wait while we try to reconnect.