I've been dreaming and thinking about a custom hardware interface to control my visuals. In stead of using a mouse to select parameters and change values, a dedicated controller would be a much better way to do my thing. I discovered Arduino a couple of months ago and after reading a massive amount of information about the hardware and software I decided to buy a board myself to see how far it would get me.
So last week I ordered a board from PCB Europe in Italy and I received it only 3 days later (The Netherlands). The first things I did were some standard tutorials like fading a RGB led and reading potentiometer values through hyperterminal to get familiar with everything.
After playing with Arduino for one day I think that it will suit my needs for the controller! Today I've read the Serial LCD Tutorial by DJmatic and decided to dust-off one of the LCD's that I had lying around for a couple of years.
I have the Crystalfontz CFA-643 (site, datasheet), 4x20, blue/white, with serial and USB interface. The small USB shield was mounted on the serial I/O headers, so I had to take that off first. I could have used the normal DB9 serialport that is mounted on the back, but that required a voltage between 9 and 15 volts. The serial I/O header takes 5 volts, as it's powered by USB.
I started with the code made by DJmatic, but rewrote almost every single line of code to make it work with the CF display. The display has some nice built-in routines for displaying bar graphs, very large fonts and custom characters. It's also one of the biggest 4 x 20 LCD's I've ever seen.
Interfacing the LCD with Arduino was really simple, just 4 wires! The hard part was connecting 2 input buttons to Arduino (due to the lack of a schematic or high rez picture on the button tutorial page), but I finally learnt what a pull-down resistor is, and how to connect it. I will update the tutorial page for other newbies once I have been granted contributor access to the wiki.
The buttons will allow me to access menus, select functions and change values of a wide range of parameters that are available in the software. The final controller will feature buttons, sliders, LED's and rotary encoders. The LCD will be used to show the parameters and their values.
So here's a picture of what I've managed to put together so far:
(larger version)
And a movie to see it in action: Quicktime (16,5mb)
I will contribute the code library for the Crystalfontz serial LCD once I have implemented all features and thoroughly tested it. A tutorial is also on its way...
Many thanks to the Arduino team and the community for making this possible..