top of page
  • admin

How to Tune RFID Configurations Using Session and Modulation Parameters

One might think that using RFID is just a matter of plugging in a reader and off you go. But in reality, different RFID configurations have dramatically different effects. Understanding the basics can help you choose the right configuration for your application’s success.

Two major use cases for RFID

Human ingenuity being as amazing as it is, there are all kinds of applications for RFID, but two major kinds of uses we’re going to look at are inventory and presence:

  • Inventory: you want to find out what you have. You might have a few things or a lot of things sitting on a rack, but regardless you want to know what’s there (or what’s not there). Often, in this scenario the goal is to maximize the number of unique tag reads. We’re in no great hurry to read the tags as fast as possible, and we don’t need to read a given tag more than once, but we do want to read as many different tags as possible.

  • Presence, location: you have things that might be in motion and you want to know where they are or when they move from one zone to another, or even if they’re coming or going. You might need to track an employee as he moves from one zone to another, or a product in an assembly line as it moves from step to step. In these applications we need to know when the thing moves into or out of range of a reader as soon as possible. We’re not interested in every possible tag read on the fringes of readability, but in knowing when a tag moves definitively into and out of range of a reader. While it’s in range we’ll read it repeatedly, more and more frequently as it gets closer to the reader, and less and less frequently as it moves away from the reader.

How should one choose the best configuration for these differing aims? We ran a bunch of tests to show the effect of different configurations. If you’re interested in the nitty gritty, read on, otherwise skip to the Summary section.

Testing and analysis

RFID knowledge assumptions

This article assumes that you have a basic working knowledge of RFID: how RF causes the tags to respond, RFID tag states, sessions, persistence, and modulation. In summary:

For each session, a tag can be in one of two states, A or B. Tags only reply if they’re in the state being queried; e.g. tags in the B state won’t reply to readers that are querying the A state. The A state is the default state, and tags in the B state will eventually revert back to the A state.

Persistence: how long a tag stays in the B state before going back to A

Sessions let readers control how tags respond—should they respond as often as possible, just every now and then, or just once?

  • Session 0 (S0): the tag always responds Note: After answering, the tag goes to state B but doesn’t persist there long due to the way channel hopping works. “The EPC GEN 2 standard defines Session 0 as having an indefinite TS0 value. The reason that this does not appear to be the case in the actual implementation of Single Target Session 0 on the Impinj reader is that the reader will channel hop. This will cause a new inventory of the tag on a different channel, starting the tag persistence over. This will result in multiple reads similar to Dual Target” (

  • Session 1 (S1): tag answers, goes to state B for up to five seconds, returns to A

  • Session 2 and 3 (S2, S3): tag answers, then goes to state B for as long as the reader is on; after the reader turns off, the tag goes back to state A after at least two seconds but up to an indeterminate amount of time.

Modulation: how the data is “formatted” or output in the RF signal; in other words, modulation is the way the RF signal is perturbed to represent individual bits of data

Test conditions

  • RFID reader with an MTI RFID module and Raspberry Pi CM3 compute module.

SuperHARP RFID Reader
SuperHARP RFID Reader
  • American RFID Solutions’ HD500 antenna 2-3’ away from 230 tags in differing orientations

  • 10 seconds per run

  • Two minutes of inactivity between each run to allow tags to go back to state A (enough for our test tags, but other tags might require more time)

  • Tag read rate and unique tag counts were averaged across three runs for each combination of settings

Effect of transmit power level

The most obvious configuration change affecting read rates and unique tag counts is the transmit power level—transmitting at a higher power level should result in higher tag read rates and unique counts due to the tags being energized better.

Effect of Power on Unique Count and Reads Chart

So to read tags sooner and stronger, increase the transmit power level. But keep in mind that if you have multiple readers, you’ll want to tune each of your readers so they don’t interfere with the others. It’s not polite to shout at the dinner table.

Effects of modulation and session

Now let’s look at the effects of modulation and session, which are more nuanced but which really get at the heart of configuration for our two use cases. Consider the following graph. The X-axis shows the number of unique tags read; the Y-axis shows the number of tag reads, which could (and usually does) include the same tags repeatedly. In the chart below, L0-L3 refer to 4 tests being run at different modulations and data rates. Modulation refers to the way the data gets formatted on the radio waves. FM0 is a simple modulation that is fast but is more easily affected by interference; the Miller flavors of modulation are more resistant to interference but are slower.

Effects of modulation and session chart

The short version:

  • If you need to read tags as quickly as possible, not necessarily detect every single tag, then you want to choose the bubble highest on the Y-axis of the chart. L3 session 0 is the clear winner.

  • If you need to detect as many unique tags as possible, then you want to choose a bubble farthest to the right, on the X-axis. L1/L2 sessions 2 and 3 win.

Some interesting things stand out:

  • Tag read rates correlate with the session. S0 always yields the highest number of tags read. Why? Because S0 quickly returns a tag to the A state after it’s read, the tag can be read much more frequently. In contrast, sessions 1, 2 and 3 put tags in the B state for varying amounts of time, so after all the tags have been read once, no more tags will reply until their persistence expires, which might be after a few seconds, or not until the reader stops.

  • Tag read rates also correlate with the data rate. L0 at 40kbps yields the lowest tag read rate, while L3 at 400kbps yields the highest tag read rate with our hardware configuration. This makes sense, because the slower the data rate, the longer it will take to read each tag. But note that a slower data rate will not necessarily impede your application; for example, the graph shows that the best unique tag read counts come at a much lower data rate.

  • It gets interesting when we look at the chart from the perspective of maximizing unique tag reads—the unique read counts cluster according to their L0-L3 modulation (i.e. the format of the RF signal) rather than the session. In other words, some modulations are better for finding tags than others. L0 results in the lowest number of unique tag reads, followed by L3, with L2 and L3 winning neck-and-neck. But why? L0 and L3 use the simpler FM0 modulation, while L2 and L3 use the more complex Miller 4 modulation, which is more resistant to interference. The more robust Miller modulation does a better job at hearing the weak tags above all the noise.

  • The largest number of unique tag reads comes from using a more robust modulation (L2 or L3) along with session 2 or 3. With session 2 or 3 after the tags are read, they remain silent for at least two seconds after the reader stops transmitting, allowing other, weaker tags to be heard.


  • The number of RFID configurations can be bewildering, but the following guidelines will get your application going in the right direction:

  • Generally, the stronger the transmit power, the more tags you’ll read. But be careful not to interfere with neighboring readers.

  • For presence or RTLS kinds of applications, where you want to know when tags enter or leave a reader’s area, and not necessarily detect every single tag on the fringes of readability, use session 0, and experiment with higher data rate modulations like FM0.

  • For inventory types of applications where you want to detect as many unique tags as possible, use session 2 or 3 with a more robust modulation like Miller 4.

Experimentation is your friend. Environmental conditions, such as metal surfaces, can impact the RFID signal. Tuning may be required to achieve the best results.

Contact SDG Systems at if you’d like help getting your RFID application off the ground. Our TallyFlow RFID tracking software may already have the functionality that you need!

2,780 views0 comments

Recent Posts

See All


bottom of page