Understanding EPC Gen2 Search Modes and Sessions

Impinj RAIN RFID Readers and Gateways can be configured using many settings to handle various use-cases. Two important configuration settings are "Session" and "Search Mode". Impinj software (e.g. ItemTest, ItemSense) and libraries (e.g. Octane SDK, LTK and Speedway Connect) allow you to change these settings. Here is an example of where these settings can be changed in ItemTest:


This article discusses more details about these two settings.


The EPC GEN 2 standard allows for inventorying up to four sessions; these sessions serve two purposes:

  1. Determines when a tag will respond to a query from the reader
  2. Allows tags to maintain independent states when communicating with multiple readers at the same time.

As defined in the EPC Gen2 Standard, the session is an inventory process comprised of the reader and an associated tag population. The Impinj reader chooses one of four sessions and inventories tags within that session. The Impinj reader and tag population will operate in one and only one session for the duration of an inventory round.

The EPC GEN 2 compliant tag has two states for each session represented by Session Inventory Flags, 'A' and 'B'.


The tags will always power up into the 'A' state for each session. The Impinj reader controls when the tag will go from 'A' to 'B' state. Although the Impinj reader can control when the tag is moved back to the 'A' state, it is commonly controlled by what we call the tag's persistence.



When the Impinj reader inventories a tag, the session flag state is changed from 'A' to 'B' - how long the tag stays in the 'B' state before reverting back to the 'A' state is called "persistence". It is important to realize that exact persistence times cannot be set by the user; they can only be approximated according to the Search Mode and Session. Below is a table from the EPC Gen2 Specification showing more details on the persistence period for each of the four sessions (denoted by their session flags as S0, S1, S2, and S3):


Next let's look at Search Modes and how they work with the Session setting to establish the persistence.

Search Modes

There are currently five search modes available on the Impinj readers:

  • Dual Target
  • Single Target 
  • Single Target with Suppression (TagFocus)
  • Dual Target Select B→A
  • Single Target Reset

Each of the modes contains the word "Target" in the name. "Target" refers to whether the reader will singulate (select) only tags that are in a single state, either 'A' or 'B' (Single Target) or if it will singulate tags in both 'A' and 'B' state (Dual Target). The following describes each of these modes in more detail. For this discussion, we are referencing a system using a single Impinj reader and a single antenna.

Dual Target:

In Dual Target the Impinj reader

  • Reads ‘A’ tags one at a time and moves them into the ‘B’ state.
  • Reads ‘B’ tags one at a time and moves them into the ‘A’  state
  • Repeats the above activities over and over. 

In this search mode, the session has no influence as the Impinj reader will immediately 'push' tags back into the 'A' state.


Usage: Dual Target generates many reads and is good for small populations or static environments (i.e smart shelf), though Dual Target can also be used in dynamic environments. In dynamic environments, Dual Target can also be good at detecting when a tag enters, stays, and leaves the Field of View of the antenna. This dynamic use-case is also applicable with Dual Target Select B-> A as described in the next section.

Single Target:

In Single Target, the Impinj reader:

  • Reads ‘A’ tags one at a time and moves them into the ‘B’ state
  • Those tags will remain in the 'B' state depending on the persistence of the session used, before reverting back to the 'A' state.
  • Repeats the above two activities over and over

*  - The amount of time that the tags stay in the 'B' state is based on the rules associated with the session configured. Refer to the "Putting It All Together" section below for further details on session configuration.

Usage: This mode is good for high population, dynamic environments where you only want to inventory the tag a single time when it enters the reader's field of view. It provides the deepest possible scan when there is a large tag population in a static environment.
Single Target with Suppression (TagFocus): 

This search mode is exactly the same as Single Target, except provides the advantage of Sessions 2 and 3, in that the tag will remain quiet while in the read field once inventoried.

: This allows other tags that might be “quieter” (not reflecting as much power) to be read. It also provides the advantage of Session 1 in that it will revert the tag almost immediately back to the ‘A’ state and be available for a reader query upon leaving the read field.


Tag State Behavior

Before we continue with the remaining search modes, let's put what we've covered so far together to see the behavior these settings have.


 Note: Single Target Session 0 may act differently than what is depicted above. Please read the section about Single Target Session 0 below for more details.

In Dual Target, the tag will be read continuously regardless of tag state 'A' or 'B'; the Session setting has little to no influence.

In Single Target with Session set to '0', the tag will behave similarly to Dual Target, though the underlying process is a little bit different. 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 as shown in the diagram above. If you were to use a battery-assisted RFID tag, then using Single Target Session 0 would show the indefinite TS0 value, as described in the EPC Gen2 Standard, as the tag would never become de-energized, even while channel hopping.

As antenna/channel hopping requirements vary between regions, it's possible to see some odd behavior when operating in this configuration. An example of odd behavior is that tags can remain in state B for four seconds when performing inventory with an ETSI model of the Impinj reader. Due to this, we often recommend other search modes/sessions such as Single Target Session 1, or Dual Target B→ A Select (described in further detail in the next section).

In Single Target with Session set to '1' the tag will be read and then moved to the 'B' state. After some period of time (TS1) it will revert back to the 'A' state and be read again. This TS1 value is defined in the EPC GEN 2 standard as being between 500ms and 5 seconds; again it cannot be expressly set, only approximated. The TS1 value will vary depending on the tag IC manufacturer and even the specific tag IC model. For example, the Impinj Monza S1 persistence is approximately 1 second. So, if we set the reader for Single Target, Session 1, we will see the same Impinj Monza tag being read around every second; if a different tag IC model is used, the TS1 value may differ.

If the Impinj reader Search Mode is set to Single Target and the Session to either '2' or '3' then the tag will be read once then switch to 'B' state and remain quiet the entire time it is in the read field.  Once the tag leaves the read field, it will have a persistence (stay in the 'B' state) for a time period of TS2/3. This persistence time is defined by the EPC GEN 2 standard to be a minimum of 2 seconds with no maximum specified. Remember that during this time, the tag will not respond to a query from any reader using Single Target and the same Session.

Using Single Target with Suppression (also known as "TagFocus") provides the advantage of Sessions 2 and 3 in that the tag will remain quiet while in the read field once inventoried thus allowing other tags which may be "quieter" (not reflecting as much power) to be read. It also provides the advantage of Session 1 in that it will revert almost immediately back to the 'A' state and be available for any reader query upon leaving the read field. 

SessionPic2.png Note: Single Target Session 0 may act differently than what is depicted above. Please read the section about Single Target Session 0 above for more details.

One of the settings that is closely related to these two settings is the Reader Mode. If you are unfamiliar with the Reader Modes and would like to learn more, please read the following article.

Remaining Search Modes

Dual Target Select B - > A:

In Dual Target Select B → A, the Impinj reader

  • Reads all ‘A’ tags one at a time and moves them into the ‘B’ state. 
  • Moves all B tags at once into the A state with a single GEN 2 Select command. The Select command communicates with all the tags in the field of the view.
  • Repeats the above two activities over and over

Using the select command to quickly change all of the tags to the 'A' state allows for faster and more efficient reading with multiple antenna configurations. The amount of time for sending the GEN 2 Select command is far shorter than performing the second inventory on each individual tag to change state from 'B' to 'A'. This causes the reader to switch antennas faster because the tags are back in the 'A' state earlier. When compared with standard Dual Target, you will see improvements in speed, as there is often time saved by performing the Select command rather than a second inventory.

It also allows for better handling of unique tags entering the field of view. In Dual Target, if a new 'A' tag was to enter the field of view and the Impinj reader was performing an inventory on the 'B' state, that tag would not be reported until the Impinj reader performs the next 'A' state inventory. With Dual Target Select B→ A, the tag would be reported sooner due to the reader skipping the 'B' state inventory.


Usage: We see this mode as most beneficial when there are repeated tag observations with multiple antennas or a medium to high tag count (>50 tags). Another useful use-case for this search mode is when monitoring moving tags to know more precisely when tags enter and exit the field of view from an antenna. An example of this is shipment verification.

Single Target Reset:

When using this search mode, the Impinj reader inventories state 'B' tags and resets the tag's inventory flag back to state 'A'.
Consider using for high-throughput applications when you want to control when the tag goes back to state 'A'. For example, when your Impinj reader is configured with Single Target session 2 or 3 (which have long persistence decay periods), you can reconfigure the reader to use Single Target Reset to bring the tag back to state 'A' in a more controlled/timely fashion.This search mode enables the continuous reading of a large set of tags.
Usage: A pseudo-code sample to describe how you could use Single Target Reset in conjunction with Single Target to inventory continuously is shown below:

While (true) {        
                     Inventory SingleTarget and Session 2 for 10 seconds  (A->B)        
                     Inventory SingleTargetReset and Session 2 for 10 seconds  (B->A)                   

It's also possible to use Single Target Reset in conjunction with Single Target from two separate readers, rather than switching search modes on a single reader. 



Scenario 1: There are a number of tagged items being continuously inventoried on a RFID-enabled "smart shelf". Selecting either of the Dual Target for the search mode will allow for the fastest update of tag status and be able to provide an update alert should a tagged item be put on, or taken off, the shelf.

Scenario 2: A fixed reader portal is performing an inventory on incoming items as they come off the delivery truck using Single Target, Session 2. Now, let's say you want to do a quick inventory sweep with a handheld reader (perhaps to encode the storage location). If the handheld reader uses the same session, it might miss some of the tags, or have a slow tag read rate, due to the fact that the tags were 'pushed' into the 'B' state by the fixed reader and have not yet flipped back to the 'A' state. Setting the handheld reader to a different Search Mode (i.e. Dual Target or Single Target w/ Suppression) or to Session 3, will allow the tagged items to be inventoried.

Another option would be to use Single Target with Suppression (assuming use of Impinj Monza tags) so that the large population of tags can be quickly inventoried with high probability of 100% count and still allow the tags to be re-inventoried almost immediately after leaving the portal read zone.

Scenario 3: Two Impinj readers want to simultaneously inventory a population of tags and then confirm they have the same count as a way of reducing missed tags. In this case, setting one reader to Single Target, Session 2 and the other to Single Target, Session 3 will allow this to happen. This is possible as the inventories are occurring on two separate sessions.

Scenario 4: You have a large tag population, and are trying to perform a continuous reading of these tags, while also utilizing session 2 and 3.Initially, the tags would be placed into the 'B' State through the Single Target inventory using Session 2 or 3. Then, by periodically changing the reader's search mode to "Single Target Reset" and performing an inventory, the tags would be changed back to the 'A' state, allowing them to be inventoried the next time the Single Target inventory is run. This allows the user to have better control of the frequency in which the tags are reported.

Scenario 5: You have a high throughput environment, where you need as many reads as possible. This could be either Inventory, Location, or Direction as there are applications requiring high throughput in each mode. In this case, you will want to implement the Dual Target B→A search mode, as this mode can provide faster and more efficient reads than usual with Dual Target by sending a Select command, causing the tags to be reverted to state A for an even quicker inventory. This is faster than compared to just waiting for Dual Target to assign the tags back to state B by using a second inventory, therefore improving the overall read rate and the handling of new unique tags coming into the field of view.


Was this article helpful?
30 out of 30 found this helpful



Article is closed for comments.