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
PART1: SPECIFICATION, MEET
REALITY
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.

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.
Session
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.
Q
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.
Rounds
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.
PART2: HIGH PERFORMANCE
HUMANS
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

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.

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:

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.