https://elinux.org/api.php?action=feedcontributions&user=Howletmj&feedformat=atomeLinux.org - User contributions [en]2024-03-28T15:24:49ZUser contributionsMediaWiki 1.31.0https://elinux.org/index.php?title=ECE497_Project_-_RFID_Scanner&diff=482221ECE497 Project - RFID Scanner2018-11-14T13:31:57Z<p>Howletmj: /* Installation Instructions */</p>
<hr />
<div>[[Category:ECE497 |PR]]<br />
[[Category:ECE497Fall2018 |PR]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:howletmj|Matthew Howlett]]<br />
<br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 100/100<br />
</pre><br />
<br />
<span style="color:red">(Inline Comment)</span><br />
<br />
== Executive Summary ==<br />
<br />
[[File:Rfidprojectputtogether.jpg|thumb|right|Rfid Project Put Together]]<br />
<br />
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 a bell corresponding to the ID number.<br />
<br />
== Timeline ==<br />
10/20/18 RFID reader and TFT screen hardware obtained <br />
<br />
10/25/18 RFID reader operational <br />
<br />
10/31/18 TFT screen operational<br />
<br />
11/5/18 Integration done <br />
<br />
== Packaging ==<br />
I will be using the breadboard given as much as possible since the pinouts of the rfid reader and the TFT9341 do not correspond well with the pinout of the beaglebone.<br />
<br />
== Installation Instructions ==<br />
Wire the beaglebone as shown below:<br />
<br />
[[File:Rfid wiring.jpg|thumb|right|Wiring Diagram]]<br />
{| class="wikitable"<br />
|-<br />
!TFT Display Pins !! Beaglebone Pins<br />
|-<br />
| MISO || P9_21<br />
|-<br />
| LED || P9_15<br />
|-<br />
| SCK || P9_22<br />
|-<br />
| MOSI || P9_18<br />
|-<br />
| D/C || P9_19<br />
|-<br />
| RESET || P9_20<br />
|-<br />
| CS|| P9_17<br />
|-<br />
| GND|| 0V<br />
|-<br />
| VCC|| 5V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! MFRC522 Pins !! Beaglebone Pins<br />
|-<br />
| SDA || P9_28<br />
|-<br />
| SCK || P9_31<br />
|-<br />
| MISO || P9_30<br />
|-<br />
| MOSI || P9_29<br />
|-<br />
| IRQ || No Connection<br />
|-<br />
| GND || 0V<br />
|-<br />
| RST || 3.3V<br />
|-<br />
| Vcc || 3.3V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! Servo Pins !! Beaglebone Pins<br />
|-<br />
| Control Servo 1 (Yellow Wire) || P8_45<br />
|-<br />
| Control Servo 2 (Yellow Wire) || P8_46<br />
|-<br />
| Control Servo 3 (Yellow Wire) || P9_14<br />
|-<br />
| Control Servo 4 (Yellow Wire) || P9_16<br />
|-<br />
| Vcc (Red Wire) || 5V<br />
|-<br />
| GND (Brown Wire) || 0V<br />
|}<br />
1. Clone the git repo found here: https://github.com/howletmj/ECE434.git<br />
<br />
2. Go to the ECE434/FinalProject/MFRCBellDisplay directory.<br />
<br />
3. Enter the make command.<br />
<br />
4. Run the setup.sh script.<br />
<br />
5. Configure the logtosheets.py to your own google sheets document.<br />
<br />
6. Run MFRC522<br />
<br />
== User Instructions ==<br />
<br />
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 one of four bells three times.<br />
==Highlights==<br />
Reads Specific ID cards that are not the Rose-Hulman Ids. Shows the ID on the TFT display. Logs the id to a google sheet and rings one of four bells 3 times.<br />
== Challenges ==<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
The servos require an additional power supply unit to supply power that the beaglebone cannot provide alone. The beaglebone can supply enough power to turn a servo unloaded but cannot with anything attached. The pwm needs to be set at 50Hz. The servos I was using for the bells accepted pwm signals with duty cycle of 9% to 15%. <br />
<br />
== Theory of Operation ==<br />
[[File:Rfidoperationflow.jpg|thumb|right|Program Flow Chart]]<br />
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. <br />
<br />
<br />
<br />
<br />
== Work Breakdown ==<br />
<br />
1. Gathered libraries needed for converting from Arduino to beaglebone C++.<br />
<br />
2. Attempt at converting libraries.<br />
<br />
3. Loopback test for SPI bus.<br />
<br />
4. Fix issues with SPI bus.<br />
<br />
5. Verify Scanner works correctly.<br />
<br />
5. Get C program to write to LCD screen.<br />
<br />
6. Setup servos for bells.<br />
<br />
7. Write uids to google sheets.<br />
<br />
8. Final Documentation<br />
==Future Work==<br />
I will in the future try looking through the datasheet for the touchscreen and see if I can write a basic driver to read touch position on the screen.<br />
<br />
== Conclusions ==<br />
The embedded systems community is alive, thriving and constantly updating. The beaglebone allows people to do a lot of things in a very accessible way. This project allowed me to explore the ability to pull things designed for arduinos and micro-controllers to a higher level platform. While constantly updating, open source has issues with keeping documentation of issues and problems in previous versions up to date. If I had more time I would try to get the touch screen portion of the LCD displays working. It would be cool if someone was able to incorporate Blynk into the project so that you could have live updates of who scanned their rfid card. <br />
<br />
{{YoderFoot}}</div>Howletmjhttps://elinux.org/index.php?title=ECE497_Project_-_RFID_Scanner&diff=482206ECE497 Project - RFID Scanner2018-11-14T12:18:04Z<p>Howletmj: </p>
<hr />
<div>[[Category:ECE497 |PR]]<br />
[[Category:ECE497Fall2018 |PR]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:howletmj|Matthew Howlett]]<br />
<br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 100/100<br />
</pre><br />
<br />
<span style="color:red">(Inline Comment)</span><br />
<br />
== Executive Summary ==<br />
<br />
[[File:Rfidprojectputtogether.jpg|thumb|right|Rfid Project Put Together]]<br />
<br />
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 a bell corresponding to the ID number.<br />
<br />
== Timeline ==<br />
10/20/18 RFID reader and TFT screen hardware obtained <br />
<br />
10/25/18 RFID reader operational <br />
<br />
10/31/18 TFT screen operational<br />
<br />
11/5/18 Integration done <br />
<br />
== Packaging ==<br />
I will be using the breadboard given as much as possible since the pinouts of the rfid reader and the TFT9341 do not correspond well with the pinout of the beaglebone.<br />
<br />
== Installation Instructions ==<br />
Wire the beaglebone as shown below:<br />
<br />
[[File:Rfid wiring.jpg|thumb|right|Wiring Diagram]]<br />
{| class="wikitable"<br />
|-<br />
!TFT Display Pins !! Beaglebone Pins<br />
|-<br />
| MISO || P9_21<br />
|-<br />
| LED || P9_15<br />
|-<br />
| SCK || P9_22<br />
|-<br />
| MOSI || P9_18<br />
|-<br />
| D/C || P9_19<br />
|-<br />
| RESET || P9_20<br />
|-<br />
| CS|| P9_17<br />
|-<br />
| GND|| 0V<br />
|-<br />
| VCC|| 5V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! MFRC522 Pins !! Beaglebone Pins<br />
|-<br />
| SDA || P9_28<br />
|-<br />
| SCK || P9_31<br />
|-<br />
| MISO || P9_30<br />
|-<br />
| MOSI || P9_29<br />
|-<br />
| IRQ || No Connection<br />
|-<br />
| GND || 0V<br />
|-<br />
| RST || 3.3V<br />
|-<br />
| Vcc || 3.3V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! Servo Pins !! Beaglebone Pins<br />
|-<br />
| Control Servo 1 (Orange Wire) || P8_45<br />
|-<br />
| Control Servo 2 (Orange Wire) || P8_46<br />
|-<br />
| Control Servo 3 (Orange Wire) || P9_14<br />
|-<br />
| Control Servo 4 (Orange Wire) || P9_16<br />
|-<br />
| Vcc (Red Wire) || 5V<br />
|-<br />
| GND (Brown Wire) || 0V<br />
|}<br />
1. Clone the git repo found here: https://github.com/howletmj/ECE434.git<br />
<br />
2. Go to the ECE434/FinalProject/MFRCBellDisplay directory.<br />
<br />
3. Enter the make command.<br />
<br />
4. Run the setup.sh script.<br />
<br />
5. Configure the logtosheets.py to your own google sheets document.<br />
<br />
6. Run MFRC522 <br />
<br />
== User Instructions ==<br />
<br />
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 one of four bells three times.<br />
==Highlights==<br />
Reads Specific ID cards that are not the Rose-Hulman Ids. Shows the ID on the TFT display. Logs the id to a google sheet and rings one of four bells 3 times.<br />
== Challenges ==<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
The servos require an additional power supply unit to supply power that the beaglebone cannot provide alone. The beaglebone can supply enough power to turn a servo unloaded but cannot with anything attached. The pwm needs to be set at 50Hz. The servos I was using for the bells accepted pwm signals with duty cycle of 9% to 15%. <br />
<br />
== Theory of Operation ==<br />
[[File:Rfidoperationflow.jpg|thumb|right|Program Flow Chart]]<br />
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. <br />
<br />
<br />
<br />
<br />
== Work Breakdown ==<br />
<br />
1. Gathered libraries needed for converting from Arduino to beaglebone C++.<br />
<br />
2. Attempt at converting libraries.<br />
<br />
3. Loopback test for SPI bus.<br />
<br />
4. Fix issues with SPI bus.<br />
<br />
5. Verify Scanner works correctly.<br />
<br />
5. Get C program to write to LCD screen.<br />
<br />
6. Setup servos for bells.<br />
<br />
7. Write uids to google sheets.<br />
<br />
8. Final Documentation<br />
==Future Work==<br />
I will in the future try looking through the datasheet for the touchscreen and see if I can write a basic driver to read touch position on the screen.<br />
<br />
== Conclusions ==<br />
The embedded systems community is alive, thriving and constantly updating. The beaglebone allows people to do a lot of things in a very accessible way. This project allowed me to explore the ability to pull things designed for arduinos and micro-controllers to a higher level platform. While constantly updating, open source has issues with keeping documentation of issues and problems in previous versions up to date. If I had more time I would try to get the touch screen portion of the LCD displays working. It would be cool if someone was able to incorporate Blynk into the project so that you could have live updates of who scanned their rfid card. <br />
<br />
{{YoderFoot}}</div>Howletmjhttps://elinux.org/index.php?title=File:Rfidoperationflow.jpg&diff=482201File:Rfidoperationflow.jpg2018-11-14T12:15:21Z<p>Howletmj: </p>
<hr />
<div>Shows what is happening in the program as a flow diagram</div>Howletmjhttps://elinux.org/index.php?title=File:Rfidprojectputtogether.jpg&diff=482196File:Rfidprojectputtogether.jpg2018-11-14T12:11:16Z<p>Howletmj: </p>
<hr />
<div>Project Put Together</div>Howletmjhttps://elinux.org/index.php?title=ECE497_Project_-_RFID_Scanner&diff=481696ECE497 Project - RFID Scanner2018-11-14T00:45:32Z<p>Howletmj: /* Future Work */</p>
<hr />
<div>[[Category:ECE497 |PR]]<br />
[[Category:ECE497Fall2018 |PR]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:howletmj|Matthew Howlett]]<br />
<br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 100/100<br />
</pre><br />
<br />
<span style="color:red">(Inline Comment)</span><br />
<br />
== Executive Summary ==<br />
<br />
Eventually there will be a picture that summarizes this project.<br />
<br />
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 a bell corresponding to the ID number.<br />
<br />
== Timeline ==<br />
10/20/18 RFID reader and TFT screen hardware obtained <br />
<br />
10/25/18 RFID reader operational <br />
<br />
10/31/18 TFT screen operational<br />
<br />
11/5/18 Integration done <br />
<br />
== Packaging ==<br />
I will be using the breadboard given as much as possible since the pinouts of the rfid reader and the TFT9341 do not correspond well with the pinout of the beaglebone.<br />
<br />
== Installation Instructions ==<br />
Wire the beaglebone as shown below:<br />
<br />
[[File:Rfid wiring.jpg|thumb|right|Wiring Diagram]]<br />
{| class="wikitable"<br />
|-<br />
!TFT Display Pins !! Beaglebone Pins<br />
|-<br />
| MISO || P9_21<br />
|-<br />
| LED || P9_15<br />
|-<br />
| SCK || P9_22<br />
|-<br />
| MOSI || P9_18<br />
|-<br />
| D/C || P9_19<br />
|-<br />
| RESET || P9_20<br />
|-<br />
| CS|| P9_17<br />
|-<br />
| GND|| 0V<br />
|-<br />
| VCC|| 5V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! MFRC522 Pins !! Beaglebone Pins<br />
|-<br />
| SDA || P9_28<br />
|-<br />
| SCK || P9_31<br />
|-<br />
| MISO || P9_30<br />
|-<br />
| MOSI || P9_29<br />
|-<br />
| IRQ || No Connection<br />
|-<br />
| GND || 0V<br />
|-<br />
| RST || 3.3V<br />
|-<br />
| Vcc || 3.3V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! Servo Pins !! Beaglebone Pins<br />
|-<br />
| Control Servo 1 (Orange Wire) || P8_45<br />
|-<br />
| Control Servo 2 (Orange Wire) || P8_46<br />
|-<br />
| Control Servo 3 (Orange Wire) || P9_14<br />
|-<br />
| Control Servo 4 (Orange Wire) || P9_16<br />
|-<br />
| Vcc (Red Wire) || 5V<br />
|-<br />
| GND (Brown Wire) || 0V<br />
|}<br />
1. Clone the git repo found here: https://github.com/howletmj/ECE434.git<br />
<br />
2. Go to the ECE434/FinalProject/MFRCBellDisplay directory.<br />
<br />
3. Enter the make command.<br />
<br />
4. Run the setup.sh script.<br />
<br />
5. Configure the logtosheets.py to your own google sheets document.<br />
<br />
6. Run MFRC522 <br />
<br />
== User Instructions ==<br />
<br />
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 one of four bells three times.<br />
==Highlights==<br />
Reads Specific ID cards that are not the Rose-Hulman Ids. Shows the ID on the TFT display. Logs the id to a google sheet and rings one of four bells 3 times.<br />
== Challenges ==<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
The servos require an additional power supply unit to supply power that the beaglebone cannot provide alone. The beaglebone can supply enough power to turn a servo unloaded but cannot with anything attached. The pwm needs to be set at 50Hz. The servos I was using for the bells accepted pwm signals with duty cycle of 9% to 15%. <br />
<br />
== Theory of Operation ==<br />
<br />
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. <br />
<br />
== Work Breakdown ==<br />
<br />
1. Gathered libraries needed for converting from Arduino to beaglebone C++.<br />
<br />
2. Attempt at converting libraries.<br />
<br />
3. Loopback test for SPI bus.<br />
<br />
4. Fix issues with SPI bus.<br />
<br />
5. Verify Scanner works correctly.<br />
<br />
5. Get C program to write to LCD screen.<br />
<br />
6. Setup servos for bells.<br />
<br />
7. Write uids to google sheets.<br />
<br />
8. Final Documentation<br />
==Future Work==<br />
I will in the future try looking through the datasheet for the touchscreen and see if I can write a basic driver to read touch position on the screen.<br />
<br />
== Conclusions ==<br />
The embedded systems community is alive, thriving and constantly updating. The beaglebone allows people to do a lot of things in a very accessible way. This project allowed me to explore the ability to pull things designed for arduinos and micro-controllers to a higher level platform. While constantly updating, open source has issues with keeping documentation of issues and problems in previous versions up to date. If I had more time I would try to get the touch screen portion of the LCD displays working. It would be cool if someone was able to incorporate Blynk into the project so that you could have live updates of who scanned their rfid card. <br />
<br />
{{YoderFoot}}</div>Howletmjhttps://elinux.org/index.php?title=ECE497_Project_-_RFID_Scanner&diff=481686ECE497 Project - RFID Scanner2018-11-14T00:43:38Z<p>Howletmj: /* Packaging */</p>
<hr />
<div>[[Category:ECE497 |PR]]<br />
[[Category:ECE497Fall2018 |PR]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:howletmj|Matthew Howlett]]<br />
<br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 100/100<br />
</pre><br />
<br />
<span style="color:red">(Inline Comment)</span><br />
<br />
== Executive Summary ==<br />
<br />
Eventually there will be a picture that summarizes this project.<br />
<br />
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 a bell corresponding to the ID number.<br />
<br />
== Timeline ==<br />
10/20/18 RFID reader and TFT screen hardware obtained <br />
<br />
10/25/18 RFID reader operational <br />
<br />
10/31/18 TFT screen operational<br />
<br />
11/5/18 Integration done <br />
<br />
== Packaging ==<br />
I will be using the breadboard given as much as possible since the pinouts of the rfid reader and the TFT9341 do not correspond well with the pinout of the beaglebone.<br />
<br />
== Installation Instructions ==<br />
Wire the beaglebone as shown below:<br />
<br />
[[File:Rfid wiring.jpg|thumb|right|Wiring Diagram]]<br />
{| class="wikitable"<br />
|-<br />
!TFT Display Pins !! Beaglebone Pins<br />
|-<br />
| MISO || P9_21<br />
|-<br />
| LED || P9_15<br />
|-<br />
| SCK || P9_22<br />
|-<br />
| MOSI || P9_18<br />
|-<br />
| D/C || P9_19<br />
|-<br />
| RESET || P9_20<br />
|-<br />
| CS|| P9_17<br />
|-<br />
| GND|| 0V<br />
|-<br />
| VCC|| 5V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! MFRC522 Pins !! Beaglebone Pins<br />
|-<br />
| SDA || P9_28<br />
|-<br />
| SCK || P9_31<br />
|-<br />
| MISO || P9_30<br />
|-<br />
| MOSI || P9_29<br />
|-<br />
| IRQ || No Connection<br />
|-<br />
| GND || 0V<br />
|-<br />
| RST || 3.3V<br />
|-<br />
| Vcc || 3.3V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! Servo Pins !! Beaglebone Pins<br />
|-<br />
| Control Servo 1 (Orange Wire) || P8_45<br />
|-<br />
| Control Servo 2 (Orange Wire) || P8_46<br />
|-<br />
| Control Servo 3 (Orange Wire) || P9_14<br />
|-<br />
| Control Servo 4 (Orange Wire) || P9_16<br />
|-<br />
| Vcc (Red Wire) || 5V<br />
|-<br />
| GND (Brown Wire) || 0V<br />
|}<br />
1. Clone the git repo found here: https://github.com/howletmj/ECE434.git<br />
<br />
2. Go to the ECE434/FinalProject/MFRCBellDisplay directory.<br />
<br />
3. Enter the make command.<br />
<br />
4. Run the setup.sh script.<br />
<br />
5. Configure the logtosheets.py to your own google sheets document.<br />
<br />
6. Run MFRC522 <br />
<br />
== User Instructions ==<br />
<br />
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 one of four bells three times.<br />
==Highlights==<br />
Reads Specific ID cards that are not the Rose-Hulman Ids. Shows the ID on the TFT display. Logs the id to a google sheet and rings one of four bells 3 times.<br />
== Challenges ==<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
The servos require an additional power supply unit to supply power that the beaglebone cannot provide alone. The beaglebone can supply enough power to turn a servo unloaded but cannot with anything attached. The pwm needs to be set at 50Hz. The servos I was using for the bells accepted pwm signals with duty cycle of 9% to 15%. <br />
<br />
== Theory of Operation ==<br />
<br />
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. <br />
<br />
== Work Breakdown ==<br />
<br />
1. Gathered libraries needed for converting from Arduino to beaglebone C++.<br />
<br />
2. Attempt at converting libraries.<br />
<br />
3. Loopback test for SPI bus.<br />
<br />
4. Fix issues with SPI bus.<br />
<br />
5. Verify Scanner works correctly.<br />
<br />
5. Get C program to write to LCD screen.<br />
<br />
6. Setup servos for bells.<br />
<br />
7. Write uids to google sheets.<br />
<br />
8. Final Documentation<br />
==Future Work==<br />
I will in the future try looking through the datasheet for the touchscreen I have personally and see if I can write a basic driver to read touch position on the screen.<br />
== Conclusions ==<br />
The embedded systems community is alive, thriving and constantly updating. The beaglebone allows people to do a lot of things in a very accessible way. This project allowed me to explore the ability to pull things designed for arduinos and micro-controllers to a higher level platform. While constantly updating, open source has issues with keeping documentation of issues and problems in previous versions up to date. If I had more time I would try to get the touch screen portion of the LCD displays working. It would be cool if someone was able to incorporate Blynk into the project so that you could have live updates of who scanned their rfid card. <br />
<br />
{{YoderFoot}}</div>Howletmjhttps://elinux.org/index.php?title=ECE497_Project_-_RFID_Scanner&diff=481456ECE497 Project - RFID Scanner2018-11-13T22:10:31Z<p>Howletmj: </p>
<hr />
<div>[[Category:ECE497 |PR]]<br />
[[Category:ECE497Fall2018 |PR]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:howletmj|Matthew Howlett]]<br />
<br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 100/100<br />
</pre><br />
<br />
<span style="color:red">(Inline Comment)</span><br />
<br />
== Executive Summary ==<br />
<br />
Eventually there will be a picture that summarizes this project.<br />
<br />
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 a bell corresponding to the ID number.<br />
<br />
== Timeline ==<br />
10/20/18 RFID reader and TFT screen hardware obtained <br />
<br />
10/25/18 RFID reader operational <br />
<br />
10/31/18 TFT screen operational<br />
<br />
11/5/18 Integration done <br />
<br />
== Packaging ==<br />
I will be using the breadboard given as much as possible since the pinouts of the rfid reader and the TFT9341 do correspond well with the pinout of the beaglebone.<br />
<br />
== Installation Instructions ==<br />
Wire the beaglebone as shown below:<br />
<br />
[[File:Rfid wiring.jpg|thumb|right|Wiring Diagram]]<br />
{| class="wikitable"<br />
|-<br />
!TFT Display Pins !! Beaglebone Pins<br />
|-<br />
| MISO || P9_21<br />
|-<br />
| LED || P9_15<br />
|-<br />
| SCK || P9_22<br />
|-<br />
| MOSI || P9_18<br />
|-<br />
| D/C || P9_19<br />
|-<br />
| RESET || P9_20<br />
|-<br />
| CS|| P9_17<br />
|-<br />
| GND|| 0V<br />
|-<br />
| VCC|| 5V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! MFRC522 Pins !! Beaglebone Pins<br />
|-<br />
| SDA || P9_28<br />
|-<br />
| SCK || P9_31<br />
|-<br />
| MISO || P9_30<br />
|-<br />
| MOSI || P9_29<br />
|-<br />
| IRQ || No Connection<br />
|-<br />
| GND || 0V<br />
|-<br />
| RST || 3.3V<br />
|-<br />
| Vcc || 3.3V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! Servo Pins !! Beaglebone Pins<br />
|-<br />
| Control Servo 1 (Orange Wire) || P8_45<br />
|-<br />
| Control Servo 2 (Orange Wire) || P8_46<br />
|-<br />
| Control Servo 3 (Orange Wire) || P9_14<br />
|-<br />
| Control Servo 4 (Orange Wire) || P9_16<br />
|-<br />
| Vcc (Red Wire) || 5V<br />
|-<br />
| GND (Brown Wire) || 0V<br />
|}<br />
1. Clone the git repo found here: https://github.com/howletmj/ECE434.git<br />
<br />
2. Go to the ECE434/FinalProject/MFRCBellDisplay directory.<br />
<br />
3. Enter the make command.<br />
<br />
4. Run the setup.sh script.<br />
<br />
5. Configure the logtosheets.py to your own google sheets document.<br />
<br />
6. Run MFRC522 <br />
<br />
== User Instructions ==<br />
<br />
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 one of four bells three times.<br />
==Highlights==<br />
Reads Specific ID cards that are not the Rose-Hulman Ids. Shows the ID on the TFT display. Logs the id to a google sheet and rings one of four bells 3 times.<br />
== Challenges ==<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
The servos require an additional power supply unit to supply power that the beaglebone cannot provide alone. The beaglebone can supply enough power to turn a servo unloaded but cannot with anything attached. The pwm needs to be set at 50Hz. The servos I was using for the bells accepted pwm signals with duty cycle of 9% to 15%. <br />
<br />
== Theory of Operation ==<br />
<br />
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. <br />
<br />
== Work Breakdown ==<br />
<br />
1. Gathered libraries needed for converting from Arduino to beaglebone C++.<br />
<br />
2. Attempt at converting libraries.<br />
<br />
3. Loopback test for SPI bus.<br />
<br />
4. Fix issues with SPI bus.<br />
<br />
5. Verify Scanner works correctly.<br />
<br />
5. Get C program to write to LCD screen.<br />
<br />
6. Setup servos for bells.<br />
<br />
7. Write uids to google sheets.<br />
<br />
8. Final Documentation<br />
==Future Work==<br />
I will in the future try looking through the datasheet for the touchscreen I have personally and see if I can write a basic driver to read touch position on the screen.<br />
== Conclusions ==<br />
The embedded systems community is alive, thriving and constantly updating. The beaglebone allows people to do a lot of things in a very accessible way. This project allowed me to explore the ability to pull things designed for arduinos and micro-controllers to a higher level platform. While constantly updating, open source has issues with keeping documentation of issues and problems in previous versions up to date. If I had more time I would try to get the touch screen portion of the LCD displays working. It would be cool if someone was able to incorporate Blynk into the project so that you could have live updates of who scanned their rfid card. <br />
<br />
{{YoderFoot}}</div>Howletmjhttps://elinux.org/index.php?title=File:Rfid_wiring.jpg&diff=481446File:Rfid wiring.jpg2018-11-13T22:07:30Z<p>Howletmj: </p>
<hr />
<div>Pin Diagram for RFID project</div>Howletmjhttps://elinux.org/index.php?title=ECE497_Project_-_RFID_Scanner&diff=481441ECE497 Project - RFID Scanner2018-11-13T22:02:13Z<p>Howletmj: </p>
<hr />
<div>[[Category:ECE497 |PR]]<br />
[[Category:ECE497Fall2018 |PR]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:howletmj|Matthew Howlett]]<br />
<br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 100/100<br />
</pre><br />
<br />
<span style="color:red">(Inline Comment)</span><br />
<br />
== Executive Summary ==<br />
<br />
Eventually there will be a picture that summarizes this project.<br />
<br />
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 a bell corresponding to the ID number.<br />
<br />
== Timeline ==<br />
10/20/18 RFID reader and TFT screen hardware obtained <br />
<br />
10/25/18 RFID reader operational <br />
<br />
10/31/18 TFT screen operational<br />
<br />
11/5/18 Integration done <br />
<br />
== Packaging ==<br />
I will be using the breadboard given as much as possible since the pinouts of the rfid reader and the TFT9341 do correspond well with the pinout of the beaglebone.<br />
<br />
== Installation Instructions ==<br />
Wire the beaglebone as shown below:<br />
<br />
[[File:Rfid Scanner wiring.jpg|thumb|right|Wiring Diagram]]<br />
{| class="wikitable"<br />
|-<br />
!TFT Display Pins !! Beaglebone Pins<br />
|-<br />
| MISO || P9_21<br />
|-<br />
| LED || P9_15<br />
|-<br />
| SCK || P9_22<br />
|-<br />
| MOSI || P9_18<br />
|-<br />
| D/C || P9_19<br />
|-<br />
| RESET || P9_20<br />
|-<br />
| CS|| P9_17<br />
|-<br />
| GND|| 0V<br />
|-<br />
| VCC|| 5V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! MFRC522 Pins !! Beaglebone Pins<br />
|-<br />
| SDA || P9_28<br />
|-<br />
| SCK || P9_31<br />
|-<br />
| MISO || P9_30<br />
|-<br />
| MOSI || P9_29<br />
|-<br />
| IRQ || No Connection<br />
|-<br />
| GND || 0V<br />
|-<br />
| RST || 3.3V<br />
|-<br />
| Vcc || 3.3V<br />
|}<br />
<br />
{| class="wikitable"<br />
|-<br />
! Servo Pins !! Beaglebone Pins<br />
|-<br />
| Control Servo 1 (Orange Wire) || P8_45<br />
|-<br />
| Control Servo 2 (Orange Wire) || P8_46<br />
|-<br />
| Control Servo 3 (Orange Wire) || P9_14<br />
|-<br />
| Control Servo 4 (Orange Wire) || P9_16<br />
|-<br />
| Vcc (Red Wire) || 5V<br />
|-<br />
| GND (Brown Wire) || 0V<br />
|}<br />
1. Clone the git repo found here: https://github.com/howletmj/ECE434.git<br />
<br />
2. Go to the ECE434/FinalProject/MFRCBellDisplay directory.<br />
<br />
3. Enter the make command.<br />
<br />
4. Run the setup.sh script.<br />
<br />
5. Configure the logtosheets.py to your own google sheets document.<br />
<br />
6. Run MFRC522 <br />
<br />
== User Instructions ==<br />
<br />
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 one of four bells three times.<br />
==Highlights==<br />
Reads Specific ID cards that are not the Rose-Hulman Ids. Shows the ID on the TFT display. Logs the id to a google sheet and rings one of four bells 3 times.<br />
== Challenges ==<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
The servos require an additional power supply unit to supply power that the beaglebone cannot provide alone. The beaglebone can supply enough power to turn a servo unloaded but cannot with anything attached. The pwm needs to be set at 50Hz. The servos I was using for the bells accepted pwm signals with duty cycle of 9% to 15%. <br />
<br />
== Theory of Operation ==<br />
<br />
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. <br />
<br />
== Work Breakdown ==<br />
<br />
1. Gathered libraries needed for converting from Arduino to beaglebone C++.<br />
<br />
2. Attempt at converting libraries.<br />
<br />
3. Loopback test for SPI bus.<br />
<br />
4. Fix issues with SPI bus.<br />
<br />
5. Verify Scanner works correctly.<br />
<br />
5. Get C program to write to LCD screen.<br />
<br />
6. Setup servos for bells.<br />
<br />
7. Write uids to google sheets.<br />
<br />
8. Final Documentation<br />
==Future Work==<br />
I will in the future try looking through the datasheet for the touchscreen I have personally and see if I can write a basic driver to read touch position on the screen.<br />
== Conclusions ==<br />
The embedded systems community is alive, thriving and constantly updating. The beaglebone allows people to do a lot of things in a very accessible way. This project allowed me to explore the ability to pull things designed for arduinos and micro-controllers to a higher level platform. While constantly updating, open source has issues with keeping documentation of issues and problems in previous versions up to date. If I had more time I would try to get the touch screen portion of the LCD displays working. It would be cool if someone was able to incorporate Blynk into the project so that you could have live updates of who scanned their rfid card. <br />
<br />
{{YoderFoot}}</div>Howletmjhttps://elinux.org/index.php?title=ECE497_Project_-_RFID_Scanner&diff=481171ECE497 Project - RFID Scanner2018-11-13T14:50:58Z<p>Howletmj: </p>
<hr />
<div>[[Category:ECE497 |PR]]<br />
[[Category:ECE497Fall2018 |PR]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:howletmj|Matthew Howlett]]<br />
<br />
<br />
<br />
== Executive Summary ==<br />
<br />
Eventually there will be a picture that summarizes this project.<br />
<br />
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 a bell corresponding to the ID number.<br />
<br />
== Timeline ==<br />
10/20/18 RFID reader and TFT screen hardware obtained <br />
<br />
10/25/18 RFID reader operational <br />
<br />
10/31/18 TFT screen operational<br />
<br />
11/5/18 Integration done <br />
<br />
== Packaging ==<br />
I will not be able to package the final project nicely due to the amount of wiring, pin ordering on the beaglebone and the bell display.<br />
<br />
== Installation Instructions ==<br />
Wire the beaglebone as shown below:<br />
<br />
[[File:Rfid Scanner wiring.jpg|thumb|right|Wiring Diagram]]<br />
<br />
Clone the git repo found here: https://github.com/howletmj/ECE434.git<br />
<br />
Go to the ECE434/FinalProject/MFRCBellDisplay directory.<br />
<br />
Enter the make command.<br />
<br />
Run the setup.sh script.<br />
<br />
configure the logtosheets.py to your own google sheets document.<br />
<br />
Run MFRC522 <br />
<br />
== User Instructions ==<br />
<br />
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.<br />
<br />
== Challenges ==<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
The servos require an additional power supply unit to supply power that the beaglebone cannot provide alone. The beaglebone can supply enough power to turn a servo unloaded but cannot with anything attached. The pwm needs to be set at 50Hz. The servos I was using for the bells accepted pwm signals with duty cycle of 9% to 15%. <br />
<br />
== Theory of Operation ==<br />
<br />
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. <br />
<br />
== Work Breakdown ==<br />
<br />
1. Gathered libraries needed for converting from Arduino to beaglebone C++.<br />
2. Attempt at converting libraries.<br />
3. Loopback test for SPI bus.<br />
4. Fix issues with SPI bus.<br />
5. Verify Scanner works correctly.<br />
5. Get C program to write to LCD screen.<br />
6. Setup servos for bells.<br />
7. Write uids to google sheets.<br />
8. Final Documentation<br />
<br />
== Conclusions ==<br />
The embedded systems community is alive, thriving and constantly updating. The beaglebone allows people to do a lot of things in a very accessible way. This project allowed me to explore the ability to pull things designed for arduinos and micro-controllers to a higher level platform. While constantly updating, open source has issues with keeping documentation of issues and problems in previous versions up to date. If I had more time I would try to get the touch screen portion of the LCD displays working. It would be cool if someone was able to incorporate Blynk into the project so that you could have live updates of who scanned their rfid card. <br />
<br />
{{YoderFoot}}</div>Howletmjhttps://elinux.org/index.php?title=File:Rfid_Scanner_wiring.jpg&diff=481166File:Rfid Scanner wiring.jpg2018-11-13T14:29:09Z<p>Howletmj: </p>
<hr />
<div>Wiring Diagram for project</div>Howletmjhttps://elinux.org/index.php?title=ECE497_Project_-_RFID_Scanner&diff=480266ECE497 Project - RFID Scanner2018-11-08T12:55:06Z<p>Howletmj: </p>
<hr />
<div>[[Category:ECE497 |PR]]<br />
[[Category:ECE497Fall2018 |PR]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:howletmj|Matthew Howlett]]<br />
<br />
<br />
<br />
== Executive Summary ==<br />
<br />
Eventually there will be a picture that summarizes this project.<br />
<br />
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.<br />
<br />
== Timeline ==<br />
10/20/18 RFID reader and TFT screen hardware obtained <br />
<br />
10/25/18 RFID reader operational <br />
<br />
10/31/18 TFT screen operational<br />
<br />
11/5/18 Integration done <br />
<br />
== Packaging ==<br />
I will not be able to package the final project nicely due to the amount of wiring and the bell display.<br />
<br />
== Installation Instructions ==<br />
Wire the beaglebone as shown below:<br />
<br />
Clone the git repo found here:<br />
<br />
Go to the ECE434/FinalProject/MFRCdisplayBell directory.<br />
<br />
Enter the make command.<br />
<br />
Run the setup.sh script.<br />
<br />
configure the logtosheets.py to your own google sheets document.<br />
<br />
Run MFRC522 <br />
<br />
== User Instructions ==<br />
<br />
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.<br />
<br />
== Challenges ==<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
== Theory of Operation ==<br />
<br />
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. <br />
<br />
== Work Breakdown ==<br />
<br />
1. Gathered libraries needed for converting from Arduino to beaglebone C++.<br />
<br />
== Future Work ==<br />
<br />
Not Done Yet.<br />
<br />
== Conclusions ==<br />
<br />
Not Done Yet.<br />
<br />
{{YoderFoot}}</div>Howletmjhttps://elinux.org/index.php?title=ECE497_Project_-_RFID_Scanner&diff=478636ECE497 Project - RFID Scanner2018-10-25T14:20:30Z<p>Howletmj: </p>
<hr />
<div>[[Category:ECE497 |PR]]<br />
[[Category:ECE497Fall2018 |PR]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:howletmj|Matthew Howlett]]<br />
<br />
<br />
<br />
== Executive Summary ==<br />
<br />
Eventually there will be a picture that summarizes this project.<br />
<br />
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 am slowly 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 touch screen library uses SPI to draw visuals as well as operate the resistive touch screen. Nothing works yet, but will be working once I have time to work on it. Should be a fun project and has room for expansion should the library conversions go too quickly.<br />
<br />
== Timeline ==<br />
10/20/18 RFID reader and TFT screen hardware obtained <br />
<br />
10/25/18 RFID reader operational <br />
<br />
10/31/18 TFT screen operational<br />
<br />
11/5/18 Integration done <br />
<br />
== Packaging ==<br />
I may 3D print a box to contain everything, but I'm mainly having trouble figuring out the cabling for the touch screen since it does not line up well with the BB pinout.<br />
<br />
== Installation Instructions ==<br />
<br />
I will figure this out once started.<br />
<br />
== User Instructions ==<br />
<br />
Not Done Yet.<br />
<br />
== Highlights ==<br />
<br />
Not Done Yet.<br />
<br />
== Theory of Operation ==<br />
<br />
Not Done Yeet.<br />
<br />
== Work Breakdown ==<br />
<br />
1. Gathered libraries needed for converting from Arduino to beaglebone C++.<br />
<br />
== Future Work ==<br />
<br />
Not Done Yet.<br />
<br />
== Conclusions ==<br />
<br />
Not Done Yet.<br />
<br />
{{YoderFoot}}</div>Howletmjhttps://elinux.org/index.php?title=ECE497_Project_-_RFID_Scanner&diff=476356ECE497 Project - RFID Scanner2018-10-07T23:01:22Z<p>Howletmj: Created page with "PR PR {{YoderHead}} Team members: Matthew Howlett == Executive Summary == Eventually there will be a p..."</p>
<hr />
<div>[[Category:ECE497 |PR]]<br />
[[Category:ECE497Fall2018 |PR]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:howletmj|Matthew Howlett]]<br />
<br />
<br />
<br />
== Executive Summary ==<br />
<br />
Eventually there will be a picture that summarizes this project.<br />
<br />
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 am slowly 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 touch screen library uses SPI to draw visuals as well as operate the resistive touch screen. Nothing works yet, but will be working once I have time to work on it. Should be a fun project and has room for expansion should the library conversions go too quickly.<br />
<br />
== Packaging ==<br />
I may 3D print a box to contain everything, but I'm mainly having trouble figuring out the cabling for the touch screen since it does not line up well with the BB pinout.<br />
<br />
== Installation Instructions ==<br />
<br />
I will figure this out once started.<br />
<br />
== User Instructions ==<br />
<br />
Not Done Yet.<br />
<br />
== Highlights ==<br />
<br />
Not Done Yet.<br />
<br />
== Theory of Operation ==<br />
<br />
Not Done Yeet.<br />
<br />
== Work Breakdown ==<br />
<br />
1. Gathered libraries needed for converting from Arduino to beaglebone C++.<br />
<br />
== Future Work ==<br />
<br />
Not Done Yet.<br />
<br />
== Conclusions ==<br />
<br />
Not Done Yet.<br />
<br />
{{YoderFoot}}</div>Howletmjhttps://elinux.org/index.php?title=EBC_Exercise_12a_2.4_TFT_LCD_display_via_SPI&diff=475176EBC Exercise 12a 2.4 TFT LCD display via SPI2018-09-17T17:00:35Z<p>Howletmj: /* Displaying Images */</p>
<hr />
<div>[[Category:ECE497]]<br />
[[Category:EmbeddedBeagleClass]]<br />
{{YoderHead}}<br />
<br />
[[File:Ili9341.png|thumb|2.4" TFT LCD]]<br />
<br />
This is an exercise in interfacing the 2.4" TFT LCD display (ili9341) via a SPI bus.<br />
<br />
== The Hardware ==<br />
<br />
This table shows how to wire the LCD display for SPI 0.<br />
<br />
{| class="wikitable"<br />
|-<br />
! LCD !! Bone<br />
|-<br />
| MISO || P9_21<br />
|-<br />
| LED || P9_16<br />
|-<br />
| SCK || P9_22<br />
|-<br />
| MOSI || P9_18<br />
|-<br />
| D/C || P9_19<br />
|-<br />
| RESET || P9_20<br />
|-<br />
| CS || P9_17<br />
|-<br />
| GND || P9_2<br />
|-<br />
| VCC || P9_4<br />
|}<br />
<br />
== The Software ==<br />
<br />
Clone the course repo.<br />
<br />
bone$ '''git clone https://github.com/MarkAYoder/BeagleBoard-exercises.git exercises'''<br />
<br />
and then<br />
<br />
bone$ '''cd exercises/display/ili9341/fb'''<br />
bone$ '''git pull'''<br />
bone$ '''./on.sh'''<br />
<br />
After a moment the display should turn dark. Look in '''on.sh''' to see what it did.<br />
<br />
=== Displaying Images ===<br />
Follow the instructions in '''install.sh''' to download '''fbi''' and some images.<br />
bone$ '''sudo apt update'''<br />
bone$ '''sudo apt install fbi'''<br />
Display them with:<br />
bone$ '''fbi -noverbose -T 1 -a boris.png'''<br />
You should now see Boris the Beagle on your display.<br />
<br />
=== Playing Movies ===<br />
Install '''mplayer''' and load a movie on the Bone (see install.sh). <br />
bone$ '''sudo apt install mplayer'''<br />
<br />
Play the movie. Rotate the movie.<br />
<br />
=== Generate Text ===<br />
Install imagemagick. <br />
bone$ '''sudo apt install imagemagick'''<br />
<br />
See '''text.sh''' for an example of using imagemagick to write text to the LCD display. <br />
Write your name on the LCD. <br />
Display an image and write some text on it.<br />
<br />
# Here's how to use imagemagick to display text<br />
# Make a blank image<br />
SIZE=320x240<br />
TMP_FILE=/tmp/frame.png<br />
<br />
# From: http://www.imagemagick.org/Usage/text/<br />
convert -background lightblue -fill blue -font Times-Roman -pointsize 24 \<br />
-size $SIZE \<br />
label:'ImageMagick\nExamples\nby Anthony' \<br />
-draw "text 0,200 'Bottom of Display'" \<br />
$TMP_FILE<br />
<br />
sudo fbi -noverbose -T 1 $TMP_FILE<br />
<br />
{{YoderFoot}}</div>Howletmjhttps://elinux.org/index.php?title=User:Howletmj&diff=473981User:Howletmj2018-08-31T11:31:00Z<p>Howletmj: </p>
<hr />
<div>Electrical Engineering Major, Class of 2019<br />
[[Category:ECE497Fall2018 |UH]]</div>Howletmjhttps://elinux.org/index.php?title=EBC_Editing_a_Wiki&diff=473976EBC Editing a Wiki2018-08-31T11:27:40Z<p>Howletmj: /* Fall 2018 */</p>
<hr />
<div>[[Category:ECE597 |exer12]]<br />
{{YoderHead}}<br />
<br />
Here is a wiki you can practice editing. Before you can edit it you will have to create an login. Pick something that will make it easy for me to identify you as part of my class. Then just add your name and date on the end of the table.<br />
<br />
You can get help here: [[Help:Contents]].<br />
<br />
If you need help with syntax check out the [[Editing Quickstart Guide|eLinux guide]] or the [http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet Wikipedia Cheatsheet].<br />
<br />
==Fall 2018 ==<br />
{|<br />
|-<br />
| [[user:Yoder | Mark A. Yoder]] <br />
| 29-Aug-2018<br />
|-<br />
|-<br />
| [[user:Howletmj | Matthew Howlett]] <br />
| 30-Aug-2018<br />
|-<br />
|}<br />
<br />
==Fall 2017 ==<br />
{|<br />
| [[user:Bretscak | Adam Bretsch]] <br />
| 31-Aug-2017<br />
|-<br />
| [[user:craigla| Luke Craig]] <br />
| 1-Sep-2017<br />
|-<br />
| [[user:Guod| Donglai Guo]] <br />
| 1-Sep-2017<br />
|-<br />
| [[user:Muelleas | Andrew Mueller]] <br />
| 1-Sep-2017<br />
|-<br />
|}<br />
{|<br />
| [[user:SaraHB | Sara Harvey-Browne]] <br />
| 31-Aug-2017<br />
|-<br />
|}<br />
{|<br />
|[[user:Daniel.Neelappa | Daniel Neelappa]] <br />
| 31-Aug-2017<br />
|-<br />
|}<br />
{|<br />
|[[user:Pierceja | Joey Pierce]]<br />
| 31-Aug-2017<br />
|-<br />
|}<br />
{|<br />
| [[user:Hummcs | Curtis Humm]]<br />
| 1-Sep-2017<br />
|-<br />
|-<br />
| [[user:Wangc| John Wang]] <br />
| 1-Sep-2017<br />
|-<br />
|-<br />
| [[user:Wengs| Yvette Weng]] <br />
| 1-Sep-2017<br />
|-<br />
|-<br />
| [[user:Maxcheese3| Ryan Evans]] <br />
| 1-Sep-2017<br />
|-<br />
| [[user:Awiesler| Adam Wiesler]] <br />
| 1-Sep-2017<br />
|-<br />
|-<br />
| [[user:Wangy12| Yuchen Wang]] <br />
| 1-Sep-2017<br />
|-<br />
|-<br />
| [[user:klinedd| Dustin kline]]<br />
| 5-Sep-2017<br />
|-<br />
|}<br />
<br />
== Fall 2016 ==<br />
{|<br />
| [[user:davidcaggiano | David J. Caggiano]]<br />
| 1-Sep-2016<br />
|-<br />
| [[user:Koontz | Alvin Koontz]]<br />
| 2-Sep-2016<br />
|-<br />
| [[user:Gfrung4 | George F. Rung]]<br />
| 2-Sep-2016<br />
|-<br />
| [[user:Smithtl | Tim L. Smith]]<br />
| 2-Sep-2016<br />
|}<br />
<br />
== Fall 2015 ==<br />
<br />
{|<br />
| [[user:yoder | Mark A. Yoder]]<br />
| 10-Aug-2015<br />
|-<br />
| [[user:DivakarMaurya | Divakar Maurya]]<br />
| 16-Sep-2015<br />
|-<br />
| [[user:Rajat Valecha | Rajat Valecha]]<br />
| 16-Aug-2015<br />
|-<br />
| [[user:ahmed | Ahmed Karanath]]<br />
| 13-Aug-2015<br />
|-<br />
| [[user:Himanshu Kamboj| Himanshu Kamboj]]<br />
| 16-Sept-2015<br />
|-<br />
| [[user:gopalkriagg | Gopal Krishan Aggarwal]]<br />
| 12-Aug-2015<br />
|-<br />
| [[user:vishalgoel003 | Vishal Goel]]<br />
| 11-Aug-2015<br />
|-<br />
| [[user:Tshrjn | Tushar Jain]]<br />
| 10-Sept-2015<br />
|-<br />
| [[user:Anand K. Parmar | Anand K. Parmar]]<br />
| 10-Aug-2015<br />
|-<br />
| [[user:Mohit sharma | Mohit sharma]]<br />
| 31-Aug-2015<br />
|-<br />
| [[user:sanjeev_k | Sanjeev Khare]]<br />
| 15-Aug-2015<br />
|-<br />
| [[user:kanz | Kansul Mahrifa]]<br />
| 19-Aug-2015<br />
|-<br />
| [[user:manojkumar | Manoj Kumar]]<br />
| 19-Aug-2015<br />
|- <br />
| [[user:sadwith gogula | Sadwith gogula]]<br />
| 19-Aug-2015<br />
|-<br />
| [[user:pkm619 | Pushpendra kumar]]<br />
| 20-Aug-2015<br />
|-<br />
| [[user:guntukuvikas | Guntuku Vikas]]<br />
| 25-Aug-2015<br />
|-<br />
| [[user:sidgangal | Siddharth Gangal]]<br />
| 25-Aug-2015<br />
|-<br />
| [[user:Roby1234 | Onkar Singh]]<br />
| 25-Aug-2015<br />
|-<br />
| [[user:vinodkgupta | vinod kumar]]<br />
| 25-Aug-2015<br />
|-<br />
| [[user:merlin sundar | Merlin sundar]]<br />
| 25-Aug-2015<br />
|}<br />
<br />
== Fall 2014 ==<br />
<br />
{|<br />
| [[user:yoder | Mark A. Yoder]]<br />
| 6-Aug-2014<br />
|-<br />
| [[user:JiayuGuo | Jiayu Guo]]<br />
| 25-sep-2014<br />
|-<br />
| [[user:zwj102030 | Weijian zhang]]<br />
| 18-sep-2014<br />
|-<br />
<br />
| [[user:XHa0z | Zhihao Xue]]<br />
| 4-Sept-2014<br />
|-<br />
| [[user:caiocvsilva | Caio Silva]]<br />
| 5-Sept-2014<br />
|-<br />
| [[user:MattOlson | Matt Olson]]<br />
| 7-Sept-2014<br />
|-<br />
| [[user:Leihao | Leihao Wei]]<br />
| 7-Sept-2014<br />
|-<br />
| [[user:Mikuzz | Zizhao Wang]]<br />
| 7-Sept-2014<br />
|-<br />
|[[user:Zhouy | Ying Ying Zhou]]<br />
| 7-Sept-2014<br />
|-<br />
|[[user:Eric Taylor | Eric Taylor]]<br />
| 7-Sept-2014<br />
|-<br />
|[[user:Peter_Olejnik | Peter Olejnik]]<br />
| 7-Sept-2014<br />
|-<br />
|[[user:Dmitryvv | Dmitry Votintsev]]<br />
| 7-Sept-2014<br />
|-<br />
|[[user:morrisma| Mark Morrison]]<br />
| 9-Sept-2014<br />
|-<br />
|[[user:vaddera| Alexandre van der Ven de Freitas]]<br />
| 9-Sept-2014<br />
|-<br />
|[[user:randallsturner13| Randy Turner]]<br />
| 11-Sept-2014<br />
|-<br />
|[[user:ADraicBrom| Asa Bromenschenkel]]<br />
| 18-Sept-2014<br />
|-<br />
|}<br />
<br />
== Winter 2013 ==<br />
{|<br />
|-<br />
| [[user:cattnb | Nathan Catt]]<br />
| 28-November-2013<br />
|-<br />
| [[user:belkat | Andrew Belk]]<br />
| 7 Dec 2013<br />
|-<br />
|}<br />
<br />
== Fall 2013 ==<br />
<br />
{|<br />
|-<br />
| [[user:amesen | Eric Ames]]<br />
| 13-June-2013<br />
|-<br />
| [[user:fendrirj | Robert Fendricks]]<br />
| 5-September-2013<br />
|-<br />
| [[user:elswicwj | Will Elswick]]<br />
| 5-September-2013<br />
|-<br />
| [[user:savrdada | David Savrda]]<br />
| 5-September-2013<br />
|-<br />
| [[user:skorinm | Matt Skorina]]<br />
| 6-September-2013<br />
|-<br />
| [[user:Parasby | Ben Paras]]<br />
| 6-September-2013<br />
|-<br />
| [[user:Yuxuan | Yuxuan Zeng]]<br />
| 5-September-2013<br />
|-<br />
| [[user:Mcdonamp | Mike McDonald]]<br />
| 5-September-2013<br />
|-<br />
| [[user:Kowalsif | Ian Kowalski]]<br />
| 5-September-2013<br />
|-<br />
| [[user:daniel.hou | Junxuan Hou]]<br />
| 5-September-2013<br />
|-<br />
| [[user:Andrewca | Chris Andrews]]<br />
| 5-September-2013<br />
|-<br />
| [[user:Rockybulwinkle | Chris Hopwood]]<br />
| 6-September-2013<br />
|-<br />
| [[user:Tpurviance | Taylor Purviance]]<br />
| 6-September-2013<br />
|-<br />
| [[user:Manuel | Manuel Stephan]]<br />
| 8-September-2013<br />
|-<br />
| [[user:FreeTymeKiyan | Yang Liu]]<br />
| 8-September-2013<br />
|-<br />
| [[user:Cooperdl | David Cooper]]<br />
| 9-September-2013<br />
|-<br />
| [[user:Alvareap | Alex Alvarez]]<br />
| 10-September-2013<br />
|-<br />
|}<br />
<br />
== Fall 2012 ==<br />
<br />
{|<br />
|-<br />
| [[user:Yoder | Mark A. Yoder]]<br />
| 18-July-2012<br />
|-<br />
| [[user:atniptw | Tom Atnip]]<br />
| 20-July-2012<br />
|-<br />
| [[user:Xinyu1991 | Xinyu Cheng]]<br />
| 31-August-2012<br />
|-<br />
| [[user:bssachin45 | B S Sachin]]<br />
| 25-July-2012<br />
|-<br />
| [[user:ruff | Ruffin White]]<br />
| 16-August-2012<br />
|-<br />
| [[user:Popenhjc | James Popenhagen]]<br />
| 30-August-2012<br />
|-<br />
| [[user:mmoravec | Matthew Moravec]]<br />
| 30-August-2012<br />
|-<br />
| [[user:ngop | Peter Ngo]]<br />
| 30-August-2012<br />
|-<br />
| [[user:duganje | Josh Dugan]]<br />
| 30-August-2012<br />
|-<br />
| [[user:hansenrl | Ross Hansen]]<br />
| 30-August-2012<br />
|-<br />
| [[user:jungeml | Michael Junge]]<br />
| 05-September-2012<br />
|- <br />
| [[User:shinnsm|Stephen Shinn]]<br />
| 30-August-2012<br />
|-<br />
| [[User:draneaw|Alex Drane]]<br />
| 30-August-2012<br />
|-<br />
| [[User:larmorgs|Greg Larmore]]<br />
| 31-August-2012<br />
|-<br />
| [[User:jessebrannon|Jesse Brannon]]<br />
| 31-August-2012<br />
|-<br />
| [[User:lix|Xia Li]]<br />
| 31-August-2012<br />
|-<br />
| [[User:whiteer|Elias White]]<br />
| 31-August-2012<br />
|-<br />
| [[User:Astroricks|Yue Zhang]]<br />
| 31-August-2012<br />
|-<br />
| [[User:millerap|Andrew Miller]]<br />
| 31-August-2012<br />
|-<br />
| [[user:Geislekj | Kevin Geisler]]<br />
| 1-September-2012<br />
|-<br />
| [[user:chris.good | Christopher A Good]]<br />
| 3-September-2012<br />
|-<br />
| [[user:Lobdeljt | John Lobdell]]<br />
| 5-November-2012<br />
|}<br />
<br />
== Winter 2011-2012 ==<br />
<br />
{|<br />
|-<br />
| [[user:Yoder | Mark A. Yoder]]<br />
| 21-Nov-2011<br />
|-<br />
| [[user:Yuming | Yuming Cao]]<br />
| 21-Nov-2011<br />
|-<br />
| [[user:Yuhasmj | Michael Yuhas]]<br />
| 21-Nov-2011<br />
|-<br />
| [[user:Yifei | Yifei Li]]<br />
| 22-Nov-2011<br />
|-<br />
| [[user:Ziyi Zhang | Ziyi Zhang]]<br />
| 24-Nov-2011<br />
|-<br />
|[[user: mac | Jack Ma]]<br />
| 28-Nov-2011<br />
|-<br />
| [[user:Zitnikdj | David Zitnik]]<br />
| 25-Nov-2011<br />
|-<br />
| [[user:Harrisgw | Greg Harrison]]<br />
| 26-Nov-2011<br />
|-<br />
| [[user:Yanj | Mona J Yan]]<br />
| 27-Nov-2011<br />
|-<br />
| [[user:Gemini91 | Guanqun Wang]]<br />
| 28-Nov-2011<br />
|-<br />
| [[user:vsn1985 | Narayanan VS]]<br />
| 28-Nov-2011<br />
|}<br />
<br />
<br />
{{YoderFoot}}</div>Howletmj