fsj0x01 / goodtag

RF430FRL152H examples for NFC Type V in Kicad and C.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GoodTag

Howdy y'all!

For a long while I've been interested in the RF430FRL152H, which is a passive RFID tag for 13.56 MHz built around an MSP430 microcontroller. As few open source examples were available, I found myself first building a development kit

In this repository, and its wiki, you will find examples and documentation for programming this fine chip, as well as CAD for hardware boards that use the chip. This should help you build your own NFC Type V (ISO 15693) sensor tags, or to emulate existing ones.

This project cannot implement ISO 7816 or ISO 14443 interfaces of older NFC tags. For that, you probably need a board designed around the LPC8N04 or some other microcontroller.

73 from Yverdon les Bains,

--Travis Goodspeed

Toolchain

The C examples in this project must be compiled with TI's branch of GCC for MSP430. We sadly cannot be compatible with the GCC4 branch shipped with Debian because the function calling conventions are incompatible with the mask ROM. You will need both the toolchain and its support files.

See my GoodV project for an example Android app that communicates with the chip over NfcV. It can write firmware to the tags in the TI-TXT format, as well as dump their existing contents.

For convenient programming from Linux, the GreatFET Hydrangea board ought to be handy. We'll tie it into the Makefile once that project is functional.

Documentation

An extensive goodtag wiki covers such nifty topics as the RF430FRL152H chip, the contents of its ROM, and the use of its brother, the otherwise undocumented RF430TAL152H.

Firmware

In the firmware/ directory, you will be find a few example projects. Most of them are designed to compile as patches to the ROM, hooking NFC commands rather than being called through the RESET vector, so it's important to remember that global and static variables will not be initialized.

You will probably want to start with hello.c and then add your own vendor extension commands. gcmemu.c is an unfinished emulator for a commercial glucose sensor tag, and ndef.c is an NFC business card in the NDEF format, which can be read by the Decode app on an iPhone.

Unlike large applications in which multiple modules are linked together, this project is organized as individually executable modules that share no code with one another. This is considered necessary, given the pitiful amounts of FRAM code memory.

Shellcode

In the shellcode/ directory, you will find short examples of code that can be run ephemerally from SRAM, without permanent changes to the target. See the Shellcode page of the wiki for a more detailed explanation.

Hardware Designs

For development, I began by using the RF430FRL152HEVM and RF430-TMPSNS-EVM kits from Texas Instruments.

As these are now in short supply, I've designed the GoodTag11 in Kicad as my own development kit. Expect future designs in this series.

Related Projects

GoodV is an Android app for interacting with RF430FRL152H devices. You will probably develop first with JTAG and then use this to flash your code from a handy phone.

The GoodTag Wiki contains plenty of documentation about the RF430FRL152H and related chips.

About

RF430FRL152H examples for NFC Type V in Kicad and C.


Languages

Language:C 79.1%Language:Makefile 10.5%Language:Python 7.7%Language:C++ 2.6%