Impinj® ItemSense™ Configuration Guide

This document gives configuration guidelines for the Impinj® ItemSense™ software platform.

Table of Contents

Configuration Interfaces

ItemSense can be configured via the following interfaces, depending on your method of integration and/or operation:

  • GUI configuration via ItemSense Management Console web interface
  • programmatic configuration using one of the supplied open source client libraries
  • direct script access using the HTTP API via curl
  • custom integration with the API

This guide references the configuration in a conceptual manner that equally applies to any of the configuration methods. Except where noted, all of these methods offer the same functionality and parameters.

As noted in the API documentation, the general flow of configuration of ItemSense is as follows:

  • configure users with appropriate roles
  • add required facilities
  • if necessary, divide facilities into floors, and zones
  • add a reader definition for each deployed RAIN RFID gateway
  • establish the operations that these readers will execute
  • add reader configurations and recipes to facilitate these operations
  • configure and start jobs to perform these operations
  • monitor item data via the query-based API, or via event-based message queues
  • monitor health of the readers via the query-based health API, via event-based message queues, or via SNMP traps
  • update firmware on the readers when necessary using the software management API

Each configurable resource (recipes, reader configurations etc), and the operations that can be performed on that resource, and the parameters and return data associated with each operation are fully defined in the API documentation.

The sections below give configuration guidelines for the most common scenarios. Note: these values may require tuning for your particular installation.

ItemSense does ship with a number of default configurations, which can be used as-is, for many applications.

Inventory

Goal: to gather inventory data for a set of essentially static items

Reader Configuration Parameters

  • Set operation to INVENTORY
  • Set configuration.readerMode to MODE_1002 if the readers are well spaced, and to MODE_1004 if the readers are densely spaced. Both of these reader modes will automatically adapt the communication frequencies to the environment
  • Set configuration.searchMode to SINGLE_TARGET
  • Set configuration.session to 2 or 3. Adjacent readers can use different session values to improve inventory accuracy
  • Set configuration.antennas according to the type of reader
  • If in a fixed frequency regulatory region (such as ETSI), set configuration.channelConfig to desired frequencies of operation. Adjacent readers can use alternating ETSI channels to avoid interference and improve inventory accuracy
  • If inventorying a large number of tags, set tagPopulationEstimate to 32
  • If inventorying a small number of tags, set tagPopulationEstimate to 4

Recipe Parameters

  • Set type to INVENTORY
  • If all readers have the same configuration, then set readerConfigurationName to this configuration.
  • If there are multiple reader configurations with different settings, then create a map of these in readerConfigurations
  • Leave the reportingInterval at its default of 5 seconds

Job Parameters

  • Set the recipeName to the above recipe
  • If you have more than one facility, set the facility to the one in which this job will run
  • Set the durationSeconds to the required length of the inventory job. For large numbers of tags, the accuracy will be improved by longer a longer job duration

Locationing

Goal: to track dynamic items within a facility

Reader Configuration Parameters

  • Set operation to LOCATION
  • Set configuration.readerMode to MODE_1002 if the readers are well spaced, and to MODE_1004 if the readers are densely spaced. Both of these reader modes will automatically adapt the communication frequencies to the environment
  • Set configuration.session to 2 or 3. Adjacent readers can use different session values to improve inventory accuracy
  • If the environment has a highly reflective surface in the field of view of the reader, set configuration.disabledAntennas and list those antennas that are likely to skew results by being closest to the reflective surface. Note: antennas 1,2,3,4 cannot be disabled, and this list can include a maximum of 24 antennas. See the Gateway Deployment Guide for the antenna map.
  • If the environment is very reflective, the configuration.transmitPowerInDbm parameter may need tuning to improve location accuracy. This parameter defaults to 30dBm, and can be set to values between 10dBm and 30dBm.

Recipe Parameters

  • Set type to LOCATION
  • If all readers have the same configuration, then set readerConfigurationName to this configuration.
  • If there are multiple reader configurations with different settings, then create a map of these in readerConfigurations
  • Set reportingInterval
  • Set computeWindow to a value that is larger than reportingInterval. The larger the computeWindow the more accurate the location reports will be, but this comes at the expense of response time to location changes
  • Set minimumMovementInMeters to the value of movement that you want to detect. The lower this value, the more precision there is in the location data, but this comes at the expense of system load

Job Parameters

  • Set the recipeName to the above recipe
  • If you have more than one facility, set the facility to the one in which this job will run
  • Set the durationSeconds to the required length of the location job. You might want this job to run indefinitely, in which case, set the durationSeconds to 0

Multizone per Gateway

Goal: to use one reader with multiple antennas to locate items within different zones

Reader Definition

  • Map each antenna of the reader to a zone name using the antennaZones parameter

Reader Configuration Parameters

  • Set operation to INVENTORY
  • Set configuration.readerMode to MODE_1002, which will automatically adapt the communication frequencies to the environment
  • Set configuration.searchMode to DUAL_TARGET
  • Set configuration.session to 2 or 3
  • Set configuration.antennas according to the type of reader
  • If in a fixed frequency regulatory region (such as ETSI), set configuration.channelConfig to desired frequencies of operation
  • If inventorying a large number of tags, set tagPopulationEstimate to 32
  • If inventorying a small number of tags, set tagPopulationEstimate to 4

Recipe Parameters

  • Set type to INVENTORY
  • Assuming there is just one reader, then set readerConfigurationName to the reader configuration above
  • Assuming there are a limited number of tags, set reportingInterval to a low value e.g 1 (second)
  • Set computeWindow to a value that is larger than reportingInterval. This is the window over which reads from different antennas will be disambiguated

Job Parameters

  • Set the recipeName to the above recipe
  • If you have more than one facility, set the facility to the one in which this job will run
  • Set the durationSeconds to the required length of the location job. You might want this job to run indefinitely, in which case, set the durationSeconds to 0

Filter for specific EPCs

Goal: to improve RFID performance by filtering on only know EPCs

This configuration can be used for any operation type

Reader Configuration Parameters

  • Set the tagMask of the filter parameter to the hex value of the EPC prefix that you want to filter on e.g. 3034. By default this will filter on EPCs that have this prefix. You can make this filtering more general by setting a different memoryBank and/or bit pointer into memory.

Absence Detection using Tag Expiration

Goal: to detect when an item is no longer within the RFID "field of view"

Only valid when performing locationing or Multizone per Gateway operations

Recipe Parameters

  • Set the tagExpiryDuration to a value greater than the reportingInterval. The smaller the value the quicker the response time, but the larger the load on the system.

Note that absence detection via tag expiration only generates ABSENT events after the antennas of the reader have completed one cycle time. This value is dependant on the number of tags in the field of view. For large numbers of tags, the reader must "warm up" in this way before it can perform absence detection.