Now I'll cover initial stand-alone controller I built. This part of the project evolved as I was building it. It started with a trip to the (sort of) local surplus electronics store, HSC Electronic Supply.
As an aside, this place reminds me of my first "real-job" job right out of high-school. I worked for about 9 months at a similar type of store in St. Louis, Missouri called Gateway Electronics (not to be confused with the now defunct Gateway PC clone manufacturer). The store was rows and rows of shelves filled with plastic bins containing every kind of electronic part imaginable. For an electronics hardware geek, places like these are great for just spending a few hours roaming the isles and letting your imagination take off.
I had already picked up an Arduino Mega 2560 clone from Fry's Electronics, so I headed over to Santa Clara to roam the isles of HSC. While roaming, I found an aluminum box I decided would be the perfect size to house the project. It was clearly intended for another purpose and they only had one. Well, one is all I'm making, so into the basket it went. I then went over to the bins full of various sizes and styles of LCD displays. I saw a 240x64 graphical display with an LED back-light. It was based on a Toshiba T6963 compatible controller. It fit the box so the display was taken care of.
Continuing the roam, I noticed a bin full of thin glass sheets. Upon closer inspection, I saw that they were resistive touch screens. I knew I'd need some kind of way to control the device with switches or a small keyboard, but when I saw the touch screen, that problem was solved. I didn't need to visit the switch isle now. The touch screen was twice as tall as the display I'd just picked up, so I figured I'd use that region for an alpha-numeric keyboard.
Here's the result:
I simply found an image of a keyboard, printed it out at the correct scale and placed it under the touch-screen. The big block on the right side of the case in the image to the right is a DC-DC converted I got to convert the +5V to -12V needed for the LCD contrast/bias control. I could have built one, but I found this one at HSC for $5.
Underneath all that tangle of wires and ribbon cable is the Arduino Mega 2560. I added an SD card shield to which I can save files of captured data. There is an Arduino library that reads/writes the FAT file system so I can then read the data onto another system. You can also see the thin amber ribbon wire from the touch-screen. It's a 4-wire resistive touch screen. There are also Arduino libraries for reading the data from this display directly from the analog inputs to the device.
Next will cover some of the software I wrote and the libraries I used to create the UI and timing. I used the above library as the basis for a touch-keyboard, complete with ctrl/alt/shift meta-keys, and on-screen touch-enabled buttons. If you want to peruse some of the code, I committed it onto github.