(Part 2) – Impinj Speedway and BizTalk RFID: Hands On

Building on the steps in the previous post, we’ll use BizTalk RFID to connect to the Impinj Speedway. This post assumes that you've gone through the steps in part 1.

Connectivity and configuration with Biztalk RFID

Now the part we've all been waiting for - firing up Biztalk RFID, and using it in conjunction with the Impinj reader to do cool stuff.  As the Speedway supports LLRP (low-level reader protocol, a standard for communication between RFID readers and middleware such as BizTalk RFID), no additional provider is required – BizTalk RFID 2009 ships an LLRP provider out of the box (note; if you’re using BizTalk RFID 2006 R2, you’ll need to download and install the Standards Pack).

Adding the Reader

  • From the RFID Manager, right click the Devices node, and click on New Device.
  • From the Add Device Wizard (Introduction)   dialog, ensure that the Add single device radio button is selected, and click Next.
  • From the Add Device Wizard (Provider) dialog, click on LLRP in the list of available providers and click Next.
  • From the Add Device Wizard (Connection) dialog, type the IP address of the device into the Name or IP address textbox, and type in 5084as the value for the PortNote that the standard port for LLRP is 5084.  Click Next.
  • From the Add Device Wizard (Add Device to a Group) dialog, select any device group (or the root device group) and click Next.
  • From the Add Device Wizard (Authentication) dialog, type in root for the username, and impinj for the password (the default factory values).  Click Next to start connecting to the device.  This will take several seconds, so don't get too impatient.

Checking for Tag Reads

  • Place a tag in the read field of the antenna (in this case, somewhere close any of the connected antennae).
  • From the RFID Manager, click the Devices node. 
  • Right click on the new device you have just added, and click View Tags.


Almost there!  Now that we are successfully communicating with the Speedway reader and receiving tag notifications, we need to bind the device into an RFID process to persist tag events into a database, and then build a report.

Building a BizTalk RFID process and capturing tag reads

Now for the fun part - capturing the stream of information from the Speedway reader, and making it consumable by a user.  In this section, I'll create a basic RFID process using the SqlSink event handler.

Creating a Biztalk RFID Process

The first step in capturing the information from the RFID reader will be to define an RFID process, bind in that reader, and use an event handler to route information to a SQL database.

  • From the RFID Manager, right click the Processes node, and click on New Process.
  • From the New Process Dialog
    • Type in SampleProcess as the Process name.
    • Select Reliable as the Tag processing mode.
    • Leave the description blank.
    • Ensure the Start Bind Wizard box is checked.
    • Click OK.


  • From the Bind Wizard (Welcome to the Bind Wizard) dialog, click Next.
  • From the Bind Wizard (Bind Process to Logical Devices) dialog, we'll create a logical device.  Logical devices are used to create associations between event sources (like devices and antenna) and logical or physical constructs (like portals or doorways).  In this case, our system will pretend that the Speedway is located at a loading dock, door A.
  • Click New.
  • From the Logical Device Name dialog, type in Dock Door A and click OK.
  • Back in the Bind Wizard (Bind Process to Logical Devices) dialog, click on the checkbox for Dock Door A.  If you don't click on the checkbox, the option to bind physical devices to the logical device will not be available.
  • In the Bind Wizard (Configure logical device - Dock Door A)   dialog, expand the Speedway entry to expose the list of sources (4, for the four antenna supported by the Speedway). 
  • Click on the checkbox next to the Speedway reader to bind all events from the device to this logical device.  Note that this also creates "soft links" to all antenna of the reader.
  • Click Next.


  • From the Bind Wizard (Configure Components) dialog, click New Component.
  • Click on the SqlServerSink component, then click Add.


  • Type in SqlSink as the Instance name and click OK.


  • Click Close to finish adding components.
  • Click Next.
  • Ensure that the Start the process when I click Finish box is checked, then click Finish.
  • From the RFID Manager, you should be able to see the process running.
  • Right click on the process name and click View Tags.  By default the page is on a Manual refresh, so click the Refresh button.  If you don't see any tags in the window, it's time to troubleshoot!  Happily, troubleshooting is covered in the next installment of this series.


  • Now that we've confirmed tags can be read in the process, the last step before building out a reporting interface will to confirm that the event handler (the SqlSink) is processing the tags correctly.  Start up the SQL Server Management Studio, and connect to the RFIDSINK database.
  • From the list of tables in the RFIDSINK database, dump the contents of the dbo.TagEvents table.  The tag reads should now be visible in the database.



In this posting, we walked through using BizTalk RFID to communicate with the Impinj Speedway and flow tag information into a database.