RFID Scanner Keyboard

This project was made at the request of the Oregon State University Robotics Club. The club needed more RFID scanners in order to register new members into the club using their Oregon State Identification Cards. The club formerly had multiple scanners to register incoming members but many of them had been salvaged by other members of the robotics club due to the valuable microcontroller used inside the scanner (Teensy 3.2 with 32-bit ARM processor). The requirements for this project were that their needed to be seven new RFID scanners, the needed to accept a new RFID protocol (Wiegand 35-bit) being used in the cards held by incoming freshmen as well as accept the old protocol (Minifare 34-bit) and they needed to be completed by October of that year; before the robotics club kick-off event.

First, I began by studying the last remaining RFID scanner that was built to completeness. I figured the pinout for reading the serial data from the RFID reader to the microcontroller. The data was read into the declared data and clock pins on the Teensy (Pin2 and 3 respectively). The data and clock pins on the RFID Reader were the green wire (Data Line) and white wire (Clock) I got a test version of the reader set-up on a breadboard with a recovered RFID scanner and a new Teensy3.2.

Work on the firmware update started by looking at the C library that was being used for the previous scanner. The after reading documentation on the differences between the Minifare and Wiegand protocols it was found that the reader being used (HID-6005BGB00) could accommodate both. However, the 35th bit would need to be compensated for in the C library so that it was not read as interfering noise. If interfering noise was detected, then the library would nullify the entire reading action on the Teensy 3.2. The changes were made to the code to and the implementation worked! The code is available on Github.

Next came the Solidworks for the reader case. It was modeled closely to the original by I decided to make holes for heat set inserts and make the reader significantly shorter to save PLA when 3D printing. You can download the solidworks and .stl file on Thingiverse

Everything was printed, wired up, and put together. The reader essentially functions as a keyboard so it can be plugged into any USB port and work as an external device for text input.

Project Links

Article last edited: August 2021