The Indy RS500, RS1000, and RS2000 surface-mount modules contain a bootloader(also called a "bootstrap") that allows updating the application image both during manufacturing and test, and also in the field. Impinj provides application image updates that add features to the modules, improve performance, and fix bugs.
The application image on the Indy surface-mount module can be updated using any IRI host that implements bootloading. The easiest IRI host to use is the Indy Demo Tool software, a PC GUI that enables configuration and testing of the Indy module.
This article explains how to update Indy module application images using the Indy Demo Tool.
Note: The Indy surface-mount module application images can also be updated using and IRI host, such as the IRI_Loader example project included in the ITK-C, or any IRI host application built to include that bootloading functionality.
Step 1: Download the Indy Demo Tool GUI and Indy Module Application Image
The Indy Demo Tool GUI and Indy surface-mount module Application image can both be downloaded from the Impinj Support Portal.
Download the latest version of the Indy Demo Tool here:
For RS1000 and RS2000, download the latest version of the Indy ITK Release, including the Indy surface-mount module application images, here:
https://support.impinj.com/hc/en-us/articles/202755788 The application images for the RS1000 and RS2000 modules are included in the \Images\ directory, with the images for each module in their own subdirectory.
For RS500, download the latest firmware application image here: https://support.impinj.com/hc/en-us/articles/115001968724
Step 2: Connect the Indy Module to the Windows host PC
To bootload a new application image into the Indy surface-mount module using the Indy Demo Tool GUI, the GUI must be able to communicate with the IRI interface on the module via a COM port. This requires that the COM port be connected to the UART1 TX and RX pins of the module, and that the module be in the correct state.
In order to bootload an image onto a surface-mount module, the surface-mount module must be:
- Connected to the host
- In the correct software low power mode (e.g. not in sleep or hibernate modes)
- In the correct hardware power mode:
- For RS2000: Enabled (using the ENABLE pin)
- For RS500 and RS1000: Not held in reset (using the nRST pin)
If using an Indy surface-mount module development board like the ones contained in the RS500 development kit and RS2000 development kit, the configuration for bootloading is pretty simple. The kit must simply be connected to the PC host using USB, and to a power source in the case of the RS2000 development kit, and have its jumpers returned to the default configuration as described in "Development Kit Default Configuration" section of the RS500 Hardware User's Guide and RS2000 Hardware User's Guide.
If using custom hardware, different steps may be required to configure and connect the Indy surface-mount module to the host. If the custom hardware does not include a USB-UART COM port, then a development board can be used to translate the IRI over UART traffic into a USB COM port.
If the Indy surface-mount module is in the proper state to be bootloaded, its health pin (the green LED on the development boards) will be toggling high and low/blinking about once every 2 seconds, and the status pin (the orange LED on the development board) will be low/off.
Once the Indy surface-mount module is properly configured and connected to the host, the GUI can be used to load the new application image.
Step 3: Use the Indy Demo Tool GUI to load the application image update
Launch the GUI by opening the Indy Demo Tool.exe executable file.
Connect to the module with the GUI by selecting the COM port and pressing the "Connect" button. The "Scan" button can be used to automatically detect which port the Indy surface-mount module is on.
Note: If the GUI is unable to connect to the surface-mount module, or the Scan operation does not find an attached surface-mount module, revisit Step 2 to fix any potential connection or configuration issues.
Optional: Check the current version of the Application Image on the surface-mount module by switching to the "Set/Get" tab and pressing the "Retrieve Device Info" button. Information about the surface-mount module, including its application image version will be shown in the Event Log.
Load the new application image by switching to the "Image Loader" tab of the GUI, selecting the application image file using the "Open" button, and then pressing the "Load Image" button. The progress bar will then begin to move, and the surface-mount module's Health and Status pins will toggle/blink rapidly in alternation.
Note: Indy surface-mount modules cannot be loaded with application images that are older than the bootloader in the surface-mount module.
Step 4: Use the Indy Demo Tool GUI to verify the application update
Verify that the bootload was successful by switching back to the "Set/Get" tab and pressing the "Retrieve Device Info" button. The surface-mount module's application image version will be shown in the Event Log.
At this point the Indy surface-mount module has an updated application image, including the latest improvements in performance and feature-set.