I found this monocolor dot-matrix LCD laying in the “LCD” parts bin on my electronics bench and it sparked my interest to just do something with it. What exactly should I do? I didn’t know yet.
I purchased this display for about $10 as I recall, about 2 years ago from NGX Technologies and never did one project with it until now. So maybe resurrection isn’t the proper term…
It’s a 128×64 pixel display with a white backlight. My investigation into the part number, TM12864H6CCOWA, shown on the sticker adhered to the back led me the manufacturer, Tianma, and ultimately to this datasheet. There seem to be a few flavors of this display using various display controllers, as is the case with most displays. Displays seem to be one of the most volatile in the electronic components arena, utilizing two, three or sometimes four different display controllers throughout the production life-span of the display. This display had the Novatek NT75451.
The NT75451 has a serial peripheral interface, or SPI, built in; however, the display manufacturer unfortunately did not make this interface available to the outside world through the display connector pins, and instead only brought out the 8-bit parallel interface connections.
I’ve been tinkering more with the Arduino lately and wanted to use this as the microcontroller to get the display working quickly, but the display is only rated to 3.3V and I didn’t want to wire up a level-shifter. So, I went back to my MSP430 launchpad. It may have taken me a little longer this way, but I find that I am usually happier with the end result and the means I used to get there (IDE, etc.).
I used this code as a starting point to writing my own library for the MSP430. I really didn’t have to change much, other than the original was written for an ARM7, which uses bit clear and bit set registers in the architecture to set or clear individual output pins without having to do a traditional read-modify-write.
My resulting code for the MSP430 can be found here, and includes a hardware abstraction layer that should ease migration to yet other platforms (PIC, AVR, etc.).