The document provides general frequently asked questions and answers about the Indy ITK Release and the Indy Modules. For examples of how to configure the Indy Modules for different use cases, see the Configuration Examples. For more information about the Indy Modules, see their Datasheets and Hardware User’s Guides, which are included in the Release package under .\Documentation\ , or on Impinj’s support portal here.
Note: The End-of-Life (EOL) process for the Impinj Indy RS2000 and RS1000 reader modules and all reader module development kits was announced on September 4, 2020 (please refer to the EOL Product Notice).
Operational changes to Impinj Indy RS500 reader modules were announced on September 4, 2020 -- this product is available as build-to-order with a minimum order quantity, effective for all purchase orders with a requested ship date after March 31, 2021 (please refer to the Product Notice).
The questions and answers are grouped together by topic:
The primary differences between ITK-C and ITK-LT-C are that the ITK-C implements more of the Indy Module’s functionality, at the cost of more program memory (ROM/FLASH) and RAM consumption. The ITK-LT-C may allow implementation of the Indy Module interface on microcontrollers and microprocessors with memory. ITK-C’s library implements the full capabilities of the Indy Module’s built in firmware, including operations like bulk set and get, and bootloading. ITK-LT-C’s library only implements a limited subset of Indy Module’s built in firmware. ITK-C consumes between 9 and 16 kB of ROM, and ITK-LT-C consumes between 1 and 3 kB of ROM. For more details on the code consumption of each of the libraries, see ITK-C Memory Usage and ITK-LT-C Memory Usage. For more details on the limitations of ITK-LT-C, see the Limitations section of the ITK-LT-C API guide.
ITK-LT-C should only be used if the the standard ITK-C can not be used due to host memory constraints. The ITK-C is extensible, has broader capabilities, and enables future advanced features.
Setting a key value will persist until the value is changed again or the device is reset.
Caution should be used when setting one of the various ENABLE keys. This is particularly important when using keys which control the RFID protocol enabling (eg. Select and Tag Access). If one of these modes are enabled (eg. via E_IPJ_KEY_SELECT_ENABLE or E_IPJ_KEY_TAG_OPERATION_ENABLE), they must be set to disabled if they are not desired on next command.
Stored settings can be used to configure the power on default values of writeable key. So for persistent values across reset, see Stored Settings.
The Indy Modules contain both a bootloader and an application image. The bootloader allows updating of the application image, but the bootloader itself cannot be updated. To update the application image, the module must be executing the bootloader, also known as “recovery mode”. This mode can be entered in three ways:
With the module in recovery mode, any IRI host can bootload a new application image. There are 3 easy options for IRI hosts:
The behavior of the Indy Modules’ HEALTH and STATUS pins is described under Health and Status Pins/LEDs in the Debugging section of the ITK-C documentation.
The Indy Module software power management modes available are low latency idle, standard idle, standby, and sleep. For more information on using these software low power modes, see the Power Management example program.
The RS2000 module also has a “shutdown” mode, which is a hardware power mode that can be entered by applying 0 V to the Enable pin. In this mode, the regulators in the RS2000 module are disabled, enabling minimal power consumption.
For details on low power mode current consumption, including current consumption, capabilities, and mode transitions, see the module datasheets and hardware user guides, which are included in the ITK-C Release package under .\Documentation\ , or on Impinj’s support portal here.
Set WKUP pin high to wake up the Indy Module. Set WKUP low to continue with normal operation. Customers can leave WKUP disconnected if they do not intend on using sleep mode. The WKUP pin can also be used to wake from from standby.
Yes, the IRI UART baud rate can be changed. Refer to the IRI_Change_Baudrate configuration example for details.
When selecting a host processor, we recommend the following set of guidelines:
Note that these are not minimums, but will ensure your ability to exercise 100% of the Indy Modules’ capabilities.
Contact us at support.impinj.com for assistance if you have a host processor with capabilities lower than the recommended guidelines.
The identifier printed on the label of the device is a combination of the SKU, Lot Date Code, and Serial Number from a lot, and is unique for each individual Indy Module.
SERIAL #: XXZZWWYYAAAA
Each individual value can be retrieved via the following keys:
Alternatively, the combined unique identifier can be retrieved via the following key (which has 2 32-bit values):
For example, with a SERIAL #: 010151130247
The ITK-C is compatible with a wide variety of linux distributions. It has been tested with Ubuntu 14.04 and Centos 6. Any distribution with support for the termios serial port API should be compatible.
If the RFID antenna is disconnected from a reader, it will result in a very high reflection of transmitted power. This can be measured by the Indy Modules as reverse power. The Indy Modules measure both forward and reverse power every time the radio is turned on, which happens every time a new inventory is initiated, and also every time the radio hops from channel to channel. These forward and reverse power measurements can be included in the status reports if desired.
To enable the channel activity in the status reports, set flag E_IPJ_STATUS_FLAG_BIT_CHANNEL_ACTIVITY in key E_IPJ_KEY_REPORT_CONTROL_STATUS. Then, to read the forward and reverse power out of the packets, simply examine the status_report data[0] and data[1] members inside the ipj_util_status_report_handler(...) function in the ipj_util.c source file, as shown in the following code snippet.
printf("Forward power 0x%X, %d\n", status_report->data[0], status_report->data[0]);
printf("Reverse power 0x%X, %d\n", status_report->data[1], status_report->data[1]);
For more information on how to measure forward and reverse power, see the Measuring Reverse Power example in the Configuration Examples.
The Indy reader modules measure the backscattered power from read tags, which indicates the strength of the link between the reader and the tags. This measurement is also known as Received Signal Strength Indicator (RSSI). The measured power is referenced to the reader RF port, and will be affected by any losses or gains in the signal path, including PCB trace resistance, cabling loss, and antenna gain.
The Indy reader modules also measure the phase of the link between the reader and tags, which can be useful to indicate relative changes in the physical arrangements between them. Phase measurements use the phase angle between the reader’s transmit signal to a tag and the corresponding receive signal from the tag.
The communication of these measurements may be enabled by setting the E_IPJ_TAG_FLAG_BIT_RSSI and E_IPJ_TAG_FLAG_BIT_PHASE flags in the key E_IPJ_KEY_REPORT_CONTROL_TAG.
When enabled, the measurements are included as the rssi and phase members of the tag struct, which is a member of each ipj_tag_operation_report. These RSSI and phase values can easily be read in the ipj_util_tag_operation_report_handler(...) function in the ipj_util.c source file.
Note
The units of RSSI are centi-dB-mW (cdBm), and the value is signed. The units of phase are 2*Pi/128 radians, with the variable expressing a range of 0 to Pi radians, equivalent to a 0-180 degree angle range. When the phase measurement passes Pi radians, or 180 degrees, it rolls over to 0 radians/degrees.
For more information on how to measure RSSI and Phase, see the Measuring RSSI example in the Configuration Examples.
The Indy reader modules have multiple RF Profiles or “RF Modes” that are enabled using the key E_IPJ_KEY_RF_MODE. The default key value and RF parameters are listed at the key definition.
This section contains answers to common questions about the Indy RS500 and RS1000 embedded reader modules, which share a common pinout, form factor, and PCB footprint. For an introduction to the RS500 and RS1000, see their datasheets, on Impinj’s support portal here.
Note
RS500 support in this release is limited.
This release does not contain an application image for RS500. RS500 application image development was halted after release 1.6.8.240. Version 1.6.8.240 of the documentation can be found at http://developer.impinj.com/indy/01.06.08.240/itk/ , and the ITK-C release can be found at https://support.impinj.com/hc/en-us/articles/115001968724 (requires login).
Future releases may contain bug fixes for RS500, but new features added to firmware for the other modules will likely not be supported by RS500. Any module features that are not mentioned in release 1.6.8.240 are likely not supported by RS500. Newer versions of the host library will maintain compatibility with the RS500, but some configurations may result in errors. For example, if the users attempts to set a key that was not implemented on the RS500, the E_IPJ_ERROR_SET_KEY_INVALID error code may be returned.
Generally speaking, the RS500 and RS1000 are functionally equivalent in most ways, except that the RS1000 has a higher transmit power maximum, and a lower (better) receive sensitivity.
Similarities:
- Footprint: The RS500 and RS1000 share the same PCB footprint. Their PCB footprint is described in the device datasheets.
- Package Dimensions: The RS500 and RS1000 packages are the same dimensions. Their dimensions are described in the device datasheets.
Differences:
- Transmit Power: The RS500 and RS1000 have different maximum transmit power values, set using the E_IPJ_KEY_ANTENNA_TX_POWER key.
- Receive Sensitivity: The RS500 and RS1000 have different receive sensitivity values, as described in the device datasheets. The RS1000 is more sensitive than the RS500.
- Current Consumption: The RS500 and RS1000 have different current consumption values, as described in the device datasheets.
- Self heating: The RS500 and RS1000 will self-heat differently due to their different current consumptions.
Mode | Latency Time |
---|---|
Hard Reset | 200 ms |
Soft Reset | 200 ms |
Standby | 50 ms |
Sleep | 200 ms |
The details below are provided for reference. For more details on RS500 pin recommendations, see the Indy RS500 Hardware User’s Guide, which is included in the ITK-C Release package under .\Documentation\ , or on Impinj’s support portal here.
Required connections:
Recommended connections:
Optional connections:
No connect:
This section contains answers to common questions about the Indy RS2000 embedded reader module. For an introduction to the RS2000, see its datasheet, included in the ITK-C Release package under .\Documentation\ , or on Impinj’s support portal here.
RS2000’s built-in antenna switching is configured using the E_IPJ_KEY_ANTENNA_SEQUENCE key.
For the antenna values, see ipj_antenna_rs2000.
For more details, see the configuration example Antenna Switching.
RS2000, with its 31.5 dBm maximum power output, can easily self-heat above its maximum operating temperature under certain thermal conditions. It may be necessary to monitor and control operating parameters to ensure reliable operation.
RS2000’s internal temperatures can be measured by reading the following keys:
Note
Reading these keys prompts a temperature measurement, which can take up to 2 ms to complete.
There is an example on how to read RS2000’s internal temperatures in the configuration example Get Temperature.
RS2000’s firmware monitors the power amplifier (PA) temperature, and automatically stops RFID operations if it exceeds 85 degrees Celsius. When this occurs, a stop report is sent with error code E_IPJ_ERROR_LIMIT_PA_TEMPERATURE_MAX which indicates that the PA has exceeded this temperature. Start commands may be sent again immediately, but may be stopped automatically by subsequent over-temperature conditions. It is advisable to monitor for over-temperature events, and add some activity hold-off or decrease in self-heating via transmit power reduction.
Future versions of RS2000 firmware will include an on-board control system that will automatically keep the device operating at decreased activity or power levels.
The details below are provided for reference. For more details on RS2000 pin recommendations, see the Indy RS2000 Hardware User’s Guide, which is included in the Release package under .\Documentation\ , or on Impinj’s support portal here.
Required connections:
Recommended connections:
Optional connections:
No connect:
The GPIO pins can sink and source 2 mA at 3.3V.
For detailed electrical specs and GPIO behaviour, see the Indy RS2000 Datasheet and Indy RS2000 Hardware User’s Guide, which are included in the Release package under .\Documentation\ , or on Impinj’s support portal here.