Grove NFC reads NFC tags only once

Hi there,

I’m using the Grove NFC with an Arduino Uno 3 (with the software UART). I have 5 brand new NFC tags with an NXP Mifare Ultralight NTAG213 chip inside.

When I place a tag on the antenna, the example code to read an NFC tag shows the tag information once in the serial monitor and then never again. Neither removing the tag and putting it back on nor re-powering or re-programming the Arduino helps anything. If I place another tag on the antenna, I get the same behavior: Scanned successfully once and then never again.

The tags still work fine with my smartphone app - I can read them and write data without any problems.

Is there any way to debug what is going on?

Thanks & kind regards,
Gerhard

I didn’t understand your question, you tested according to our Wiki document, will there be any problem?

Hi,

thanks for the reply.
Yes I followed the wiki document step-by-step. As you don’t understand my question, let me rephrase it:
After setting up the system (Arduino + Grove NFC) according to the wiki, I put a NXP Mifare Ultralight NTAG213 on the antenna. The serial monitor shows the ID information of the tag once, but then no more - it just says “Scan a NFC tag” every 5 seconds and that’s it.
When I took another tag, same behavior.

However, in the meantime I found a possibility to switch on debug prints in the library. With this I found, that this behavior described above was just by accident. When it says “Scan a NFC tag” there’s some bytes transmitted and then it says “checksum error”.
But then sometimes it suddenly showed more information, sometimes even the full ID stuff and any NDEF info stored in the tag, but the data it showed was not always the same. Often some bytes where wrong.

These tags I have work perfectly with my smartphone.

Is it, that the NFC communication with the Grove NFC is that unreliable? Or do I have a broken specimen?

Got it. Have you tested other tags? This is a very old NPC chip, for some new tags will have compatibility or stability problems. @gpetrowitsch

Thanks for the reply!

Currently I have only this type of tags. I tested 2 of them with the same result.

Which chip is very old? The PN532 on the Grove NFC module or the NTAG213 in my tags?
Both are NXP chips. I expect they should work together, shouldn’t they?

In the meantime I ordered another Grove NFC module. Let’s see, if that one behaves differently when it arrives…

In the meantime I got another Grove NFC module. Unfortunately it doesn’t behave any different.

Actually both modules don’t even create an NFC field (which you can easily detect with a scope by looping the scopes GND wire back to the tip and holding this little loop over the antenna with using a high vertical resolution on the scope (100mV/div)).

Both modules are also often not even detected by the Arduino. If I reset it 10x, it occurs, that the NFC module is detected only once, sometimes more often, sometimes even less.

The UART Rx signal on the NFC module looks good on the scope - no glitches. Anyway I guess, that the communication between Arduino and NFC module is unstable, which is why the NFC chip isn’t setup properly and therefore no NFC field is generated.
I already tried other ports on the Grove base board (of course with adapted setup in the Arduino software). It doesn’t behave any different.

Are there any known problems with the good old Arduino Uno R3?

Saying that it came to my mind to try I2C. So I scratched the default connections on the back of the board and connected I2C.

Now it works perfectly and reliably.

So obviously the Grove NFC can’t communicate reliably when software serial interface is used - at least I can say that for the Arduino Uno R3.

Thanks for sharing, @gpetrowitsch