Welcome To Our Support Portal

Browse Impinj resources for help with FAQ, downloads, quick links, and more.


Submit a request

Connecting GPIO Devices to Speedway Revolution Reader [VIDEO]

Follow


This article covers connecting devices to the General Purpose Input/Ouput (or GPIO) port on the Impinj Speedway Revolution RFID reader.


The below tutorial video gives an overview of the Impinj GPIO Connectivity Box (Part # IPJ-A5000-000), a highly recommended approach for connecting GPIO devices to the reader. Included in the tutorial video is how to connect a light sensor to trigger the Revolution reader using General Purpose Input (GPI) terminals and how to connect a light stack to the General Purpose Output (GPO) terminals.

While the tutorial video covers most of the configurations, there may be instances where you simply want to use the +5V available on the GPIO connector to either simulate a GPI event (testing source code logic, testing GPIO connectors are good, etc.) or perhaps to wire a simple two normally-open switch so that, when activated, a GPI trigger occurs (such as a pressure mat, push switch, etc.). I'll walk through how to do this using two approaches, one with the GPIO Connectivity Box and one without.

To utilize the +5V supply from the reader, move the bottom two jumpers to the left two pins. In this configuration, the row labeled Jplus should have the jumper connecting the pins labeled 5V and Vcc. The row labeled Jminus should have the jumper connecting the pins labeled RGND and GND as shown in the image below.

 
 

Once the jumpers are configured, you can wire in a Normally-Open device by connecting one wire to a IN1 terminal and the other to VCC; if a ground wire exits on the switch then wire it to GND. When the switch is closed (pressure applied in the case of a mat), the IN1 LED on the GPIO Connection Box should illuminate.

You can wire a direct short between a GPO and GPI as shown in the image (OUT1 wired to IN1) in order to test that your program is actually sending a GPO and responding as expected to a GPI. Set the wired GPO to be ON and set the reader to trigger on the desired GPI. In the photo, we see the LEDs illuminated for OUT1 and IN1 showing our connection and program logic is successful.

If you are not using the GPIO Connectivity Box, then you will need to reference the pin diagram below (also found in the Revolution User Guide).

 
 

Wire a direct connection between the following pin pairs:
Pin 1 (+5V) to pin 5 (V+)
Pin 6 (V-) to pin 7 (GND)

Then connect the desired User OUT to User IN either directly or through a switch. Again, you will need to program the reader to turn on the connected GPO/User OUT and to trigger on the connected GPI/User IN. This can be done using the Impinj MultiReader program or via Low Level Reader Protocol (LLRP) programming as shown in the sample code below.

 

private void GPO1_ON()
{
// this routine turns on 3.3v power in LLRP GPO1
// LLRP GPO1 = Hardware PIN 14 / GPOUT0MSG_SET_READER_CONFIG 

msg = new MSG_SET_READER_CONFIG();

msg.GPOWriteData = new PARAM_GPOWriteData[1];
msg.GPOWriteData[0] = new PARAM_GPOWriteData();
msg.GPOWriteData[0].GPOData = true;
msg.GPOWriteData[0].GPOPortNumber = 1;
MSG_SET_READER_CONFIG_RESPONSE rsp = reader.SET_READER_CONFIG(msg, out msg_err, 12000);
if (rsp != null)
{
textBox2.Text = rsp.ToString();
}
else if (msg_err != null)
{
textBox2.Text = rsp.ToString();
}
else
textBox2.Text = "Commmand time out!";
}
private void GPO1_OFF()
{
// this routine turns off power in LLRP GPO1
// LLRP GPO1 = Hardware PIN 14 / GPOUT0MSG_SET_READER_CONFIG 
msg = new MSG_SET_READER_CONFIG();
msg.GPOWriteData = new PARAM_GPOWriteData[1];
msg.GPOWriteData[0] = new PARAM_GPOWriteData();
msg.GPOWriteData[0].GPOData = false;
msg.GPOWriteData[0].GPOPortNumber = 1;
MSG_SET_READER_CONFIG_RESPONSE rsp = reader.SET_READER_CONFIG(msg, out msg_err, 12000);
if (rsp != null)
{
textBox2.Text = rsp.ToString();
}
else if (msg_err != null)
{
textBox2.Text = rsp.ToString();
}
elsetextBox2.Text = "Commmand time out!";
}

 


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

Comments

Impinj (NASDAQ: PI) wirelessly connects billions of everyday items such as apparel, medical supplies, and automobile parts to consumer and business applications such as inventory management, patient safety, and asset tracking. The Impinj platform uses RAIN RFID, delivering information about items to the digital world and enabling the Internet of Things.