Welcome To Our Support Portal

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


Submit a request

Speedway Connect

Follow


Speedway Connect is licensed software that runs on the Impinj Speedway Revolution readers and gateways which enables users to easily plug-in RFID technology – extending the reach of this powerful data collection technology. The simplified graphical user interface enables even those unfamiliar with RFID to set basic reader configurations. Data is passed to the PC application in keystrokes via USB-HID, serial, Ethernet or Web delivery for RFID deployment without costly software development or middleware expenses.

 

Software Downloads and Documentation:

 Version: 2.2.0   Download Current ReleaseDownload File
 Documentation: 
 - Product Brief
 - Common Usages
 - Getting Started
 - Sample Code

 Note: Requires reader firmware version: Octane 5.12.0 or later
 Impinj partners can download firmware here.

   


 

Common Usages

Speedway Connect is being used in many different capacities and this section lists out a couple of those cases:

1) An Impinj Reader can be a barcode scanner and have the EPC show up on your computer screen in the currently active application.

  • Configure Speedway Connect to output only the EPC to Keyboard Emulation (USB-HID)

2) An Impinj Reader can store tag reads in a file on a usb stick attached to the reader for later retrieval by ftp or by moving the usb stick to another location.

  • Configure Speedway Connect to output to "USB Flash Drive"
  • Put a FAT formatted drive in the USB Host port on the Speedway Reader.
  • Speedway Connect will write tag data to the drive, creating a new file every hour.
  • If using FTP, the location of the USB drive is: /mnt/usbfs/usbsda1
  • This feature should be used when you want to save tag reads even when network outages occur.

3) An Impinj Reader can output tag reads to a configured TCP/IP Socket (Default).

  • Configure Speedway Connect to output to "TCP/IP Socket" on a specified port.
  • A client can connect to the reader on the configured TCP/IP Socket to get tag reads.

4) An Impinj Reader can post tag information to the device connected on the serial port.

  • Configure Speedway Connect to output to "Serial Port" and specify a Baud Rate.
  • Whatever is connected to the serial port on the reader will receive the tag information.

5) An Impinj Reader can post tag information to a remote server on a fairly regular interval

  • Configure Speedway Connect to output to "HTTP Post" (and "HTTP Post Proxy" if needed).
  • Speedway Connect allows for specifying a "Reader Name" to be the unique identifier of the reader.
  • Both Authentication and Proxy information can be specified for connecting to the remote HTTP Web Service.
  • Tag information will only be sent if it is available and the minimum Update Interval has expired.
    • Note: If the Update Interval is too low, tag information will be sent as fast as Speedway Connect can process it and all other output has been sent. 
  • Speedway Connect will hold onto a maximum of 5000 tags before dropping them when a http post fails for either a bad network or http post failure response.

6) You can configure various pieces of information to be output by Speedway Connect.  This includes:

    • Antenna Port
    • Timestamp
    • Peak RSSI
    • TID (Monza Tags only)
    • User Memory
    • Heartbeat
  • Note: The information output by Speedway Connect will be delimited by either a space, tab, or comma.

 7) The Heartbeat is a very useful output feature.

  • When you configure Speedway Connect to output a Heartbeat on a regular interval (aka Period), Speedway Connect will output a fictitious tag with EPC "*" (or "******") via the Serial Port or HTTP Post Output options on a regular basis.
  • Note: If the Update Interval is too low, tag information will be sent as fast as Speedway Connect can process it and all other output has been sent.

 

Getting Started

Demo Mode or Use of License Key

The Speedway Connect software available on this page is a fully functional "demo" version.  This software will only run for 500 tag reports without a license key and then the program is disabled.  To continue to use Speedway Connect in this mode, you can visit the Speedway Connect web user interface (UI) on the reader and click "Save".  This will provide an additional 500 tag reports.

Once you are ready to use Speedway Connect in an uninterrupted (non-demo) mode, you will need to purchase a Speedway Connect license from your authorized Impinj reseller or distributor.  They will provide you with a license key (one key is required per reader). Each reader must have its own unique license key loaded in the Speedway Connect Web UI which is based on the reader's serial number.

Set up and connect all RFID system components.

  1. Attach antennas to the reader as desired. Take care not to cross thread the antenna cable.
  2. Connect the reader to a PC either directly or via router or switch using a standard Ethernet cable (no crossover required).
  3. If desired, connect USB host-to-device cable and/or RS-232 cable between Speedway Revolution reader and PC
    1. The flat USB Host end will connect to the PC.
    2. The “more square” USB device end will connect to the USB Device port on the reader.
    3. RS-232 pins are located on the reader’s 15 pin port.
      1. Pin 2 – Receive
      2. Pin 3 – Transmit 
      3. Pin 7 - Ground 
  4. Connect power to the Speedway Revolution and wait for the reader to boot. (~90 sec).

Load Speedway Connect software on your Speedway Revolution or Speedway xPortal  reader.

If you received Speedway Connect in a .upg file format, simply load it on the reader in the exact same way firmware is loaded.  If the firmware is below version 5.12.0, please upgrade to the latest version before installing. Firmware upgrade files are available from your Impinj authorized partner and very easy to load using the WebUI.

When successfully installed, the reader Web UI will display 'Application SW Version' information.

Follow the links to get more information on connecting to the reader and using the WebUI to upgrade firmware.

 

Configure the Reader and Start Reading Tags

  1. Point your PC browser to https://speedwayr-xx-xx-xx.local where xx-xx-xx are the last 6 characters of the MAC. You can also use the reader IP address if it is known. 
    1. For example, if connecting to a Speedway Revolution reader with a MAC address of 00:16:25:10:54:F9, the url to enter in your browser would be: https://speedwayr-10-54-f9.local
      1. In some instances the '.local' is not required (i.e. reader is on an enterprise network)
      2. Be sure to include the HTTPS (secure browser) in order to get the Speedway Connect Web UI.
      3.  A message may appear warning about security certificate, select 'Continue Anyway' or 'Ignore' (exact message and continue option will depend on your browser). 
    2. Enter the user name and password, the default is:
      1. Username: root
      2. Password: impinj
    3. Configure the application as desired.
    4. Enter the license key if available and click [Save].  The license keys are loaded in the "Speedway Connect Administration" section of the UI. If you need a license key for Connect 2.0, please purchase SKU IPJ-S4002. 
    5. The app will start running after the [Save] button is clicked. Once configured, the reader does not need to remain connected to the Ethernet network unless it is sending tag data out that port. 

Speedway Connect is now supported on all gateway products (xArray, xSpan, and xPortal).

 

 

 

Sample Code

TCP Client Examples

HTTP POST Example

Serial Client Example

 

 

TCP Client Example in Python

#!/usr/bin/env python

from __future__ import print_function
import socket
import select
import sys

# The IP address or hostname of your reader
READER_HOSTNAME = "SpeedwayR-10-27-52"
# The TCP port specified in Speedway Connect
READER_PORT = 14150
# Define the size of the buffer that is used to receive data.
BUFFER_SIZE = 4096

# Open a socket connection to the reader
s = socket.create_connection((READER_HOSTNAME, READER_PORT))

# Set the socket to non-blocking
s.setblocking(1)

# Make a file pointer from the socket, so we can read lines
fs=s.makefile()

# Receive data in an infinite loop
while 1:
line = fs.readline()
# If data was received, print it
if (len(line)):
print (line, end="")

 

TCP Client Example in C#

using System;
using System.Net.Sockets;
using System.IO;
namespace SpeedwayConnectClient
{
    class Program
    {
        static void Main(string[] args)
        {
            // The IP address or hostname of your reader
            const string READER_HOSTNAME = "SpeedwayR-10-27-52";
            // The TCP port specified in Speedway Connect
            const int READER_PORT = 14150;
 
            try
            {
                // Create a new TCPClient
                TcpClient client = new TcpClient();
                // Connect to the reader
                client.Connect(READER_HOSTNAME, READER_PORT);
                // Get a reference to the NetworkStream
                NetworkStream stream = client.GetStream();
                // Create a new StreamReader from the NetworkStream
                StreamReader streamReader = new StreamReader(stream);
                // Receive data in an infinite loop
                while (true)
                {
                    // Read one line at a time
                    string line = streamReader.ReadLine();
                    // Print it to the screen
                    Console.WriteLine(line);
                }
            }
            catch (Exception e)
            {
                // An error has occurred
                Console.WriteLine(e.Message);
            }
        }
    }
}

 

TCP Client Example in Java

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;
public class SpeedwayConnectClient
{
    public static void main(String[] args)
    {
        // The IP address or hostname of your reader
        final String READER_HOSTNAME = "SpeedwayR-10-27-52";
        // The TCP port specified in Speedway Connect
        final int READER_PORT = 14150;
         
        try
        {
            // Create a TCP socket connection to the reader
            Socket s = new Socket(READER_HOSTNAME, READER_PORT);
            // Create a BufferedReader object from the socket connection
            BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
            // Receive data in an infinite loop
            while (true)
            {
                // Read one line at a time
                String line = br.readLine();
                // Print it to the screen
                System.out.println(line);
            }
        }
        catch (Exception e)
        {
            // An error has occurred
            System.out.println(e.getMessage());
        }
    }
}

 

TCP Client Example in Ruby

require 'socket'
 
# The IP address or hostname of your reader
READER_HOSTNAME = 'SpeedwayR-10-27-52'
# The TCP port specified in Speedway Connect
READER_PORT = 14150
 
# Create a TCP socket connection to the reader
s = TCPSocket.open(READER_HOSTNAME, READER_PORT)
 
# Receive data in an infinite loop
while true
  # Read one line at a time
  line = s.gets
  # Print it to the screen
  print line     
end

 

 

HTTP POST Example

One of the available output options is HTTP POST. When this is enabled, the reader will periodically send tag data to a web server. Here are the details of the POST format, along with a sample PHP script showing how to parse the data and put it into a MySQL database as well as a demonstration video of this feature.

These are the POST variables sent by Speedway Connect:

  • reader_name : The name assigned to the reader in Speedway Connect
  • mac_address : The MAC address of the reader
  • line_ending : Line ending character specified in Speedway Connect
  • field_delim : Field delimiter character specified in Speedway Connect
  • field_names : A list of field names, separated by the specified delimiter
  • field_values : A list of field values, separated by the specified delimiter consisting of:
    • antenna_port
    • epc
    • first_seen_timestamp
    • peak_rssi
    • tid
    • user_memory

This an example of a server-side script that will parse the POST data and store it in a MySQL database.

 

 

 

Serial Client Example

using System;
using System.IO.Ports;
namespace SpeedwayConnectSerialClient
{
    class Program
    {
        static SerialPort serial = new SerialPort();
     
        static void Main(string[] args)
        {
            // Configure the serial port
            serial.PortName = "COM3";
            serial.BaudRate = 115200;
            serial.DataBits = 8;
            serial.Parity = Parity.None;
            serial.StopBits = StopBits.One;
            
            // Register an event handler that will be 
            // called when serial data is available
            serial.DataReceived += SerialDataReceived;
            // Open the serial port
            serial.Open();
            // Wait until the user presses enter to exit
            Console.WriteLine("Press enter to exit.");
            Console.ReadLine();
            // Close the serial port
            serial.Close();
        }
        static void SerialDataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            // Serial data is ready
            // Read it one line at a time and print it out
            string line = serial.ReadLine();
            Console.WriteLine(line);
        }
    }
}

 


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

Comments

  • Avatar
    Mike Lenehan

    Posted new Speedway Connect software (version 2.2.0).

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.