It is amazing to see the explosion in liquid crystal display-enabled products and gadgets: alarm panels, vending machines and kiosks, toys, coffee makers, health products, and the list goes on. All these devices have some form of graphical user interface (GUI) and are available at an extraordinarily low price.
What is fueling this growth? LCD panel costs continue to fall, thereby bolstering their adaption in various applications. Faster, more full-featured microcontrollers supporting graphical LCD controllers are readily available. Vendors like NXP, TI, and Microchip are offering free graphic source code or libraries, along with board support packages (BSPs) to facilitate adoption. Using off-the-shelf evaluation boards with these BSPs will shorten development schedules and accelerate time to market.
In the not-so-distant past, deploying localized displays required creating custom segment type displays for each region. Now, utilizing crisp thin-film transistor LCD technology coupled with a microcontroller and graphics library, companies can create custom GUIs without changing hardware. The same MCU/LCD combo can be programmed or localized to any language, look, or feel.
Some products require passive-type display functionality; others require video playback performance. From a MCU selection perspective, keeping costs low remains an imperative in the embedded space. The easy option is to choose a powerful processor with lots of RAM (for the frame buffer) and processing power. However, clever techniques can be employed to provide virtual video and audio playback without a costly high-end processor. For example, FDI and NXP have demonstrated ~20fps video and audio playback on a LPC1788 Cortex-M3 part running at 120MHz (click here for an example). The LCD panel size and bits per pixel ultimately will determine the achievable frames per second value, but this solution is very suitable for use cases such as elevators or vending machines where the audio and video can be downloaded overnight when the system is not in use.
Embedded Java is another option. IS2T and Oracle -- yes, Oracle -- provide BSPs for popular ARM microcontrollers (click here to discover more).
In addition to the free libraries, other companies offer graphics software, and some distinguish themselves by providing true graphic design and user interface design services. Even the best graphics software cannot replicate the value of a graphic designer and user interface guru. I have seen great results from companies like Mjølner in Denmark and Altia in the US; both are making inroads in the market. I am sure there are many others, but these are the ones with whom I have had hands-on experience.
Of course, getting user interaction integrated into these systems is important. Resistive touch is the prevalent technology, but capacitive touch screens (driven by smartphone technology) are gaining traction in the embedded space. These LCD overlays provide a better user experience than resistive touch screens. The screen itself is clearer, and the response of the touch input is more accurate while requiring less pressure. Also, multi-touch gestures (e.g., pinch zooming) are possible. Thus, these kinds of displays are becoming more and more standard in many GUI applications.
Where do we go next? Many graphics applications require only a static background with interactive overlays for buttons and sliders. Enhancements in LCD controller architectures that allow the use of low-cost quad SPI Flash devices for image storage and rendering are possibilities. This would reduce the system costs by reducing (or even eliminating) the necessary frame buffer RAM.
What do you think? I would be very interested in hearing about any of your current projects using LCD-based graphical displays and user interfaces.