For display, it’s using a Philips PCD8544 Graphical LCD. It features a whopping 84 x 48 pixels of resolution to ensure true clarity when playing Space Impact or Snake II 😀
Apparently now you can buy a module with this graphical LCD on it for around RM 10 shipped from China.
Well, if you have a Nokia 3310 lying around you can rip out its’ LCD but take note that its a pain in the butt to solder.
This module I got has everything in it including the cool white backlight. Yes, backlight is important.
The difference between Graphical LCD and a normal LCD like I’ve used in this article is that you can selectively turn on or off every pixel and form your desired image. In a typical LCD like the HD 44780, you can only send specified ASCII characters and display corresponding texts.
Like most recent electronic components, this PCD8544 Graphical LCD runs on 3.3V logic. If you’re using a 5V microcontroller (ex. Arduino Uno), you’ll need a level shifter like 74HC4050. If not, you’ll fry this LCD right away.
A level shifter converts a 5V signal to a 3.3V signal. It’s a pretty simple IC to use.
Vcc connects to 3.3V and this IC is capable of level shifting 6 channels. The ‘A’ pin connects to the 5v MCU and the ‘Y’ pin connects to the GLCD.
The connections are as below :
pin 7 – Serial clock out (SCLK)
pin 6 – Serial data out (DIN)
pin 5 – Data/Command select (D/C)
pin 4 – LCD chip select (CS)
pin 3 – LCD reset (RST)
It’s not that much of a hassle to use a level shifter, you can build the entire circuit on a small breadboard.
I’m using Adafruit’s Library and modified the sample sketch to display bitmap images.
I found a software that can convert your typical JPEG, GIF, PNG or BMP images to binary, meaning ‘0’ and ‘1’s so that you can turn on or off individual pixels on the graphical LCD.
It’s called Image2GLCD.exe and it can be downloaded here –> http://www.avrportal.com/?page=image2glcd Credits to Jirawat Kongkaen for an awesome app.
Follow the settings shown above and click on Save. A file called Image2GLCD.c will be generated and in it you will find the image bits.
Copy this into your Arduino sketch and to display them just issue this command.
display.drawBitmap(0, 0, img, 80, 45, BLACK);
img being the name of your char variable. Remember to follow it up with display.display();
Here’s a demonstration video :