Reading RFID tags with BeagleBone Black

I had already used my ID-12 RFID reader with the BeagleBoard, the Pandaboard and also Arduino. It is very straight forward but I will just keep some notes here for the future.

The ID12 outputs the RFID codes through a 5V serial port, so the interfacing is very simple. For the BeagleBone Black we just need to shift the serial port levels to 3.3V and enable one of the multiple serial ports.

I had build a small breadboard to connect the ID-12 to different devices. It basically powers the reader with 5V, generates a 3.3V reference with a voltage regulator and uses a cheap level shifter to make the serial lines from the ID-12 available as 3.3V TTL signals. This is how it looks like

BBB RFID (ID-12) Adapter boardBBB RFID (ID-12) Adapter board

Then, in the BeagleBone Black we need to activate one of the serial ports. In this example I'm using UART4. This can be done with the following command:

# echo BB-UART4 > /sys/devices/bone_capemgr.8/slots
Then we need to wire our ID-12 to the BeagleBone as follows:
ID-12BeagleBone Black
GNDGND: P9.1, P9.2
VccSYS_5V: P9.5
TxUART4 Rx: P9.11
RxUART4 Tx: P9.13
Note that the ID-12 needs to be powered using the SYS_5V pin not the standard 5V as it requires some power. This is how it would look like. BBB RFID (ID-12) Full SetupBBB RFID (ID-12) Full Setup Now you can just grab NetKitty ( and use it to read the RFID codes with the following command. Yes, the ID-12 sends data out at 9600 bauds.
# nk  -c S,/dev/ttyO4,9600
And you can get those codes from any other machine on the net using some extra parameters on Netkitty. Something like this:
# nk  -hub -s T,5000 -c S,/dev/ttyO4,9600
With this new command-line you can connect to port 5000 using any tool or application you want and get the RFID codes in any machine... or in every machine :)