RFID Reader

Some general info on RFID:

What is RFID (Radio Frequency Identification)?

It’s an identification technology that is fairly discreet and can be embedded in most materials. Tags come in all sizes and shapes, and frequently require no power source. The tags are fairly indestructible. It’s considered an automatic identification technology (Others include bar code, optical character readers, retinal scan, etc. I’m interested in RFID because it is not a optical/visual identification system.)

There are active and passive RFID systems. I’ve only been looking at passive ones. ”Passive tags” do no contain their own power source. They are energized by the reader. (Active ones are typically used for large assets (such as cargo containers, rail cars, etc.), and have a read range of 60-300 feet. Active tags cost $10 to $50. Readers run $500-$3,000.) Passive tags have a read range of a few inches up to 30 feet. The range depends on the reader’s antenna(s). Cost of tags range range from $.20 for the most basic tag, to a few dollars. When not ordered in bulk (i.e. for folks like us, etc.), the tags are usually $2-$3/each. Readers vary in cost, with increasing cost for increasing functionality (ability to ready multi-freqencies, write (to tag functionality), etc.)

How does a RFID work?

RFID tags are small radio transmitters and receivers with an antenna. A RFID tags is powered by the RF field generated by the reader, which will cause it reflect back a signal. In a passive RFID system, the RFID reader energizes the tag, and senses the change in the field due to the electric load of the tag. It converts this change into information (unique identification/serial number, and any other data stored in the transponder’s memory ) that can then be used by a computer or microcontroller.

Low and high frequency tags use inductive coupling. A coil in the tag and a coil in the reader form an electromagnetic field. Therefore, the tag and reader antenna need to be relatively close. Some transponders can hold up to 2kb of info.

Low frequency: 125-134.2 kHz and 140-148.5 kHz
High frequency: 13.56 MHz
Ultra-highfrequency: 868 Mhz – 928 Mhz (no global standard for this range)

Why go with low or high or ultra-high frequency?
- good penetration of other materials, including water (at close range)
- less susceptible to effects of metal, than higher frequencies
- (used for animal id (pets, farm animals, U.S. Fisheries Dept uses this to track fish in streams)
- widely used longer than HF, and has longer read range
- can only read one transponder at a time (LF devices usually do not have collision
- tend to be bulkier and more expensive than HF tags
- general have lower memory capacity than HF tags
- transponders often packaged as in glass cylinder, or in plastic cylinder, disk, cylindrical, disk, etc.; the ones that are used on pets & humans are the size of a grain of rice
- read range of 12 inches

- have anti-collision detection – allows hundred to operate concurrently in the same field - transponders typically “foil”or “inlay”
- used in library books, apparel, i.d. badges
- up to 3 feet read range, 1 antenna, max range of 28”, multiple antennas, up to 4 feet

- the higher the radio frequency, the more it behaves like light waves than radio waves, therefore, difficult to penetrate of water and metal

(short explanation on penetration of light and radio waves: http://van.hep.uiuc.edu/van/qa/section/Light_and_Sound/Colors/20031228151039.htm)

- better for warehouse & cargo applications -- read range of 10 feeet +
- water, carbon, and metals absorb UHF (bad for tracking soda)
- waves may bounce, esp. over distance, making good readings tricky


All sorts… identify & tracking: inventory control, pet/animal identification, product i.d./authentication, supply/chain stuff. Retail, manufacturing, security & access control

Others: id valuable musical instruments (same idea as pet id), washing machine & clothing (machine automatically knows washing instructions based on tag in clothing), tiny tags medical equipment – can identify incompatibility of types of equipment, medications, etc.

Combining an RFID system with GPS is expensive, and is usually implemented (commercially) to prevent theft.

Good overview at: http://www.rfidjournal.com/article/gettingstarted/

Why go with one type of reader over another?
- Read/write range
- what material it will read through
- tag memory
- tag – form factor (size/shape, how will you be able to attach or embed the tag into the person, place, or thing),
- cost
- availability (many tags are only available on bulk)
- host application & communications protocol (systems integration)
(e.g. Is it compatible with a software application and/or hardware/device you are trying to connect this to? Are readers and tags compatible? Is host application compatible with other software you may need to connect to?)

Other considerations:
- Power of the reader
- Antenna size vs. reading distance
- Interference from other RF devices

Why the big hoohah over RFID these days?
- it’s gotten cheaper
- the internet , the ubiquity of a common network – more interesting than the reader and tags, is the application running it (what and how you’re processing the i.d. information) and how it is connected to a network.
- it’s not a visual identification system (e.g. the communication can be “invisible”) and has a significant read range

Random fun fact: A RFID tag can be permanently turned off.

Great overview in layman’s terms at:

Incompatibility between readers and tags:

Datasheet Report for: SkyeTek RFID Reader M1


1. Description

Like the TI Reader, the Skyetek M1 Reader is an RFID reader module that has read/write capabilities. This one works with 13.56 MHz tags (high frequency). Has multi-protocols functionality -- compatible with ISO 15693, ISO 14443A, and ISO18000-3 (these are standard protocols for different types of transponders by different manufacturers).

2. Tech Specs:

includes list of transponders supported

Some highlights:
RF Frequencey: 13.56 MHZ, FCC & ce compliant
RF Power: 120 mW (?) Host Interface: TTL, RS-232, SPI, I2C
Power Supply: 1.8V to 5V. 3.3VDC fixed, 5.0 VDC fixed
Current: 50 uA sllep, 15mA idle, 50mA scanning
Antenna: Internal or external
Effective range: Internal antenna: 5.8-8.5cm

3. Pin Connections and Descriptions

I'm using a D1, which is the boxed version of the M1. All I have to do is connect a (RS-232) serial connector and a power supply to go. To hook up the M1, follow pin config above.

The D1 requires that you wire up the reader to power and the serial connection, and to the antenna (they provide you with the EA1). If you solder female headers to the antenna, the reader will connect nicely to it. Strangely, the pins on the antenna of the M1 are not labeled, but on the boxed version it is. There are a set of 2 headers off to the side where you can connect wires. If you can’t find the specs for the antenna, use a multimeter to test for continuity between the pins to figure out what they are. Diagram for pins on the EA1 antenna below:

Set up a regulated 5V power supply. Connect the power and ground to Vs & Ground pins, respectively. Connect Transmit, Receive, and Ground pins from the serial connector. Connect ANT (antenna) and Ground pins from external antenna to reader.

Photos of the boxed reader (D1) and the M1 below.

4. Code Sample/Protocol

Tom has some code to read in tag values at: http://www.tigoe.net/pcomp/code/archives/processing/000310.shtml#000310

Processing question: if (inByte == 13 ) { What is the 13 for? \\ Answer: 13 is ASCII for carriage return. In the Protocol documentation, the (RFID) reader sends the host [i.e. Processing] a carriage return at the end of it's response. This indicates the end of message.

Take note of the line: port.write("\r0B1401\r");

According Skytek Protocol documentation, the format for ASCII Protocol Exchange for the host as:
[Carriage Return][Request][Carriage Return] which translates to [\r][0B1401][]r]
General format of a REQUEST is [Flags][Command]. Each is 8 bits.

the ASCII format transmits each byte of the REQUEST and RESPONSE data as 2 ASCII characters, corresponding to the HEX values for each byte. (e.g. hex value 0X1A is sent as a "1" and "A" in ASCII.)

0B1401 corresponds to hex values of [0X1B][0X14][0X01], which correspond to [Flags][Commands][Tag].

0X0B in binary is: 00001011, which correspond to the 8 bit FLAGS field specification. (see Protocol spec sheet)
0X14 is a command for SELECT-TAG.
0X01 specifies a tag type of ISO15693.

What I'll get in processing is a number (tag I.D.) that reads something like: 14E00700001217150D

Sorta know what's going on here, but could use some help. This tells me the memory structure for different transponders. It tells me where (which blocks) and how much data is available for read/write.

The Parallax RFID Reader Module (#28140)

http://www.parallax.com/detail.asp?product_id=28140, just $39, tags for $2.25

Tech specs:

- 1 wire, 2400 baud Serial TTL interface to PC and microprocessors (this is the protocol it uses)
- Requires single +5VDC supply
- .100” pin spacing (conveniently, it will fit with headers/spacing we use with breadboard)
- read distance of approx. 3”
-no collision detection
- “works exclusively with the EM Microelectronics-Marin SA EM4100-family of 125kHz, passive, read-only transponder tags”

This reader is a little more basic. The tags for this also work with the Phidgets RFID reader. (The pen & lipstick are in the photos so you have a scale reference.)

All communication is 8 data bits, no parity, 1 stop bit, non-inverted, least significant bit first. Baud rate is 2400bps, and cannot be changed. When the Enable pin is taken low and a valid tag is placed within the reader’s range, the ID will be transmitted as a 12 byte ASCII string via the TTL. I’ve connected mine to a PIC, which then, via serial communication to a PC, shows me the ID#. If you need to see the ID#, you could use a small LCD screen instead of a computer.

If you look a the code, you can see that all I'm doing is telling the PIC to set the ENABLE pin to low, which tells the reader to "turn on"/activate and start reading in a tag ID. The tag ID is then sent to the reader (via RF) and then communiated to me (the PIC) via serial communication as a 12 byte string. The first byte is a start header byte, then 10 bytes giving me a unique number, and the last byte the end header.

See code:


The PhidgetsReader comes with Flash code you can use to get up and running. The code is not dissimilar to the PIC code for the Parallax – ask reader to send in a string of numbers (the ID number). The Parallax and Phidgets readers are both good low cost options. The down side is the tags are big and dorky, and look like something from the last millennium. Also, this is a read-only system.

Below are some readers that folks at ITP have been playing around with and relatively easy to purchase/get your hands on and get up and running:

Low Frequency:
TIRIS Micro-8 - 134.2 kHz
ITP has one. Patrick Dwyer (who teaches Net Objects) got it up and running
Pro: It is compatible with a broad range of transponders. I think it mainly support TI’s own transponders, but I’m not sure. Their protocol is proprietary.
Parallax - 125 kHz
"The Parallax RFID Reader Module works exclusively with the EM Microelectronics-Marin SA EM4100-family of 125kHz, passive, read-only transponder tags."
http://www.parallax.com/detail.asp?product_id=28140, just $39, tags for $2.25
Pro: cheap. Con: limited range of transponders. Read only tags. (These tags are compatible with the Phidgets reader.) Uses internal antenna, so it may be difficult to extend the read range.
Phidgets – 125 kHz
EM4102 protocol, read-only, no collision detect
65 CAD for a reader, 90 CAD for the kit (includes tags) // Pro: Plug and play. Very easy to set up. Compatible with Flash. Con: requires internet connection to their Phidgets Server, a PC running Flash. Limited range of compatible transponders. Read only tags. Tags are big and. Compatible with the Parallax reader. Uses internal antenna, so it may be difficult to extend the read range.

High Frequency:
Skyetek M1 - 13.56MHz
This is the one I’ve been playing with so far. School has one. It comes in a boxed version (more expensive). All you do is attach the serial connector and power, and you’re ready to code and go. The cheaper version, unboxed, requires some wiring – that’s why it’s cheaper.
Pro: It is compatible with a broad range of transponders. It can use its internal antenna, or you can use an external antenna to get a greater read range.

Avid- they make the tags they put in pets (& people): http://www.advancedidcorp.com/microchip_gallery.html
I think this LF

Links, recently in the news and on various ITP mailing lists:
Also in, NYTimes:
Study Says Chips in ID Tags Are Vulnerable to Viruses
If you can bear manifestos::
A Manifesto for Networked Objects — Cohabiting with Pigeons, Arphids and Aibos in the Internet of Things by Julian Bleecker:
If you can bear manifestos and questionable graphic design (I usually really like Lorraine Wild’s work):
Shaping Things by Bruce Sterling

Others, smaller RFID readers:
Nokia’s RFID phones: http://europe.nokia.com/nokia/0,,55738,00.html
Nokia Mobile RFID Kit (for use with the 5140 & 5140i phones). RFID reader + phone (GPS) allows you some real tracking capability.
From the http://europe.nokia.com/nokia/0,,76310,00.html
“The Nokia Mobile RFID Kit includes:
* Two Xpress-on™ RFID Reader shells
These are the actual shells (plastic casing, etc. that you replace your phone’s with"
* Two Java™ applications called Shortcut and RecordData for configuration, tag reading, and service initiation \\ Translation:
Your host application is in Java. You probably should know Java to program your phone/RFID reader

* 2 MIFARE® UltraLight RFID tags”
These are high frequency (13.56 mHz. Read/write distance of 100 mm, 384 bits and 32 bits (OTP area) of usable memory, 5 year lifespan.: http://www.manningsrfid.com/mifareultra.php
Looks like these are the ICs used in smart cards:

Another option for a handheld RFID reader – can be used with a Palm or PocketPC handheld device: http://www.tradewindtek.com/
It’s a 13.56 mHz reader, it’s very small, and has a 7 cm read range, and goes for $200. More stuff at: http://www.pnprfid.com/
The readers run for close to $100, but the developer’s kits are $1000. USB & SDIO

Where to buy tags:

Digikey sells TI’s low & high frequency transponders (TIRIS & Skyetek readers, respectively), antennas, and other RFID readers/demo kits. The smallest HF tags they sell are the circular inlays, about 1” in diameter, for $1.55 for read only tag, and $4.02 for read/write tag. Prices for tags range from $1-$10. Encapsulated (packaged in plastic or glass) cost more, as do the ones that are writeable. Parallax and Phidgets sell tags that are compatible with their readers.

Some notes:

As a “sensor”, it’s not that amazing. You read in an identification number, so it’s basically “yes” or “no”. (The technology behind the RF is pretty interesting, but that’s “invisible” to what we’re dealing with.) What’s more interesting is what you actually do with that sensor/data info – the application you’re running. The main hurdle is deciphering the communication protocol (explained in the spec sheets). With plug and play units, like Phidgets – it’s already done for you. The drawback is that the reader is only compatible with a very narrow range of tags.

In a nutshell, the basic conversation (the protocol) runs along the lines of: “Hello” & “My name is [tag id]…” It’s usually in the form of your application (e.g. your computer running Processing, Java, or a microcontroller in PicBasic, C, etc. sending out a request for information. In response, the RFID reader usually returns something a long the lines of a start byte header, a series of bytes with the tag id, and an end byte header. (See the sample PIC code above.) More sophisticated RFID systems can accommodate different tag standards and can write to tags.

Other than that, the biggest hurdle/headache is systems integration, and choosing what environment/software is most appropriate for your application. I am using a Phidgets reader because I need to make a web-based interface for my application, and want to work in a program (Flash) that is an easier authoring environment to make a visual interface (vs. Processing, Java, C). I’m using another reader to interface with Max/MSP to make voice recordings associated with the specific tags. Flash does not have good sound recording functionality, and Max/MSP is not the best for designing a nice UI. I haven’t found one combination of RFID reader and authoring environment that serves all my requirements.

As mentioned above, RFID is an automatic identification system, that is not optical/visual, like a bar code or semacode. What makes it attractive for my application is that the tags are discreet, and can give me more options with how I actually package the tag. In my application, I am concerned about how the appearance or physicality of a tag may affect how a user may “perceive” the tag, and the object it is attached to. (For example, an ISBN number and a book plate are both types of tags used to identify a book. They have very different appearances, which our perception of it.) I chose to use RFID over semacode, or a post-it note tag, because it could be more discreet, and it’s not “visual.” However, most of the tags available (to folks like us, hobbyist,st – through Digikey, etc. vs. for commercial use to Walmart’s warehouses or manufacturers of SmartCards) are still pretty bulky. Smaller, discreet tags exist, but are difficult to get hold of, save the ones typically used for pet identification. Those transponders come with a syringe, which for my use, is a bit of overkill. Likewise, smaller, portable RFID readers exist, but they are fairly expensive for students.

on a tangent -- Identity & Privacy: A lot of the big hubbub around RFID has been about identity and privacy. (Yawn.) Of note in the 3/19/06’s NYTimes Sundays Arts section, is an article relating to identity and privacy involving relatively “low”-technology – fine art street photography made with a large format camera and strobe lights. This article is about a lawsuit brought against Philip-Lorca di Corcia, a photographer of international reknown, for a photo he at Times Square in 1999 of an unknowing subject. The subject sued for $2 million in damages, and lost. The photographer’s right to artistic expression trumped the subject’s privacy rights.

“The Theater of the Street, The Subject of the Photograph” by Philip Gefter