Interfacing Graphical LCD (ST7920) with Arduino

There are many types of LCDs used in Electronic Projects. We have already used 16X2 LCD in many of our projects and also used TFT LCD with Arduino. You can find our entire 16X2 LCD related project by following this link, including interfacing with 8051, AVR, Arduino and many more.

Interfacing Graphical LCD (ST7920) with Arduino

The ST9720 Graphical LCD is totally different from the Ordinary LCDs. Ordinary LCD can only print simple text or numbers within a fixed size. But in Graphical LCDs we have 128*64 which is equal to 8192 dots or 8192/8 = 1024 pixels, so apart from character, we can display any Graphical Image on this GLCD.

We already interfaced GLCD with 8051, today we will interface Graphical LCD with Arduino to display text and images on it.

Material Required

  • Arduino UNO
  • 128*64 Graphical LCD ST9720
  • Potentiometer-10k
  • Connecting wires
  • Breadboard

Circuit Diagram

128*64 Graphical LCD

This Graphical LCD is having low power consumption and also suitable for battery power portable device. It have wide operating voltage range 2.2v to 5.5v and supports both serial and 8/4-bit parallel communication and comes with ST7290 LCD controller/driver IC. Interface communication mode can be switched between parallel and serial using PSB PIN 15. This graphical LCD has an automatic power on Reset function and can be easily controlled by MCU such as 8051, AVR, ARM, Arduino and Raspberry Pi.

You can go through with the datasheet for detailed information about ST7290 128*64 Graphical LCD

Pin Configuration

Pin No.

Pin Name




Ground terminal



Input supply voltage (2.7v to 5.5v)



LCD contrast



Register Select

RS = 0: Instruction Register

RS = 1: Data Register



Read/Write control





DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7

Data Pins (used in parallel 8/4bit communication mode)



Interface selection:

Low(0) for serial communication mode

High (1) for 8/4-bit parallel bus mode.



Not connected



Reset Pin



LCD voltage doubler output. VOUT ≦ 7V.



Backlight positive supply



Backlight Negative supply

READ  LPD8806 SD/LCD Digital Light Wand! (Last Update – 20 September 2014)


  • Industrial device
  • Embedded Systems
  • Security
  • Medical
  • Hand-held equipment

Converting Image into Hex Code:

To show any image on Graphical LCD, we need HEX code of that image, so here are few steps to convert Image into HEX code. Before that you have to make sure that the size of image should not exceed 128*64.

Step-1: Decrease the size of the normal image to 128*64 or less, which you can do using any image editing software like MS paint.

As shown in the picture above, we are setting the width and height of the image to 128*64.

Step-2: Then you need to save the image in “image_name.bmp” format.

Select the format shown in the above image and save the file for further process.

Interfacing Graphical LCD (ST7920) with Arduino schematics

Step-3: After saving it into “.bmp” format you need to convert the image into hex code for printing. For this, I am using the software named GIMP 2, which convert Bmp file to hex code.

Read more: Interfacing Graphical LCD (ST7920) with Arduino

This Post / Project can also be found using search terms:

  • with arduino
  • arduino 128 64 lcd code 4 bit
  • arduino st7920
  • esp32 devkit st9720

Leave a Comment

= 5 + 9

(Spamcheck Enabled)

Read previous post:
Troubleshooting a 32kHz Crystal Oscillator
Troubleshooting a 32kHz Crystal Oscillator

For Project Whack a Mole I need a 32.768kHz crystal oscillator. I found this circuits on the Interwebs and gave...

Scroll to top