Fosstrak EPCIS used in Norwegian Food Chain RFID Tracking

January 24, 2011

The RFIDJournal is reporting today about an RFID deployment in Norway that uses the Fosstrak EPCIS:

NLP was established in 2006 as an organization for reducing the environmental footprint of the logistics operations within the Norwegian fast-moving consumer goods (FMCG) supply chain. The RFID pilot is being managed by Hrafn (the Norse word for raven, symbolizing the two birds of Odin), an RFID consultancy and the pilot’s chief architect. The RFID infrastructure includes fixed readers provided by Impinj, antennas from Intermec and handheld readers supplied by Nordic ID, as well asTag Acquisition Processor (TAP) middleware from Reva Systems. Hrafn is also hosting Electronic Produce Code Information Services (EPCIS) software used to store RFID data and make it available to supply chain participants, employing the open-source EPCIS software known as Fosstrak (seeOpen-Source EPCIS Catching On). Lexit Group is installing and integrating the hardware and providing software that links a user’s back-end information, such as the order number and ship-to-location Global Location Number (GLN) code, with the pallets’ tag ID numbers, while Telenor Ojects‘ Shepherd platform links data from read events to the EPCIS software, while also providing hardware monitoring by detecting errors such as connectivity problems with a reader or antennas out of service.

Read full article on RFIDJournal.


LLRP Commander Applications: RFID Based Sensing

September 23, 2010

I’ve been developing ultra low-cost wireless sensor nodes using the RFID tag antenna as a sensing mechanism. Essentially, that involves relating a change in a physical parameter of interest to a corresponding change in the RFID tag’s electrical properties.For an LLRP compliant reader, that entails extracting quantities like log time, EPC, Channel Index, Tag Count and Peak RSSI level. For this purpose, I’ve found the LLRP Commander and associated MATLAB extensions to be an invaluable resource in seamlessly extracting the sensor-tag data for further processing.

The LLRP Commander has a useful tabular view to parse incoming RO_ACCESS_REPORT messages and display tag data as we can see in Fig 1. For example, by looking for a specific EPC we can infer if the reader is continually observing a tag over time. Similarly, by observing gross changes in the Peak RSSI, we can discern whether a change in some physical parameter is changing RFID tag antenna performance.

Fig 1: The ROAccessReport Table View

As an example, here’s a design of an RFID temperature alarm sensor that makes use shape memory polymer actuation to trigger an alarm when the temperature exceeds 7 C. For those who are unfamiliar with the name, a Shape Memory Polymer (SMP) is a polymer which retains a deformed position when cooled below a specific temperature and which gradually actuates and returns to the un-deformed position when heated above it. The specific temperature of actuation can be controlled by varying the chemistry of the polymer. Naturally, this makes for a great temperature dependent actuation technique. Fig 2. shows the sensor prototype while Fig 3. illustrates the sensor working.

Fig 2: The temperature sensor prototype

Fig 3: The temperature sensing mechanism

As we can see from Fig.3 the sensor is initialized by cooling the sensor below 7 C and deforming the polymer in such a way that the attached detuning metal plate is behind the lower tag. Thus in this state, the lower tag responds with a lower backscatter response power than the top tag. Now if the sensor is placed in a zone above 7 C, the polymer starts to actuate and the metal plate takes up a position behind the upper tag. Thus the upper tag now responds with a worse backscatter power response. By observing a flip in relative signal strength performance (as seen in Fig.4(a)), we can infer that a critical temperature threshold has been violated.

LLRP Commander’s MATLAB integration allows us leverage MATLAB’s computational capabilities to create very illustrative figures and graphs. For example, Fig. 4(b) demonstrates how MATLAB was used to generate the temperature tag-sensor response graph by
using the tag data recorded from LLRP Commander.

Fig 4(a): Tag RSSI as a state indicator

Fig 4(b): MATLAB code accessing LLRP SQL database

Scope for Feature Addition

I think the versatility of the LLRP Commander would be boosted by including the following features:

1)      Tag Population Analysis: A sweep to detect all tags in the vicinity of the reader. The user could then select tags that matter and choose to only display content from them. Also it would be nice to associate an EPC with a tag name like “Bottom Tag” or “Metal Tag” for convenience.

2)      Filtering by Channel Index: For example, if I am interested in displaying RSSI values from a certain EPC at 902 MHz only – this would be very useful in frequency sweeps.

I’d be happy to make additional posts on how I used LLRP Commander to implement different types of sensing techniques. Thanks to Chris and Sam for implementing features like the ROAccessReports table!

You can read more about Tag Antenna Based Sensing at: http://web.mit.edu/rahul_b/www

Regards,

Rahul


Maximum reads per second?

December 15, 2009

For one of our experiments, we have been trying to maximize the number of reads per second from a single RFID tag using an Impinj Speedway reader. At the moment, the best we are able to do is about 1 read per second (if there are more tags in range, we’ll get more reports per second). Has anyone in the community managed to get a higher sampling rate (=higher read rates) and could share their ADD_ROSPEC message?  Our ADD_ROSPEC is posted below .

ADD_ROSPEC Message:

<?xml version=”1.0″ encoding=”UTF-8″?>
<llrp:ADD_ROSPEC xmlns:llrp=”http://www.llrp.org/ltk/schema/core/encoding/xml/1.0″ Version=”1″ MessageID=”4″>
<llrp:ROSpec>
<llrp:ROSpecID>1</llrp:ROSpecID>
<llrp:Priority>0</llrp:Priority>
<llrp:CurrentState>Disabled</llrp:CurrentState>
<llrp:ROBoundarySpec>
<llrp:ROSpecStartTrigger>
<llrp:ROSpecStartTriggerType>Immediate</llrp:ROSpecStartTriggerType>
</llrp:ROSpecStartTrigger>
<llrp:ROSpecStopTrigger>
<llrp:ROSpecStopTriggerType>Null</llrp:ROSpecStopTriggerType>
<llrp:DurationTriggerValue>0</llrp:DurationTriggerValue>
</llrp:ROSpecStopTrigger>
</llrp:ROBoundarySpec>
<llrp:AISpec>
<llrp:AntennaIDs>0</llrp:AntennaIDs>
<llrp:AISpecStopTrigger>
<llrp:AISpecStopTriggerType>Null</llrp:AISpecStopTriggerType>
<llrp:DurationTrigger>0</llrp:DurationTrigger>
</llrp:AISpecStopTrigger>
<llrp:InventoryParameterSpec>
<llrp:InventoryParameterSpecID>9</llrp:InventoryParameterSpecID>
<llrp:ProtocolID>EPCGlobalClass1Gen2</llrp:ProtocolID>
<llrp:AntennaConfiguration>
<llrp:AntennaID>0</llrp:AntennaID>
<llrp:RFTransmitter>
<llrp:HopTableID>1</llrp:HopTableID>
<llrp:ChannelIndex>0</llrp:ChannelIndex>
<llrp:TransmitPower>71</llrp:TransmitPower>
</llrp:RFTransmitter>
<llrp:C1G2InventoryCommand>
<llrp:TagInventoryStateAware>0</llrp:TagInventoryStateAware>
<llrp:C1G2RFControl>
<llrp:ModeIndex>0</llrp:ModeIndex>
<llrp:Tari>0</llrp:Tari>
</llrp:C1G2RFControl>
<llrp:C1G2SingulationControl>
<llrp:Session>2</llrp:Session>
<llrp:TagPopulation>8</llrp:TagPopulation>
<llrp:TagTransitTime>0</llrp:TagTransitTime>
</llrp:C1G2SingulationControl>
</llrp:C1G2InventoryCommand>
</llrp:AntennaConfiguration>
</llrp:InventoryParameterSpec>
</llrp:AISpec>
<llrp:ROReportSpec>
<llrp:ROReportTrigger>Upon_N_Tags_Or_End_Of_AISpec</llrp:ROReportTrigger>
<llrp:N>1</llrp:N>
<llrp:TagReportContentSelector>
<llrp:EnableROSpecID>0</llrp:EnableROSpecID>
<llrp:EnableSpecIndex>0</llrp:EnableSpecIndex>
<llrp:EnableInventoryParameterSpecID>0</llrp:EnableInventoryParameterSpecID>
<llrp:EnableAntennaID>1</llrp:EnableAntennaID>
<llrp:EnableChannelIndex>1</llrp:EnableChannelIndex>
<llrp:EnablePeakRSSI>1</llrp:EnablePeakRSSI>
<llrp:EnableFirstSeenTimestamp>1</llrp:EnableFirstSeenTimestamp>
<llrp:EnableLastSeenTimestamp>1</llrp:EnableLastSeenTimestamp>
<llrp:EnableTagSeenCount>1</llrp:EnableTagSeenCount>
<llrp:EnableAccessSpecID>0</llrp:EnableAccessSpecID>
<llrp:C1G2EPCMemorySelector>
<llrp:EnableCRC>1</llrp:EnableCRC>
<llrp:EnablePCBits>1</llrp:EnablePCBits>
</llrp:C1G2EPCMemorySelector>
</llrp:TagReportContentSelector>
</llrp:ROReportSpec>
</llrp:ROSpec>
</llrp:ADD_ROSPEC>


SQL Database Integration in Fosstrak LLRP Commander/ALE Middleware

December 12, 2009

In a previous blog post, I already mentioned a new feature of Fosstrak that allows users to log tag reads reported in LLRP RO_ACCESS_REPORTS to a SQL DB. Here are a few screenshots that illustrate this functionality.

Specify DB connection in Fosstrak LLRP Commander


LTKJava – the (hidden) Fosstrak module

December 9, 2009

I was checking the other day the download numbers of LTKJava, the Java implementation of a Codec for the LLRP protocol which the Fosstrak team contributed to the LLRP toolkit project. The Java implementation has been downloaded more than 600 times since we released the latest version at the end of July. The usage of LTKJava by major reader vendors and reader middleware such as Intermec and OatSystems underlines the contribution open source software can make to the field of RFID and the adoption of standardized protocols.

At Fosstrak, we are using LTKJava in our Fosstrak LLRP Commander, a tool to control and manage RFID readers via LLRP.


Mark Roberti of the RFIDJournal writes about Fosstrak

November 5, 2009

Mark Roberti, editor of the RFIDJournal, writes about Fosstrak and the adoption of open source EPCIS on his blog.


New Feature of Fosstrak LLRP Commander: Log LLRP tag reads to SQL database

November 5, 2009

This is a quick post about a really cool feature Samuel, the Fosstrak lead on the LLRP Commander, added in the last release that allows users to specify the database to which LLRP messages are logged. Previously, we used a database that was built-in into the LLRP Commander. With the new feature, users can specify a (remote) SQL database server of their choice to which they want the data to be logged. This makes data analysis really trivial. Setup an open source database such MySQL or PostgresQL, install the Fosstrak LLRP Commander, connect to your reader or readers of choice and then analysis your data via SQL. The Fosstrak LLRP Commander logs all messages, but also parses the individual RO_ACCESS_REPORTs for TAG_REPORT_DATA on each tag read and lists each TAG_REPORT_DATA parameter as a new row in the SQL table.

This is great for data analysis purposes. No need to write any code to get RFID data such as IDs or RSSI values from one or more readers. At the MIT Auto-ID Lab, we are now using Matlab to query the database and visualize the data captured.


2000th download of Fosstrak EPCIS

October 30, 2009

We are very happen to announce that the Fosstrak open source EPCIS repository has just been downloaded for the 2000th time since the initial release  in 2007. This makes the Fosstrak EPCIS repository probably the most widely deployed implementation of the EPCglobal EPCIS standard. We’ve come along way from the initial alpha release back in 2007 to today’s EPCglobal certified version that is seeing significant use by a broad spectrum of users – both in academia and in industry.


RFID Journal writes about release of Fosstrak LLRP Commander

September 1, 2009

The RFIDJournal wrote a news item on the Fosstrak LLRP Commander, the latest open source Fosstrak tool that provides an intuitive interface to configure and control RFID readers that support EPCglobal‘s Low-Level Reader Protocol (LLRP) standard.  See here for the full RFIDJournal article.


Follow

Get every new post delivered to your Inbox.