Connecting GPIO Devices to Speedway RAIN RFID Readers

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

This tutorial 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 this tutorial is how to connect a light sensor to trigger the Speedway Reader reader using General Purpose Input (GPI) terminals and how to connect a light stack to the General Purpose Output (GPO) terminals.

While the tutorial instructions 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.

Connecting to Reader GPIO With the Impinj GPIO Connectivity Box: 

Before getting started with connecting devices to the GPIO, it’s important to ensure the GPIO Box is using the correct power source (either from reader or external power). This is configured using the jumpers on the GPIO Box, and is described further below. 

Jumper Configuration – Power and Relays: 

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.

 20191220_113400.jpg
The image above shows the jumpers configured to use the reader's 5V supply. When configured to the left, they use the reader's 5V supply, but when configured to the right, they will use the external AC supply on the Speedway Reader's GPIO Box (Up to 24V).
 

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 Impinj GPIO Connectivity Box should illuminate. Below is a diagram of the GPIO Box with a Normally-Open GPI Device connected in the method described above (no ground wire):

blobid0.png



You can wire a direct short between a GPO and GPI (for example, 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. With this connection, you will see the LEDs illuminated for OUT1 and IN1 showing our connection and program logic is successful. Further information on performing these actions is shown further down this article, using both ItemTest and via LLRP.

We also have included circuit diagrams of the Impinj GPIO Connectivity Box’s GPI and GPO in the following documents:

GPIO Box GPI Circuitry
GPIO Box GPO Circuitry

Connecting to Reader GPIO Without the Impinj GPIO Connectivity Box: 

If you are not using the Impinj 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)

Note: when connecting without the Impinj GPIO Connectivity Box, is that when the GPO is a logic high, the GPO cannot drive any appreciable current without the addition of an external resistor. The simplest way to do this is to provide a lower impedance resistor in parallel with the GPO 10k resistor to reduce the resistance. With the GPIO box, this is handled already through the GPIO Box Circuitry. Please see the circuit diagrams for the reader's GPI and GPO connections below:

Reader's GPI Circuitry
Reader's GPO Circuitry

After wiring these direct connections, we can continue the testing. We can do this by connecting 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.

With GPI connections, the inputs are opto-isolated using a phototransistor interface and can support a voltage range of 3.3V – 24V. 

This testing can be done using the Impinj ItemTest program or via Low Level Reader Protocol (LLRP) programming as shown in the sample code at the bottom of this article. With ItemTest, you can test each GPO by configuring the reader through the "Reader Settings" tab, and controlling the GPO in the 'Utilities' tab. A picture is included for reference 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(); } else
textBox2.Text = "Commmand time out!"; }

 

 

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

Comments

0 comments

Article is closed for comments.