Category Archives: Display

Electronic Displays

AnyDisplay Supported Displays

Here’s my initial list of displays which will be supported by AnyDisplay. Currently working on a breakout board for the Sharp MLCD devices which should make these easier to work with.

Display Type Price Size Resolution Colors Controller
Sharp LS013B4DN02 PNLC $20.43 28×32 96×96 Mono
Sharp LS027B7DH01 HR-TFT $45.25 62×42 400×240 Mono
Liquidware Touchshield Slide OLED     320×240 RGB666
EA DOGM128W-6 FSTN $18.00 55×46 128×64 Mono ST7565R
EA DOGXL160W-7 FSTN $35.98 78×61 160×104 Mono UC1610
FSTN $18.55 49×48 160×100 4 bit gray ST7528i
ScreenKey TFT128 TFT n/a 35×30 128×128 RGB565  
Nokia 6100 TFT $4.95 27×27 128×128 RGB565 PCF8833
Osram Pictiva OLED n/a 92×19 288×48 8 bit gray

AnyDisplay: Unified library for graphical displays

OK, I admit it.  I have a weakness for displays.  Most of the projects that I’ve got in the hopper include some sort of graphical display.  While the ubiquitous LCD character display may be inexpensive, I find them to be terribly limiting and, frankly, kind of boring.

Since delving into microcontroller development I’ve managed to get my hands on a pretty decent collection of graphical displays.  I’m currently rather obsessed with the new(ish) MemoryLCD displays from Sharp; look for a subsequent post detailing how to work with these.

One of my frustrations with the current state of graphical displays in the microcontroller realm is the lack of consistency and uniformity in terms of libraries.  Switching displays is a painful proposition; if you are lucky you may find an existing library for the display as a starting point.  The library may or may not be functional, will undoubtably be incomplete, and will most likely have a completely different API than what you are used to.    The GLCD project makes an attempt at supporting several displays, but I’m not fond of the API and adding support for new displays is rather difficult.  Some vendors such as Adafruit do take the time to build simple display libraries for the displays that they sell, but they tend to lack uniformity between displays.

I’ve spent a good deal of time researching and prototyping solutions and have designed a new unified library for graphical displays.  Called AnyDisplay, this library will provide a single, consistent API for integrating graphical displays with Microcontroller projects.  The library consists of a well-fleshed out, well tested API for graphics primitives which is consistent across all displays.  Adding support for new devices requires developing a small driver for device-specific implementations.

Ultimately, this will allow you to easily add cool graphical displays to your projects.  Focus on the product that you are trying to build rather than spending so much time dealing with low-level details.  The consistent API will make experimenting with new displays a much simpler proposition.