Showing results for 
Search instead for 
Did you mean: 

NFC reading distance has a dead spot

Associate III


I have a new PCB design using the ST25R3918 chip.

The application is quite simple: An NFC tag (sticker) identifies a consumable in a machine.

The PCB/NFC reads the tag to check simple data.

The distance from the NFC coil to the tag is fixed in the machine, 15mm +/- 5mm.

In free air, I have a reading distance of appr. 50 mm, very stable. Great!


My problem is in the machine:

The NFC tag is mounted on the outside of a bag-in-box system.

The bag is coated with aluminium. Not good, I know...

6 mm cardboard makes a distance to the aluminium bag, so that we have a max reading distance of app 30mm.

This is actually OK.

BUT: There is a "dead spot" somewhere in the middle of the reading distance.

The spot is like 1-2 mm wide. Very little difference can make it work as a charm, or just fail.

See below.

I don't see this dead gap when the tag is not on the bag, so the problem is close related to the aluminium bag under the tag.


Why does this dead spot happen?

My theory is that the PCB/GND and the aluminium bag forms a capacitor. When the distance is "correct", the center frequency of this "filter" eats all the 13,56MHz energy, and reading is impossible.


Is there a way to "tune" the RF in the ST25R3918, to be able to change the tuning if the reading fails, and in that way "move" the dead spot to another distance?

Thanks for any ideas!





Accepted Solutions

Hi Kaare,

I think we would be able to use Pulseview. If you could attach traces here, would be interesting for us. Please also include the IRQ because it helps a lot for navigating the traces.

In the trace I can see that ST25R3918 does detect collisions during anti-collision where I presume there shouldn't be any. Things to look/try:

  1. Look at RFI voltage level, verify it to be in the correct area.
  2. Switch to I/Q demodulator: Inside your analog config table for A106 RX change: 
    ST25R3916_REG_RX_CONF2,   0xFF, 0x2D​


    ST25R3916_REG_RX_CONF2,   0xFF, 0xED​

    This may provide some more noise resistance.

  3. Change collision level setting:
    ST25R3916_REG_CORR_CONF1, 0xFF, 0x51​

    from 28% to 53%
    ST25R3916_REG_CORR_CONF1, 0xFF, 0x53​
  4. Don't use separate collision setting (corr_s6): Remove "Poll NFC-A Anticolision setting" from analog config.


BR, Ulysses

View solution in original post

Travis Palmer
ST Employee

Hello KKjel.1,


This is a quite interesting phenomena. 

First I would like to mention that there are special tags to work in a metallic environment. Also placing a ferrit sheet at the inside of your box could improve the situation. 

From your sketch, i see that there should be still some distance between aluminium bag and tag.

If you want to debug it, i would suppose to add a spy coil close to the tag and close to the reader.

In this case, a two loop wire wound antenna connected to the high impedance probe of the scope should be enough.

You should then clearly see, what is the difference between z=0, z=deadzone, z=max (30mm?) and can compare with the free air behavior.

you should specially look at:

  1. Magnetic field amplitude at the reader and tag spy coil (also compare what is the amplitude when communication stops in free air => minimum field strength the tag requires for operation)
  2. Back scatter coming from the tag, who is stopping to communicate in z=dz and z=max (this would hint if your system has a problem with reader sensitivity or power limitation)
  3. Wave shapes coming from the reader (if there are strange shapes while communicating the tag may wrongly decode the reader signal, re-tuning of the antenna might help here).

In your question you have been talking about "Very little difference can make it work as a charm, or just fail.".

Are you referring here to x-y placement or the z distance? In your drawing, reader and tag antenna are the same size. Typically the reader antenna is bigger (e.g. 1.5x) than the tag antenna. This ensures that the tag antenna integrates only the magnetic field inside the antenna.

Looking at the opposite scenario - the tag antenna is bigger than the reader antenna -  the tag would integrate the inner and outer magnetic field from the reader. In this case the outer magnetic field would cancel parts of the inner magnetic field. Metal (or aluminium) environment could weaken the magnetic field. The remaining field (=induced voltage) could be below the tags activation threshold. (bullet #1 from the list above).

The ST25R3916(B) features AAT. It could be used to re-tune the antenna in case the antenna amplitude will change and no tag could be found. It does so by using voltage controlled capacitors (~15-20 cent per piece). 

We did AN5322 ( to show the principle of this feature.

For me, this would only be a solution, if you find out, that the issue is caused be de-tuning of the antenna and it cannot be solved by static re-tuning. 

It would be nice if you keep us (the community and myself) informed and let us know the outcome of your debugging and how you solved the problem. 

I might not be able to replay to further questions until mid of may, but one of my colleagues will take care 🙂


BR Travis



Hi Travis

Thanks for all your input. 

Special tags for metal surfaces

These are tested, but this is no good: The max distance is very poor. They can be used if we must place the tag directly on metal surface. But we have ~6mm air from tag to metal surface. In this case, the normal tags outperforms the metal tags 10 times.

Tag size:

I have tested several different sizes, but the best result is with the tags with almost same size as the coil on the PCB. I have tested tags which are half the size, but the max distance is not good, and the blind spot is still there.

I have also tested credit card size tags. They work great in free air, but because of the layout of the machine, it does not fit in the machine.

OK vs FAIL distance (dead spot area):

In my tests, I continously read the tag. I then lower the PCB slooooooowly towards the tag, and then I can see when the reading fails.

When it fails, I can fix the PCB, and it will just keep failing. If I move it 1 mm up, it starts reading with no errors at all.

The dead spot area is a few millimeters.

Test signal with spy-coils:

I can do this test in a couple of days, hopefully, and see what this shows. Maybe it can help to see if the antenna circuit can be tuned better.


br Kaare


Travis Palmer
ST Employee

Hello Kaare,


many Thanks for the update.

I expect that the tests with the spy coil reveal where the issue is coming from.

BR Travis

Hi Travis

We have now made some tests, with spy coils.

Signal from spy coils are sampled, and distance from NFC coil to NFC tag is slowly changed, until communication stops.

There is not much difference to see: The signal at the coil is maybe 15-20% higher amplitude.

From the screenshots, it looks like the tag responds to the TX signal from the ST25, but the communication is not accepted/failed.

Can you conclude anything from these screenshots?

The first one is with OK communication, the second one fails:

Yellow = Spy coil close to tag

Blue = Spy coil close to coil







Hello Kaare,


from the scope shots i cannot see anything being obviously wrong.

The amplitude on the tag spy coil is reducing a bit, but the tag is still responding => sufficient power.

Next step would be to generate some digital traces of the SPI using a saleae or digiview digital analyzer.

There we could exactly see what the problem would be.


BR Travis

Hello Kaare,

which software are you using for these tests? In case you are not using ST's RFAL: Which analog configuration are you using for you tests? I assume the tag in question is NFC-A(ISO14443-A) at 106kbps only.

If using the chip without any additional analog configuration I could expect such effects as the configuration after startup works somehow for NFC-A but for sure not perfectly.

BR, Ulysses

Hi Travis

We have made SPI traces in both situations. At first glance, there are major differences.

Can you read .sr / .pvs file formats?

We use PulseView, which is free to use, and works great.

Or would you like me to write down the commands/SPI communication in plain text?


Screenshot from PulseView:



Hi Ulysses

Yes, we use RFAL, NFC-A @ 106 kbs.

We have used the RFAL and examples almost out of the box. Just added our own simple application around it.

The reading distance has been great from start, so we did not expect that it was necessary to do any tweeks.


What kind of analog configuration should we maybe tune?




Hi again

I have tried to zoom in on the SPI traces, but there is A LOT of communication going on...

To simplify, I have tried to focus on the SPI FIFO commands, and compare the sequence when communication is OK, to the situation where we are in the blind spot, and detecting tag fails:

See the screenshot below (I hope you can read it).

NOTE: I have not looked deep int the user manual, to check all commands.

For now, I have just managed to find some differences in the SPI communication.

Some comments on my observations:

- The first few FIFO commands looks the same (green)

- Then, of some reason, the the W+R in line 10+11 is not exactly the same

- After this, the OK scenario ends with som commands, and then repeats later. But the FAIL scenario tries 4 times with no success.

- After 4 tries, the FAIL scenario seems to start again, but it does not continue the 4 tries as earlier.


I will try to investigate more, but there is so many commands and possible analog tuning which would take me forever to fully understand. So I hope you Experts can help  🙂