RFID and Messaging Systems

From CEITWiki

Jump to: navigation, search


RFID and Messaging Systems

We are working on making RFID readers publishers of data. This data is then available to any number of clients who choose to subscribe to the appropriate topics.

The work will proceed in two parts. First, we need to review the RFID standards to determine which standards we should be looking at for various different applications (in education). Second, we want to identify a number RFID readers that are suitable, and determine how we access the reader. We are particularly interested in open source drivers and reading software. Third, we want to look at the two publish-subscribe systems we are currently working with: XMPP and MQTT.

The project is open sourced feeded, and the project will be open source.

The main frame work

Tags -> embedded platform(MQTT client) -> MQTT server -> Software Agent -> XMPP Server -> Applications

Key deliveries

  • 1. RFID reader on mbed.
  • 2. Software Agent -- Combine MQTT and XMPP protocol, be able to send and receive messages in to format and do format conversion.
  • 3. MQTT client on mbed.
  • 4. XMPP client on mbed.


Embedded system, MQTT, mbed, Arduino, XMPP, Foursquare, RFID, Violet tag.

RFID Standards

low-frequency (LF: 125–134.2 kHz and 140–148.5 kHz) (LowFID) tags and high-frequency (HF: 13.56 MHz) (HighFID) tags can be used globally without a license. Ultra-high-frequency (UHF: 868–928 MHz) (Ultra-HighFID or UHFID) tags cannot be used globally as there is no single global standard.

Some standards that have been made regarding RFID technology include:

  • ISO 14223 – RadiofrequencyTemplate:Sic identification of animals – Advanced transponders
  • ISO/IEC 14443: This standard is a popular HF (13.56 MHz) standard for HighFIDs which is being used as the basis of RFID-enabled passports under ICAO 9303. The Near Field Communication standard that lets mobile devices act as RFID readers/transponders is also based on ISO/IEC 14443.
  • ISO/IEC 15693: This is also a popular HF (13.56 MHz) standard for HighFIDs widely used for non-contact smart payment and credit cards.
  • ISO/IEC 18000: Information technology — Radio frequency identification for item management:
    • Part 1: Reference architecture and definition of parameters to be standardized
    • Part 2: Parameters for air interface communications below 135 kHz
    • Part 3: Parameters for air interface communications at 13.56 MHz
    • Part 4: Parameters for air interface communications at 2.45 GHz
    • Part 6: Parameters for air interface communications at 860–960 MHz
    • Part 7: Parameters for active air interface communications at 433 MHz
  • ISO/IEC 18092 Information technology — Telecommunications and information exchange between systems — Near Field Communication — Interface and Protocol (NFCIP-1)
  • ISO 18185: This is the industry standard for electronic seals or "e-seals" for tracking cargo containers using the 433 MHz and 2.4 GHz frequencies.
  • ISO/IEC 21481 Information technology — Telecommunications and information exchange between systems — Near Field Communication Interface and Protocol -2 (NFCIP-2)
  • ASTM D7434, Standard Test Method for Determining the Performance of Passive Radio Frequency Identification (RFID) Transponders on Palletized or Unitized Loads
  • ASTM D7435, Standard Test Method for Determining the Performance of Passive Radio Frequency Identification (RFID) Transponders on Loaded Containers
  • ASTM D7580 Standard Test Method for Rotary Stretch Wrapper Method for Determining the Readability of Passive RFID Transponders on Homogenous Palletized or Unitized Loads

RFID Readers


There are a number of manufacturers of these devices. Here is a short list of ones we are considering:

  • Touchatag [1]
  • ThingMagic [2] These are UHF readers operating at 865-956 MHz. They have a range of around 30 feet and a read rate of over 190 tags per second.
  • Violet tags

RFID tags and readers developed by violet company, which also invented Nabaztag. They are on ISO/IEC 14443A-4 standard, operating on 13.56MHz.

Nabaztag Mirror Starter Pack[3] includes a mirror reader, 2 violet nano tags and 3 violet stamp tags.

12 Violet stamp tags @ US$22.99 [4]

  • ACS ACC-122 This forms the basis of the Touchatag reader. The libnfc.org guys have a page on this [5] and there is also the home page of the company that makes the device [6] and their page on the ACC-122 and its SDK [7].


We are interested in accessing this hardware via open source drivers. The reason for this is that we want to be able to access the readers via a number of different operating systems, or in the case for the Arduino and mbded, via no operating system.

  • libnfc.org - Public platform independent Near Field Communication (NFC) library [8]

From the Intruction on the website, we are offered the following background:

Welcome to the official website of libnfc. On this site you will find information concerning the open source library for Near Field Communication (NFC). libnfc is the first free NFC SDK and Programmers API released under the GNU Lesser General Public License. It provides complete transparency and royalty-free use for everyone. Since the RFID market is spoiled by proprietary hard and software we want to contribute constructively by distributing a free library which can be used for various RFID and NFC applications.

This website mainly focuses itself on researches and developers that want to work with NFC hardware but don't want the pain of programming NFC software on a very low level. Furthermore, this library does not require any license fee or non-disclosure agreement to be signed for. This list shows the current supported features. We hope this moves the NFC development to a more open culture where discussions about applications and techniques can be shared among the users.

All major operating systems are supported, including Linux, Mac OS X and Windows. Compilation should work out of the box. libnfc currently depends on Winscard/ PCSC-Lite and libusb. The supported NFC hardware devices are the ACS ACR122(U) NFC reader and various NFC-dongles. In principle all hardware based on the NXP PN53x NFC Controller chip is supported. Check the compatibility for more info. The library currently supports modulations for MIFARE, FeliCa, NFCIP (peer 2 peer) and other ISO14443 complient tags.

  • Python-mirror - Andrew Godwin was the first to publish a Python driver [9] for the Violet Mirror [10]. This was extended by Dan W [11] to allow him to login in to FourTap [12] (checking into FourSquare with an Oyster card (UK based)) .



MQTT[13] is stand for MQ telemetry transport protocol, a extremely light weight Publish-Subscribe messaging model. It was developed by IBM, and the current version is on V3.1. MQTT is very suitable to remote communication, and best suit to remote sensor networks.

MQTT Server Broker

  • IBM WebSphere MQ Telemetry --The Telemetry feature available for IBM WebSphere MQ version and above provides full MQTT v3.1 support and interoperability with WebSphere MQ. It also ships with reference Java (MIDP and above) and C clients.
  • IBM Lotus Expeditor micro broker --Part of the Lotus Expeditor product, micro broker is a Java implementation of an MQTT server. It provides Java (including JMS), C# and C clients.
  • Really Small Message Broker[14] --Available to download from IBM alphaWorks, RSMB is a C implementation of an MQTT server. It provides complete MQTT v3 support and a C client API.
  • IBM WebSphere Message Broker --Message Broker versions up to version 6.1 included a SCADA node for full MQTT v3 support.
  • Mosquitto --A open source MQTT server.

MQTT Client

There is a range of MQTT client available online, most them are open sourced and have GUI ready for use. The following clients are what be used on project.

  • iA92[15] --A java written MQTT client
  • liblwmqtt[16] --A very light weight client on C
  • libmosquittocpp[17] --A C++ client library provided with the mosquitto server

MQTT on Arduino

Thanks to Mr Nick O’Leary, an excellent IBM engineer, there is a MQTT library ready to use on Arduino platform. The library has full supports to MQTT protocol version 3. This Arduino library has beed successfully implemented for MQTT messaging on my thesis project,'Remote Controlled Microscopy'.

  • The MQTT client for Arduino[18]

MQTT on mbed

Unfortunately, there are no existing MQTT library available for mbed platform.

RFID and XMPP PubSub

Personal tools