RFID Arena


RFID Reading Performance

Testing the reading performance with an RFID mobile computer. The testing work an RFID engineer faces in his work. Text written by Viktor Candolin, Project Manager and SW Designer at Nordic ID.

Author: Viktor Candolin


My daily work routine, consisting mostly of coffee & coding, was put on hold this autumn when I agreed to partner up as the technical sidekick of Teemu Ainasoja. This meant visiting customers in the Atlanta, Washington DC and NYC region of the United States. We were of course most keen on showing off our entire family of new high-performance RFID products, but at the same time it was the first real hands on experience I have had with the new RFID products. During the last year much of what Nordic ID R&D has been doing can be seen as RFID and everything else. I have been responsible for 'everything else' for the Nordic ID Morphic. So I was fairly well acquainted with the soul life of a 3G modem, but the same could not be said for the Nordic ID Sampo and NUR-05W RFID module before the road trip.

The road trip was, as always, just what was needed. It is always good for an R&D person to get out from behind the monitors and see things from the perspective that matters, that of our customers'. It helps keep priorities correct when you know what the needs & problems of our customers and end users are. One particular question that remained after the trip is what would be the ideal settings for our products in real use cases and how much of an obstacle is the user to achieving that performance? Being in R&D we know fairly well the maximum number of tags per second it is mathematically possible for the RFID module to handle. But the spec sheet performance feels less convincing when standing in a room with tens of thousands tagged pieces of underwear and you are expected to deliver those numbers in person.

The above situation is also interesting because it is fairly close to a real world worst case scenario. The tags are very densely placed; there are easily 1000 tags in the reader's field at any one time. There is no cherry picking with the test setup; they hang as they hang, covering and interfering with each other. The clothes racks are made of sturdy metal, placed close to walls full of rebar. With this in mind we wanted to do two things; find the reader settings that work the best with this situation, and to find out how much of an impact the person using the reader has on performance. So, upon returning to Finland and still rather jetlagged we set up an artificial test that replicates the environment we saw in the field. In this first part we will look at the best settings for the Nordic ID Merlin Cross Dipole this kind of environment.


Tag -testing -clothes -rack


While we do not have tens of thousands of readily tagged clothes in the Software Center office, we can replicate the tag density and environment fairly easily. We did this using roughly two thousand UPM Belt tags laid across three metal frame tables so that the tags crisscross each other and the density is similar to the real world scenario.

The points of note in the test are:
1.There are lots of tags in a small area, about 2000 in a 1 by 3 meter area.

2.The tags are not ideally placed. They are on top of each other, turned every which way and the frames of the tables they are on are made of metal.

3. It allows us to test the same setup with different people and styles of scanning.

Then, onto discovering is the best configuration for the Nordic ID Merlin Cross Dipole with this setup.

A sense of sessions

There are a number of settings that have a major impact on how the RFID module operates. There are no good or bad settings, just suitable or unsuitable for the case at hand. I will go through the settings below with a minimum of technical jargon; you can skip this part if your dreams are Miller-8 encoded. The next part of this article deals with how the user impacts performance.

Transmission power

This one is fairly straightforward. The amount of radio power pumped into the air by the reader. In this specific case, we want all the power we can get. This is because the tags are really close together and partially obscure each other, so the more RF power we can get out there, the more tags have power to respond to our calls. Note that more is not always better, but in this specific case it is. What matters is radiated power, i.e. what actually leaves the antenna, not how much the RFID module puts out.

TX modulation

The possible settings here are ASK and PR-ASK. For the interested, the acronym stands for Amplitude Shift Keying and Phase Reverse Amplitude Shift Keying. ASK basically means that we convey data by shifting how strong the sent radio wave is, i.e. we shift the wave's amplitude.

To understand how phase reverse works, you need to understand that the radio transmits waves. The radio energy moves like ripples over water, but with radio waves we can change the phase of the wave suddenly. This means that the signal goes from being a wave peak to being a wave bottom without having the downwards slope in between normally expected. The physicists in the audience are politely asked to live with this simplification. This way we can for instance send a binary one by suddenly reversing the phase, and sending a binary zero by keeping the expected phase.

The advantage of PR-ASK is that it is more energy dense; more RF energy gets transferred to the tags, meaning they are slightly easier to read. But not all tags support PR-ASK, if it is supported it should be used.


The session concept is not very well described by its name, yet it is one of the most important settings. Basically there are four session types specified in the ISO 18000-6c RFID spec, session 0 through 3. The session setting is a tool for making inventory events easier to manage, and make them more likely to succeed. All tags have internal flags that are set to "I have not been inventoried" or "I have been inventoried". Or you can think of it like this but the flags are actually said to be set to A or B. So when you read that the session target is A or B, it means that only tags with the flag in that position will be inventoried. The flag is flipped automatically when a tag is inventoried. Depending on which session setting is used and the capabilities of the tag, the flag always flips back to A after a time if has been changed to B. It does not return the other way, A is the tags default state.

The advantage of this system is that it is easier to read lots of tags that are close to each other. When a tag is inventoried it will then be silent during further inventory rounds, thus allowing the reader to find more tags. The more tags that are inventoried, the more can be inventoried without them transmitting over each other and causing transmission failures (collisions). How long they stay inventoried is designated by two things, the session number and the tag manufacturer. The following list shows how the session number relates to the tags staying inventoried:

Session 0: Does not stay inventoried at all.

Session 1: Stays inventoried for ½-5 seconds.

Session 2: Stays inventoried for at least 2 seconds.

Session 3: Stays inventoried for at least 2 seconds.

Note that this table describes tag behavior when the tag is out of the RF field, it is no longer receiving power. While it is being powered, the specification says that session 0, 2 and 3 stays inventoried for an indefinite time. I assume that means it's up to the tag manufacturer, and can for instance be infinite (while powered). For session 1 the behavior is the same when powered and after leaving the RF field. In the case we are discussing here, it is fairly easy to understand how Session 2 or Session 3 will work far better than Session 0 or 1. In practice the tags we were using in this test keep their session 2 or 3 flag for at least 30 seconds.

Using a high session setting has consequences that must be kept in mind. First, you cannot use two readers at the same time with the same session 1/2/3 settings. You can use several readers with different session settings, or all on Session 0. The session flags are specific to the session in question, a Session 2 and a Session 3 inventory round can be done at the same time for the same tags. You cannot do a new inventory against the same session target before the tags have reverted back to the default state, or before you have manually reset the tags to that state. Session 2 and 3 must be used with reliable communication, because if the tag hears that it has been inventoried when in fact it has not, we end up with a tag that is not found and cannot be found as long as its session target lock is still active. So, onto transmission reliability.

RX decoding

Possible settings are Miller 2, 4, 8 and FM-0. Miller encoding is named after the person who invented it, and is a way to increase your chances of being understood but doubling the time it takes to say it. Simplified it's like repeating yourself when something really important needs to be said. Like saying "Launch, Launch, Launch" when commanding a rocket to be launched. If you and whomever you are talking to have agreed how many times you should say it, the chance of a miscommunication decreases greatly for every additional time you say it. The same is true for Miller Encoding. Miller 8 takes eight times longer to send the same data compared to FM-0, but it is millions of times less likely to arrive with an undetected error. Increasing the Miller encoding size slows communication down but increases transmission security. In the test case we are discussing here, the results were as follows.

FM-0: Not considered suitable for this setup at all, not used.

Miller-2: Consistently missed 20 to 40 of the two thousand tags on every read. No amount of additional reading would find these tags. This means the tags consider themselves inventoried, because of transmission errors.

Miller-4: Found the most tags the fastest. This setting seemed to be just the right balance of "secure enough" while not impacting communication speed. It could always find all findable tags if that was the intent, the likelihood of miscommunicated inventory status seemed very small.

Miller-8: Could always find all tags, if the time was taken, but not as fast as with Miller-4. This was probably because as it takes longer to talk to a tag, it is more likely that it is disturbed by other radio sources. In this test, therefore, this setting seems to be more security then what is needed.


The Q value is another setting where the name says absolutely nothing, and a simple explanation is hard to come by. The easiest way to say it is that Q tells the reader roughly how many tags we expect to be in the reading field at the same time. The Q value can be set from one to 15 in Nordic ID products, and there is an AUTO setting. So what does it actually control?

Imagine that we know we have 5 tags in front of us that we wish to read, and we know this before starting the read. There is then no sense in taking the time to listen for hundreds of answers. The Q value says how long we should listen for answers from tags. An inventory round goes like this in simplified terms:

1.Reader pumps out RF power and at the same time commands the Inventory to start. It communicates the number of timeslots available in which to answer to the tags.2. Reader keeps transmitting power and starts listening for answers.3. Tags transmit on a random timeslot within the number of timeslots available.4. If two tags transmit at the same time a collision occurs, the reader detects this. No other useful info is communicated when a collision occurs.

So as you can see from this way of operating, in our case with 5 tags on the table, something like 8 to 16 timeslots may be sensible. The chance of reading all tags in any single pass is pretty good with 8, while not listening for that many tags that we know cannot be there. So we would probably get all tags in two inventory rounds. The corresponding Q value to 4 timeslots is 2, for 8 timeslots it is 3. Q relates to the number of timeslots like this: Timeslots equals 2 to the power of Q. Here are some timeslots and their corresponding Q values:

2 timeslots - Q=1

4 timeslots - Q=2

8 timeslots - Q=3

16 timeslots - Q=4

128 timeslots - Q=7

256 timeslots - Q=8

512 timeslots - Q=9

Nordic ID NUR based RFID readers also have an AUTO Q setting. This senses the number of collisions during an inventory pass to determine if the Q value should be raised or lowered. We have so far never found a real world case where a fixed Q value works better than the AUTO Q setting. Always use AUTO Q is my recommendation.


The rounds value sets how many inventory rounds are done before the results are returned to the host application. While this is controllable, we have found that rounds 1 and Auto Q are the best settings for continuous inventory type applications. Keep in mind that even though rounds are set to one and the RFID module only does one inventory round, the higher level application issues the command back to back to achieve continuous inventory. Tags that were found in the last round remain silent because we use Session 2 or 3. All that can be found will be found with these settings. Also note that using a high Q value combined with a high rounds value will take a long time to perform. There will be lots of timeslots to listen to, and it will be repeated several times. In these cases regulatory constraints will cut off the reading session when the maximum on-air time is reached for the region in question.

The winning line

For this test, where we have lots of tags in close proximity, the best performing reader setup is:

TX Power: 500 mW

TX Modulation: PR-ASK (if supported by the tags)

RX Decoding: Miller-4

Session: 2 or 3, no difference in performance between the

Rounds: 1

Q: Auto

This concludes part one of this article. Hopefully you, like I, now feel that you now have an idea about what you are asking the RFID module to do when you tweak these settings. And should you find yourself in a situation where you are expected to inventory tens of thousands of pieces of unmentionables, you can at least do so with the confidence that your Nordic ID Merlin CD is configured optimally. In the next part of this article we'll take a brief look at how the user impacts performance.


In part one of this article we had a look at how the Nordic ID Merlin should be configured when reading tags in a very dense configuration, such as densely racked individually tagged clothing articles. In this part we'll look at how much of a difference the user can make in reading performance. The test setup is the same as in part one.

The evaluation criteria for the "best" reading style are speed and accuracy. Our initial assumption was that these are conflicting goals; better accuracy always means slower performance. Typically reading is done so that the user scans a particular area until the unit stops beeping, and then you move to a new area. This style of reading is what we call a precise scan, since that is what the user is aiming for. We wanted to find out if this is a good way to read for speed, accuracy or both. Or is there a different way to read that yields better results? Speed reading was done so that the reading session is stopped when no new tags are found for about a second. Accuracy reading was done so that the reading session is stopped when no new tags are found for about 10 seconds. Speed reading also differs in that it was done in two passes, first the entire area of interest is scanned at a rate of about ½ meters per second. Then we do the entire area again to find tags not found during the first pass. Precise reading attempts to find all tags during the first pass. All testing was done with the settings mentioned above.

Comparing reading styles

Graph -1


While the chart shows only four results, they are consistently repeatable. Surprisingly in this test setup, you are not more accurate when you try to be. The accuracy is the same when trying to be as fast as possible. Next we investigated differences in distance. Is it better to read from a distance and a bit slower, or really close and go faster?

Distance test, reading from 30 cm (1 foot) vs reading from 10 cm (4 inches) and under.

Graph -2

These results are three samples of the two different reading styles. The curves are consistent over several tests, so the results are a fairly reliable indicator that close and fast is the way to go in this dense tag case. There was no need to listen to the scanning sound, the Merlin read tags pretty much as fast as we were able to move (½ to 1 meters per second).

With this in mind, we performed several logged scans of the roughly two thousand tags in our test. Over the following week several persons were conscripted to do a scan for science. When the person had no prior experience of RFID inventory, we used these logged results as our "untrained" comparison. Those unfamiliar with this very dense setup, but familiar with RFID inventory in general are recognizable by the fact that their scan curve has the correct shape, although they are slower than our "trained" result (Untrained 1 & 2). The results were:

Graph -3

Trained 1 - 1992 tags in 36 seconds

Trained 2 - 1914 tags in 15 seconds

Trained 3 - 1983 tags in 22 seconds

Untrained 1 - 1880 tags in 36 seconds

Untrained 2 - 1993 tags in 67 seconds

Untrained 3 - 1905 tags in 65 seconds

Untrained 4 - 1906 tags in 80 seconds

Untrained 5 - 1996 tags in 77 seconds 

What have we learned?

Regardless of what the actual time to scan is, the shape of the "unique tags found" curve shows if your style of scanning is good or not. A good scanning style should use 50% of the time to find 90% of the tags, and the other 50% to find the remaining 10%. A curve shaped like this means the reader is working close to its maximum capabilities. In the cases where the curve does not maintain the same slope until 90% is reached, the user is the limiting factor. This style of scanning takes the most advantage from the previously mentioned session system.

Which brings us to the second interesting point, which is that taking your time is not always more accurate. The reason for this is that if you are too slow then the session system no longer helps you as much as it can. Tags start reverting back to their initial state and will again respond to an inventory query, thus blocking more faint tags.

This was a rather specific test, so how do these results apply when the setup varies? The following variations will have the following impacts:

- Lots more tags:

When the amount of tags is large enough so that you cannot feasibly scan them all before the Session 2 or 3 flag in the tag reverts back to its initial position, your results will begin to differ. The reader will start finding tags it has already read, which may prevent finding fainter and harder to read tags you have not yet found. If possible, try to partition your tags into 30 second batches. Scan whatever area or partition you can scan in 30 seconds completely, and then move on to the next partition. This will give you the most benefit of the session system.

- Less tag density:

If your tags have a separation of centimeters to tens of centimeters the close and fast reading style is no longer the best one. That style is needed to get RF power to closely packed tags. The best reading style will probably be to read further away, a foot or more depending on how sparsely your tags are situated.

There was pain, fingers crossed for gain

This concludes the second part of this article. I hope our experiments with the settings and reading style will help you should you face a similar situation. In the beginning of part one I mentioned that I started out being unfamiliar with Nordic ID's RFID products, as my responsibilities had been elsewhere. Now I have a fairly good understanding of what happens under the hood, and I hope I have been able to communicate some of that understanding to you.

12 comments on “RFID Reading Performance”

  1. Gravatar of Jessica SäiläJessica Säilä
    Posted 15 December 2011 at 16:34:23

    I believe the tags used in the test scenario were those used by Wal-Mart in their current RFID adoption for clothes.

  2. Posted 15 December 2011 at 22:52:00

    Thanks Viktor, great job and text!

    Just some comments on the sessions chapter, which came into my mind:

    I don't remember that I would have never run into a tag which has infinite persistence time with session 0 when in the RF field. I may be wrong but I would say that it's quite rare? (and as you mentioned, manufacturers may be able to adjust it)

    On the other hand I know that in certain circumstances the off-field persistence time for S2/S3 may be very long, even close to one hour! (again as you said, around 30-60 s is probably the most common)

    Interesting text, as said!

  3. Gravatar of leonardleonard
    Posted 16 December 2011 at 02:36:54

    Thanks for sharing your experience here.It's really a good teaching text for me.

  4. Posted 16 December 2011 at 10:18:12

    The persistence of the tags when in the field was something we looked into ourselves as well. The ISO18000-6c spec actually says it is indefinite, which means undefined, not infinite. So I have understood it as being completely up to the tag manufacturer.

    As you said, S2 & S3 can stay inventoried for a really long time. I think the more tags you have close together, the longer you would want the session persistence to be.

    Perhaps a good topic for a next article is the session persistence of different tags?

    You are very welcome!

    Best regards,

  5. Posted 20 January 2013 at 04:34:02

    Excellent approach and simple explanation of the reading, testing support the channel and RFID value added resellers could perform in order to test RFID in any environment not only retail.

    Thanks Viktor.

  6. Gravatar of Cevahir BegenCevahir Begen
    Posted 27 January 2015 at 21:29:44

    Excellent article !

    I have one question if somebody gives me any advise.

    when I read inventory I must get EPC and UserMemory at the same time. It works but the read range decreases significantly. How can I overcome this performance issue .

    I am using ATID 870. it works very well when I use only EPC with RSSI

    I need expire date of the product which is in the UserMemoryBank.
    (ATA SPEC 2000)

    any idea ?

    Thanks in advance

    Best Regards


  7. Gravatar of Suvi DalénSuvi Dalén
    Posted 28 January 2015 at 12:58:20

    Hi Cevahir,

    we can only suggest to take contact to the reader manufacturer as we are representing only Nordic ID devices. With our devices, that problem does not exist. For more information about our products, please visit www.nordicid.com .

  8. Gravatar of SamuelSamuel
    Posted 09 July 2015 at 15:31:48

    Can a UHF reader detect 4 tags arranged in the shape of a cross and separated by a distance of 3 inches simultaneously.

  9. Gravatar of Suvi DalénSuvi Dalén
    Posted 11 August 2015 at 08:59:19

    Hi Samuel,

    our engineer's answer is - yes, it can.

    br, Suvi

  10. Gravatar of Adan Adan
    Posted 08 September 2015 at 16:29:17

    Hi, Cevahir. Actually there is an issue with the User Memory Bank. You have to read EPC only if you dont want to sacrifice speed and acuracy.

  11. Gravatar of Tanuja KumbharTanuja Kumbhar
    Posted 19 May 2016 at 15:21:06

    Dear sir/mam,

    In our company we initialise security key in RFID cards with man power but it takes lots of time to initialise security key and quantity is not completed in one day so question is that is there

    any system to initialize security key automatically means once we puts security keys and it will initialize automatically which is time consuming ?

    if any system or alternative is available please revert me ASAP.

  12. Posted 05 January 2018 at 11:58:03

    You can make any type of video game quicker or slower by changing the speed via it. This device has fixed all its insects. It has modification symbol.

Post a comment

Keep in touch

Send me more info!
Send me a Newsletter!
Send me a Magazine!
Contact info