LCD Interface

Finding an LCD Screen

lcd

The absolute most important thing about picking an LCD screen is to make sure you have the specs, or are prepared to put in the hours to reverse engineer the panel. The Gumstix LCD module can drive pretty much anything, as long as you have the specs for the panel. With that said, it seems like many popular LCD vendors like to sell panels that are surplus and have missing documentation. We get our LCDs from the excellent folks at All American LCD. All-American sells new LCDs (read: with specs), with matching inverter boards, in small quantities (provided they have the panels in stock) and their prices are comparable, if not better than places like EarthLCD.

Modifying the Display Driver

The LCD we used is an Optrex T-51750, 6.5", 640x480 Active Matrix panel. We've also been able to interface a monochrome 10 year old Seiko display with no specs, which really shows how flexible the LCD controller is. Setting the correct values for the LCD controller registers is straightforward. The important pieces of information are: the pixels per line, lines, and the pixel clock rate. To be on the safe side, I added delays so that the refresh frequencies are exactly that in the "typical" column on the LCD datasheet. I don't think this is actually necessary, however. The snippets of code that we added to the driver to support the panel we used is in the download section.

Portrait vs. Landscape

At the moment, screen rotation is not implemented in the Drumstix package, so the display will only show in the native orientation of the panel. If you MUST have a landscape panel show portrait (as we did), the best way to do it in CE is to draw rotated text, and to store bitmaps pre-rotated. Needless to say, standard buttons and controls cannot be rotated in this manner.