Analysis of design
Our original goal was to interface the touchpad as well as a keypad to the microcontroller as the input devices and have the display on the TV. With the touchpad – keypad combination we hoped to incorporate special drawing features, like drawing straight lines, rectangles, circles, text, etc. We had also planned on porting the final image onto a computer via the on-chip USART of the microcontroller.
We really regret to say that we could not meet all our proposed goals. This was essentially due to the initial set back with the confusion regarding the protocol used by the touchpad. Another point that slowed down our speed was that we had to keep testing various approaches at every stage as we did not have a datasheet specific to our touchpad, nor was it possible to contact anyone with definite knowledge regarding the same.
We are still proud to say that we did finally get our project to perform its basic function. We modified the initial setup so as to have the display on an oscilloscope due to its incremental update algorithm as our touchpad seems to function only in relative mode. An additional point to be noted is that this modification also enables easy porting onto the computer. Finally we were also able to display on a TV screen. Though there are a few glitches that need to be debugged, the TV display algorithm is definitely a working model.
Intellectual property considerations
Initially we were under the impression that the touchpad we had worked with the PS/2 protocol. One of the previous Final Project’s already demonstrates the PS/2 implementation on an Atmel microcontroller. Thus we were hoping to use that as the base and expand further on it to include the display as well as some more drawing features. As such we ported that code to be compatible with the ATMega32, but we couldn’t really use it as our touchpad did not support the PS/2 protocol. We have included our version of the PS/2 implementation in the Appendix for quick reference for someone with a PS/2 touchpad as we are confident of its accuracy.
The final code that we used carries out the communication with the ADB protocol. We studied this protocol and built up the algorithm from ADB protocol information available in Apple documentation as well as on-line references.
We can honestly say that we upheld every point stated in the Code of Ethics throughout the duration of the project. Specifically we would like to note:
· Point 2. “to avoid real or perceived conflicts of interest whenever possible, and to disclose them to affected parties when they do exist” On several occasions, we were asked to kindly give up a workstation since our deadline was last. We had anticipated the restricted lab use but due to factors outside our control we were still working on a challenging schedule. On all occasions we were extremely accommodating and we returned during less crowded lab times.
· Point 6. “to maintain and improve our technical competence and to undertake technological tasks for others only if qualified by training or experience, or after full disclosure of pertinent limitations” During the course of this project we did extensive research on two communication protocols. Not only did we increase our knowledge base, but by making our code publicly available, we hope that in the future it’ll be of even more use.
7. “to seek, accept, and offer honest criticism of
technical work, to acknowledge and correct errors, and to credit properly the
contributions of others” We actively
sought feedback from both
· Point 8. “to treat fairly all persons regardless of such factors as race, religion, gender, disability, age, or national origin” By default, we always abide by this rule. We’re nice.
· Point 9. “to avoid injuring others, their property, reputation, or employment by false or malicious action” This was simply followed. It’s an extension of live and let live policy. We respected others and their belongings and were awarded with the same consideration.