ECE497 Project - RFID Scanner

Team members: Matthew Howlett

Executive Summary
Eventually there will be a picture that summarizes this project.

Have you ever wanted to protect your beaglebone from the people on the internet and require physical presence to operate? With an RFID Scanner and touch screen you can prevent tampering. So far the touch screen from class displays images. I have made several attempts at adapting two libraries for the RFID Scanner and the touch screen. The RFID library allows operation of the scanner over a 3.3V SPI interface. The RFID library for arduino proved too much of a hassle so I am using Peakup's version that has core functionality mostly finished for the Beaglebone. Tweaks had to be made to get it to work discussed below. The touch screen library uses SPI to draw visuals as well as operate the resistive touch screen. The arduino library was designed to operate over an explicit set of hardware, has missing features such as touch capablities and not put together elegantly. So the final project has resulted in being able to scan an RFID card, log to google sheets, display the id number to a screen and ring the appropriate bell.

Timeline
10/20/18 RFID reader and TFT screen hardware obtained

10/25/18 RFID reader operational

10/31/18 TFT screen operational

11/5/18 Integration done

Packaging
I will not be able to package the final project nicely due to the amount of wiring and the bell display.

Installation Instructions
Wire the beaglebone as shown below:

Clone the git repo found here:

Go to the ECE434/FinalProject/MFRCdisplayBell directory.

Enter the make command.

Run the setup.sh script.

configure the logtosheets.py to your own google sheets document.

Run MFRC522

User Instructions
Scan an RFID card supported by the RFID scanner. The id number will appear on the display, the id number will be logged to google sheets, a servo will ring a bell three times.

Challenges
Converting the arduino libraries proved too much of a challenge due to the lack of documentation on the modules, not put together well and lack of functionality.

Getting the BeagleBone green wireless to pass the loopback test. The loopback test is a standard SPI port test where the MISO and MOSI ports are tied together. What you write to the SPI bus should be what you get back. When run I would get garbage returned. I learned that the pins need to be configured for SPI, two capacitors on bottom of the board next to the SD card holder needed to be removed and finally GCC has strict data structure rules in regards to SPI. If the notation is not exactly right, GCC will still compile but will not write to the SPI bus.

The BeagleBone green does not bring out the second channel of the first SPI bus and the second SPI bus was on the pins used for WIFI. I had to move to a beaglebone black for SPI pins. I also had to turn off the HDMI port in order to free up more PWM pins.

Theory of Operation
Utilizes the SPI bus and PWM for the servo motors to ring bells. SPI bus has a clock wire, a master out wire, master in wire and a slave select line for every slave device. Requires more wires than I2C but can push faster data rates for short distances.

Work Breakdown
1. Gathered libraries needed for converting from Arduino to beaglebone C++.

Future Work
Not Done Yet.

Conclusions
Not Done Yet.