Skip to main content

more options

Appendices and References

This section contains all the code, schematics, cost details, task breakdowns, and references used for this project.

Appendix A: Software Code

Main Project Code

The code for the project is organized into three zip files.
Contains all the C code used to program the microcontroller for the touchpad security system setup.
Contains the Java code used for the security manager client that is run on the PC.  It communicates with the security device through a USB cable.
Contains extra files that are needed to run the Java security manager application.

Wifi Module Test Code
The file was used in order to create and access a TCP socket connection between the wifi module and the PC.  It would print any data received from the module, then send it 50 million strings, in order to determine if the wifi module was receiving data and sending it to the serial port.  TimersGCC644.c is a test file provided by Prof. Bruce Land that streams numbers comparing two timing methods across the UART.  It was used to test if the module was receiving any data from the serial port.  ISRserialGCC644_led.c is also based on code provided by Prof. Bruce Land, and toggles a led each time information is received by the microcontroller across the UART.  Both TimersGCC644.c and ISRserialGCC644_led.c require uart.h and uart.c, where the baud rate has been set to 38400 to match that of the wifi module.   

Appendix B: Hardware Schematics

Custom USB Prototype Board
This schematic shows the connections and hardware that go on the ECE 4760 USB prototyping board that will be used officially next year for the class, as was mentioned in the Hardware Design section.  Full details of the USB converter chip and connector are not available, and are represented by a single block in the diagram.  The full board is used for the touchpad to USB interface configuration.  In the future wifi interface configuration, the USB chip and connector are not needed. 

 Touchpad – USB Interface Schematic
This schematic represents the final hardware implementation for the final project, in which a USB connection is used in order to facilitate touchpad password entry, storage, and programming of new passwords. 

 Touchpad - Wifi Interface Schematic
This schematic indicates the hardware connections required in order to create a wifi interface for the touchpad.  This design, using the WIZ610wi module, was never successfully implemented, and remains a task for future expansion of the project.

Appendix C: Cost Details

Number Item Part Number Vendor Cost
1 Synaptic Touchpad TM41PUM1311-2
- $8
1 ATMEGA644 MCU - 4760 Lab $8
1 Custom USB Prototype Board 1 4760 Lab $4
1 USB Converter Chip FT232R 4760 Lab $5
1 USB Connector - 4760 Lab $1
47 Header Pins - 4760 Lab $2.35
1 Power Supply - 4760 Lab $5
1 6 inch solder board - 4760 Lab $2.50
4 2 Pin Jumper Cables - 4760 Lab $4
2 Pushbuttons - 4760 Lab $0
2 LEDs - 4760 Lab $0
1 Switch - 4760 Lab $0
1 Resistors, capacitors, other prototype board components - 4760 Lab $0

Total: $39.85

Appendix D: Task Breakdown

Task Group Member
Determined method of hardware connection for touchpad Jayce
Implemented and tested PS/2 and touchpad APIs Daniel
Implemented and tested the interface main logic Daniel
Designed and implemented the stroke representation for passwords Daniel
Implemented and tested the matching algorithm Daniel
Implemented and tested the Java application and
modified the microcontroller code to enable the
Researched, purchased, and developed WIZ610wi wifi
Soldered all components together and created final
product case



ATMEGA644 Microcontroller 

Synaptic Touchpad Interfacing Guide

FT232R USB Converter Chip

WIZNET Company Website

WIZ610wi Wifi Module


NetGear Wireless Router

Vendor Sites

Code / Designs Borrowed From Others

All the code and designs were our own.  The only code borrowed was some PS/2 interfacing code in the Synaptic Touchpad Interfacing Guide.

Background Sites / Papers

Sparktronics Blog with Synaptics Connection Information Background Information


We would like to thank the following individuals and companies: 

WIZNET, for their assistance in trying to debug the wifi module. 

Prof. Bruce Land for teaching the course and for helping in many parts of the project. 

Allison Smyth and the other 4760 TA’s for all their help with debugging all manner of issues. 

Nathan Chun for allowing us to use the USB prototype board.

Agnes Gravrand, for assistance in debugging the wifi module, providing general networking knowledge, and taking video.

Project Information

This project was designed and implemented as the final assignment for the class ECE 4760 at Cornell University.