View source for Freerunner RFID Board

From Openmoko

Jump to: navigation, search

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Administrators.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page:

Return to Freerunner RFID Board.

Personal tools
Freerunner RFID Board

NOTE: This is work in progress and quite incomplete


The FRIDB realizes an experimental platform for RFID (13.56 MHz). It consists of an Antenna, a ST Micro M24LR64 RFID-Tag Chip with 64kbit EEPROM and I2C port and a Texas Instruments TRF7960 RFID reader chip with SPI interface.

So you can make the Freerunner either a RFID tag (e.g. to open doors) or a RFID reader (to read/write standard tags e.g. in credit card format).

The FRIDB can also connected to other Microcontrollers and SoC (e.g BeagleBoard) since it has splitted I/O and power supply.

The board comes with three parts that can/must be separated:


The antenna is a printed loop designed for a typical center frequency of 13 MHz with a capacitor of 56pF.

It can be fixed by tape instead of the battery cover or mounted externaly.


By connecting the I2C EEPROM (ST Micro M24LR64) to the antenna and to the main CPU by I2C, the unit can be used as a dual-port RFID Tag. I.e. the tag can either be read or written through RFID (even if the main device has no power) or through the CPU. A typical scenario could be to personalize the device or to receive online-purchased tickets and store them in the tag so that they can be read out through RFID - even if the battery of the device is down.

The Tag module fits into the area above the SIM/SD card reader of the Openmoko Freerunner. It is up to you to wire the board to the Freerunner main board in a way that you can still swap SD cards and/or SIM cards.


By connecting the Reader through the SPI interface (TI TRF7960) it is possible to use the Freerunner as a RFID reader.

The Reader module fits into the area above the SIM/SD card reader of the Openmoko Freerunner. It is up to you to wire the board to the Freerunner main board in a way that you can still swap SD cards and/or SIM cards.


Note: you can't use reader and tag in parallel. At least we have not tried. The protocols should be able to handle this case since there is a collision detection mechanism to separate multiple tags. What is not known is how to connect both devices to a single antenna. Maybe through a high-ohm resistor (to attenuate the TX signal from the RFID reader and two capacitors (to separate the DC components).


The project home is There, you can find background information, instructions, software etc.

Schematic and board layout files are available in CadSoft EAGLE 5.x format from


      • FIXME ***
Pinout: Bottom side, Top side
I2C testpoints
  • VCC: +3.3V, available at the AUX-Switch
  • VIO: +1.8 V - +3.3V, available at the AUX-Switch
  • GND: Ground, available from the (big) decoupling capacitor next to the accelerometer
  • SCL, SDA: Serial clock and data, get it from testpoints at the debug connector
  • OE: Output enable from the frequency generator. Pull this pin high to enable the CLK output
  • CLK: Clock output from the frequency generator.
  • LED controller 0-3: LED current sinks. Connect LEDs in series with current limiting resistors from VCC to these pads.
  • 12-Bit A/D 0-3: Analog to digital converter inputs. They can operate single ended or differencial. The reference voltage is VCC.
  • Touch electrodes 0-6: Connect these pads to a larger conducting area to use it as touch sensor. The inputs 0-3 can also be used to drive LEDs. Refer to the datasheet for more information.
Top side with the M24LR64 and the TRF7960
Installation location
potential Antenna position


Hardware installation

The best way to connect the FRIDB to your Freerunner is to solder four wires to...

Here is a PDF with an overview of the Installation.

Software installation

Data Sheets


U-Boot driver

some C-code for a U-Boot API is available to do some preliminary SPI communication (e.g. read/write registers). It is tested on a BeagleBoard and supports "SPI without SS" by using GPIO mode.


Kernel drivers


Here is a very raw Idea for an interface from user space:

Set power mode

 echo "5" >/sys/.../rfid/power

Set protocol

 echo "2" >/sys/.../rfid/protocol

Trigger scanning for tags

 echo >/sys/.../rfid/scan

Get list of found tags

 ls -l /sys/.../rfid/tags/

Get signal strenght of specific tag

 cat /sys/.../rfid/tags/uid/rssi

Read data from tag EEPROM

 cat /sys/.../rfid/tags/uid/data

Userspace software

n/a yet. Volunteers welcome!

What we most likely need is a Card scanner application (i.e. one that lists when tags come to vicinity). And it would be nice to read/write content (which is unfortunately not quite standardized).

And we should have a keyboard driver that pressing the AUX button "types" the ID of the current card plus a Newline. This would allow to use the card scanner like a barcode scanner.


The team kindly offered to retail the FRIDB. You can find it here.

User Reports

Please write to the discussion page.