Impinj® ItemSense™ Migration Guide

Table of Contents

Migrating to ItemSense 2016r6

Upgrading to ItemSense 2016r6 from any previous release requires migration of ReaderConfiguration and Recipe configurations, to accommodate specialized configuration for Inventory-based operations and Location-based operations.

Configurations from previous releases for these elements will not function with ItemSense 2016r6.

ReaderConfiguration

Since recipes reference reader configurations, reader configurations must be migrated first.

For each reader configuration:

  • Determine the type of recipe that references the configuration
  • If the associated recipe type is INVENTORY then change the reader configuration operation field to INVENTORY, and modify the following fields:
    • remove reportConfig
  • If the associated recipe type is LOCATION then change the reader configuration operation field to LOCATION, and modify the following fields, from the configuration sub-field:
    • remove searchMode
    • remove tagPopulationEstimate
    • remove polarization
    • remove channelConfig
    • remove reportConfig
    • remove antennas
    • if your environment has a highly reflective surface in the field of view of the reader, add 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.
  • If the associated recipe type is DO_NOTHING, then no modifications are required

Inventory Reader Configuration Example

Before Migration
{
  "name": "IMPINJ_InventoryConfig",
  "operation": "NORMAL",
  "configuration": {
    "readerMode": "MODE_1002",
    "searchMode": "SINGLE_TARGET",
    "session": 2,
    "tagPopulationEstimate": 32,
    "antennas": [45,16,35,14,49,36,2,31,18,29,48,19,46,3,33,52,15,50,13,32,1,51,30,17,47,20,34,4],
    "reportConfig": {
      "tidIncluded": false,
      "peakRssiIncluded": false,
      "phaseAngleIncluded": false,
      "dopplerFrequencyIncluded": false,
      "channelIncluded": false
    }
  }
}
After migration
{
  "name": "IMPINJ_InventoryConfig",
  "operation": "INVENTORY",
  "configuration": {
    "readerMode": "MODE_1002",
    "searchMode": "SINGLE_TARGET",
    "session": 2,
    "tagPopulationEstimate": 32,
    "antennas": [45,16,35,14,49,36,2,31,18,29,48,19,46,3,33,52,15,50,13,32,1,51,30,17,47,20,34,4]
  }
}

Location Reader Configuration Example 1: no disabled antennas

Before Migration
{
  "name": "IMPINJ_LocationConfig",
  "operation": "NORMAL",
  "configuration": {
    "readerMode": "MODE_1002",
    "searchMode": "DUAL_TARGET",
    "session": 2,
    "tagPopulationEstimate": 32,
    "antennas": [45,16,35,14,49,36,2,31,18,29,48,19,46,3,33,52,15,50,13,32,1,51,30,17,47,20,34,4],
    "reportConfig": {
      "tidIncluded": false,
      "peakRssiIncluded": false,
      "phaseAngleIncluded": false,
      "dopplerFrequencyIncluded": false,
      "channelIncluded": false
    }
  }
}
After Migration
{
  "name": "IMPINJ_LocationConfig",
  "operation": "LOCATION",
  "configuration": {
    "readerMode": "MODE_1002",
    "session": 2
    }
  }
}

Location Reader Configuration Example 1: some antennas disabled

Before Migration
{
  "name": "IMPINJ_LocationConfig",
  "operation": "NORMAL",
  "configuration": {
    "readerMode": "MODE_1002",
    "searchMode": "DUAL_TARGET",
    "session": 2,
    "tagPopulationEstimate": 32,
    "antennas": [45,16,14,49,36,2,31,18,29,48,19,46,3,33,52,15,50,13,32,1,30,17,47,20,34,4]
    "reportConfig": {
      "tidIncluded": false,
      "peakRssiIncluded": false,
      "phaseAngleIncluded": false,
      "dopplerFrequencyIncluded": false,
      "channelIncluded": false
    }
  }
}
After Migration
{
  "name": "IMPINJ_LocationConfig",
  "operation": "LOCATION",
  "configuration": {
    "readerMode": "MODE_1002",
    "session": 2,
    "disabledAntennas": [51,35]
    }
  }
}

Recipe

For each recipe:

  • If locationReportingEnabled is false, then change the type field to INVENTORY
  • If locationReportingEnabled is true, then change the type field to LOCATION
  • For INVENTORY recipes, modify the following fields:
    • remove minimumMovementInMeters
  • For LOCATION recipes, modify the following fields:
    • remove tagAgeInterval
  • For both types of recipes, remove the following fields:
    • remove locationReportingEnabled
    • remove presencePipelineEnabled
    • remove zoneModel
    • remove historyWindowSizeInCycles
    • remove computeWindowSizeInCycles
  • For both types of recipes, modify the following fields:
    • rename computeWindowTimeInSeconds to computeWindow (defaults to 20 seconds if not previously set)
    • rename locationUpdateIntervalInSeconds to reportingInterval (default to 5 seconds if not previously set)

Inventory Recipe Example

Before Migration
{
  "name": "IMPINJ_BasicInventory",
  "readerConfigurationName": "IMPINJ_InventoryConfig",
  "presencePipelineEnabled": true,
  "locationReportingEnabled:: false,
  "historyWindowSizeInCycles": 50,
  "computeWindowSizeInCycles: 10
}
After Migration
{
  "name": "IMPINJ_BasicInventory",
  "type": "INVENTORY,
  "readerConfigurationName": "IMPINJ_InventoryConfig",
  "computeWindow: 20,
  "reportingInterval": 5
}

Location Recipe Example

Before Migration
{
  "name": "IMPINJ_BasicLocation",
  "readerConfigurationName": "IMPINJ_LocationConfig",
  "minimumMovementInMeters: 1.0,
  "presencePipelineEnabled": true,
  "locationReportingEnabled": true,
  "updateIntervalTimeInSeconds: 5,
  "zoneModel": "GEOGRAPHIC"
}
After Migration
{
  "name": "IMPINJ_BasicLocation",
  "type": "LOCATION",
  "readerConfigurationName": "IMPINJ_LocationConfig",
  "minimumMovementInMeters": 1.0,
  "computeWindow": 20,
  "reportingInterval": 5
}