We can have several future improvements of our design. First of all we can write driver software to let the user customize their scrolling motion rather than having the user to conform to our pre-defined motion. We can also write software to let the user to define motion gestures, such as cutting and pasting with special motions.
Our design conform to the PS/2 standard in its clock frequency (12.5 kHz, the PS/2 requires 10 kHz to 16 kHz). It also conform to the PS/2 standard in transmittion delay times. Our mouse also process all commands from the host according to the PS/2 standard. There is no official document for the PS/2 standard, and we based our design mostly onAdam Chapweske's page.
We re-used the following code from other people's design:
Luke Hejnar and Sean Leventhal's queuePut and queueGet functions for implementating a queue to send the bytes.
We modified the following code from other people's design:
Rob Buels's processcommand function, which process the host command byte. We changed their assembly code to c code for our mega 32 chip.
We reverse engineered the PS/2 protocol from a Microsoft PS/2 three button wheel mouse.
The PS/2 is an open protocol so this is not a problem
All other design and code are done entirely from scratch by us.
With our design we were able to make a good prototype pointing device that is cheap to make and easy to use as compared to traditional mice.
We stated our sources and stated whenever possible when we re-used code of projects from previous years. We did not use any code from commercial sources which will spare us from any patent violations. We would contact the authors of the code which we re-used and check with them if they have developed products based on those code, to avoid conflict of interests.
We have stated our limitations. Originally we were going to design a device that detects motion in three dimensional spaces. However based on available resolution of our accelerometer we were not able to do so, and decided to do a PS/2 protocol mouse.
We were helped by classmates in the class who were also working on the PS/2 protocol, and special thanks to their idea on intercepting the signal from a real mouse to figure out their exact delay time to work with the computer. We also reused parts of the code from previous year's projects that were related to the PS/2 protocol, which includes the packet send queue and the host command processor.
Our mouse design has no preference on race, religion, gender, age, or national origin. Particularly, it has no preference on right-handed people or left-handed people - both can use our device equally well. Our design is also usable with people with hand injuries because our device is sensitive and is ergonomic. However, people with more severe hand disability will have more difficulty using our pointing device, and for those people we plan to have future products to suit their needs.