RFID readers and tags APTUS / Parallax


Research and laboration

In March 2007, I ordered a computer connected (original) APTUS tag reader for laboration purposes. From a Swedish electronics reseller, we also ordered a Parallax RFID module, a USB connection cable and two different shapes of RFID-tags that work with the reader. The result was very interesting: the Parallax reader module could read APTUS tags and vice versa. These systems at least seem to be compatible and apparently they follow the same low-frequency RFID-standard (LF: 125 - 134.2 kHz or 140 - 148.5 kHz).

 

APTUS reader

APTUS RFID readerPrice:   about SEK 4000 excl. VAT
Dark gray plastic box, about 15cm x 10cm x 4cm. The look gives the impression of small-series handbuilt devices.
PS/2 loopthrough cable for connection to the keyboard input on the computer with an optional normal keyboard connected to the reader. We ordered the USB version which means that a USB-to-PS/2-adaptor is included. The adaptor has two PS/2 connectors of which we use only one. The Linux compability seems good, since a standard kernel on a Ubuntu 6.06 immediately recognizes the integrated USB controller.

dmesg output when connecting the USB-to-PS/2 adaptor:

[17294312.260000] usb 3-2: new low speed USB device using uhci_hcd and address 4
[17294312.448000] input: HID 04d9:1400 as /class/input/input3
[17294312.448000] input: USB HID v1.10 Keyboard [HID 04d9:1400] on usb-0000:00:1d.2-2
[17294312.484000] input: HID 04d9:1400 as /class/input/input4
[17294312.484000] input: USB HID v1.10 Mouse [HID 04d9:1400] on usb-0000:00:1d.2-2

The behaviour of the connected APTUS reader is exactly like a keyboard: When reading a tag, the APTUS reader sends a sequence of numbers just like you would type it on a keyboard. This goes for our Linux systems as well as Windows systems.

APTUS tags

APTUS RFID tags

These are examples of a very common tag that is used in an APTUS environment. The newer model to the left is a drop-shaped tag (Ø 35mm in circle area, 45mm long) with a small text "APTUS" embossed in the plastic casing.

The old model to the right is slightly bigger. The one on the picture is also opened to reveal its content: a "puck", Ø 30mm, 2mm thick. This white puck is the actual RFID transponder and is hard to open due to the plastic in which the electronics is encapsulated.

Price: about SEK 40 excl. VAT

Parallax reader

Parallax RFID reader

Price:   about SEK 400 excl. VAT
The Parallax reader is not really a stand-alone reader, but more like a module meant for integration into larger systems. It is a blue PCB, size 8cm x 6cm x 0,5cm with the connector pins excluded. The major part of the PCB is a printed antenna for transmitting and receiving LF radio waves.

There are four connector pins at the short edge of the PCB. They are marked VCC, /ENABLE, SOUT and GND. According to the documentation, the communication is serial signalling with TTL voltage levels. For input to a computer's serial port some kind of adaptor is needed. The USB-to-TTL cable is the solution, and by simply combining the cable with the PCB you have an RFID reader!
Note: You need to change the pin order in the cable before connecting it to the PCB.

When connecting the USB cable (which has an integrated serial <-> USB <-> TTL controller inside the USB connector), the computer finds a serial port through which the read data flows. Out Ubuntu 6.06 system recognizes this controller immediately while a Windows computer need drivers which can be downloaded from the manufacturer's website.

dmesg output:

[17295676.040000] usb 3-2: new full speed USB device using uhci_hcd and address 5
[17295676.188000] ftdi_sio 3-2:1.0: FTDI USB Serial Device converter detected
[17295676.188000] drivers/usb/serial/ftdi_sio.c: Detected FT232BM
[17295676.188000] usb 3-2: FTDI USB Serial Device converter now attached to ttyUSB0

The Parallax RFID reader requires the serial port on the receiving computer to be set at 2400 bps, 8N1. Special software is needed for receiving this data which is not the case with the APTUS reader since it behaves like a keyboard.

minicom is a suitable program in Linux and HyperTerminal should do the work just fine in Windows.

 

Parallax tags

Parallax RFID tags

We got two different types of tags from the Parallax equipment reseller. One is black, circle-shaped (Ø 5cm, thickness 2mm) with a small hole in the center. It is also marked "World Tag - Unique - RFID - Logistic and Industrial Transponder".

The other type is a white, credit card-shaped tag. Size is 85mm x 54mm, thickness <1 mm which is a well-known shape - it fits perfectly in the credit card holders of your wallet! There is nothing printed on the card apart from a few tiny dots in one corner.

Price: SEK 22 excl. VAT ($2.50)

 

Parallax RFID tag opened

The picture shows the black Parallax RFID tag opened. Notice the tiny chip to which the thin copper wires from the coil are connected.

Unfortunately, the tag is no longer working since the copper wire was damaged during opening which required tongs, patience and a great deal of force due to the casing plates being tightly glued together.

 

Reading compability tests: APTUS vs. Parallax

One of our tags from Parallax would give this data when read by the Parallax reader:

0415AB82B1

while the original APTUS-reader gives us

543430833

 

Apparently, Parallax sends a hexadecimal value and APTUS a decimal value. A conversion between should be rather simple. See the following example, taken from the above data:

0415AB82B1HEX    gives    17543480833DEC

What happens? It seems like APTUS only delivers the nine last digits in the string and the "17"-part is simply thrown away.

A conversion the other way, from APTUS to Parallax:

543480833DEC    gives    2064DC01HEX

This conversion is NOT sufficient! Even though it i mathematically correct, it can't be used for APTUS-to-Parallax conversion. Knowing that the APTUS reader throws away important information, this is not a big surprise. When designing systems, this information is valuable. Most systems should work without any problems no matter which string representation you choose, just remember to stick to that all the time. Theoretically, the APTUS system could suffer from same readings from two different tags, causing security problems. An example: a tag with the hexadecimal reading 451471001 could give the same output from an APTUS reader as our example tag above. 451471001HEX gives 18543480833DEC and if the APTUS reader consequently strips the first two digits, in this case "18", the result will be the same.

I prefer to use the hexadecimal value as far as possible since the conversion between Parallax and APTUS readings is not a one-to-one mapping. A wise descicion would be to store the hexadecimal values in the databse backend and, if absolutely needed, compare a converted and stripped value from the database to a string from an APTUS reader.