Browse over 10,000 Electronics Projects

A Microcontroller Based Handheld Device

A Microcontroller Based Handheld Device

The combination of a touch screen mounted on an LCD creates a highly adaptable user interface that can be used for just about anything. Our initial concept called for the use of both the Palm m125 touch screen and LCD as this is the ideal combination as they have been designed to work together and are professionally packaged.

When thinking of possible projects, we considered what hardware we had available that we might be able to use to do something interesting. At the top of this list was an old Palm m125 that would no longer power on but still had a functional LCD and touch screen, which Mike owned. Previous ECE 476 projects have incorporated graphical LCDs, however not with a touch screen interface. At this point we needed to determine if it would be possible to use either the Palm LCD or touch screen. After a good deal of research we were not able to find any drivers or documentation for the LCD or the touch screen used by the Palm m125. This removed the possibility of using the Palm LCD because it would be far to complicated to reverse engineer the protocols. The touch screen however, only has four leads so after a few simple tests we determined how the device functions and devised a simple way to use it.

At the advice of Professor Land, we looked into the Crystalfontz CFAG12864 line of graphical LCDs for which Luke Delaney, MEng 2004, had written drivers for an Atmel microcontroller. As it happens, this line of graphical displays physically fit within the touch screen which allowed us to make a useful handheld device.

Due to the flexibility of a handheld device with an LCD and touch screen, we were free to determine our final application of this technology midway through the project after we had the components working. We considered using aOS to create a very simply operating system, however that would have required converting motions on the touch screen into characters much like Palm’s Graffiti. We determined early on that the touch screen’s analog output did not have a high enough resolution or linear relationship to obtain precise and intricate motions. Therefore we decided that we would implement a game that could be played with an interactive device such as a touch screen. The natural choice based on our LCD and touch screen resolution was Simon. For those not familiar with Simon, it is a game originally designed by Hasbro in 1978 in which the player is shown four tiles flashing in a particular order. Each round the number of tiles flashed increases and the speed at which they flash can also increase. The player must memorize the order and press the tiles in the proper order. There is also a time limit on pressing the buttons that we chose not to implement in our version, due to the need for the user to hold down and press firmly on the touch screen. This along with the low linear resolution inevitably forced our game design to one incorporating fairly large blocky areas. A game like Simon, which uses 4 such blocks lends itself well to such design requirements.


A number of tradeoffs between the hardware and software were apparent when designing the system. The main tradeoff was the low linearity resulting from the analog-to-digital conversion of the x and y positions on the touch screen. While for the most part the voltages increased or decreased from one side of the touch screen to the other, the incremental voltages jumps between arbitrary points would vary and sometimes not change at all, thereby creating certain areas that were very difficult to discern through conversions. This was the main reason that Simon was chosen as the application, because Simon uses fairly large boxes. The only other tradeoff was between the LCD screen and touch screen. Because the touch screen is much larger than the LCD screen, only a portion of the touch screen is usable. Therefore we used the portion of the touch screen with the most linearity to offset the first tradeoff as much as possible.

We are unaware of any patent infringements in designing our handheld device, however we are aware of the original Simon patent (see the References section). As far as trademarks, besides using the Atmel chip, we used the touch screen from a Palm m125 and the graphical LCD is from a company called Crystalfontz. Finally we attempted to use Luke Delaney’s driver code for the graphical LCD, however we had to change and rewrite a large portion of it in order to use the LCD at all.

Visit Here for more.