Introduction: Arduino With T6963c 240x128 Graphic LCD Tutorial

About: I am a hardcore IoT developer, i develop IoT based projects as a hobbyist as well as professionally as my source of earning. Software part such as Android Apps or Website and Hardware both are designed by me. …

LCD displays with Toshiba T6963C controller are ones of the most popular LCD displays.
Graphic LCD is used mainly where you have to create customized designs, like bitmaps, or different types of fonts.
These are available in different sizes and resolution, such as 128x64px, 128x128px, 240x128px.
The one that we will be using for the purpose of this instructable is 240x128 pixel LCD.


Interfacing with Arduino boards, and choosing the correct library to use with it, could be a little tricky. that's why i am posting this Instructable as i could not find any other helping instructable when i started working with it, so to eliminate any kind of difficulty , here we go...

Step 1: Installing Software & Library

You should be having Arduino IDE with minimum version 1.0.x.
The older version will work as well, but then you have to make some changes, to make it run.
So i will prefer the latest version, but one who having the older versions, and not willing to upgrade, can ask me in comments if they get to face any kind of problems.
Download Arduino IDE for Mac or PC HERE.

The library that we will be using, is u8glib library, download it HERE ..
This library supports various other boards, which you can check HERE

Step 2: Interfacing Arduino Board With T6963c LCD Display

Interfacing LCD's has always been trickier for many a people, so be careful and follow these instructions while Interfacing.
In the lcd pinout image, you can check out the Pinout of LCD, as this was the most suitable and correct pinout I could find on the internet.

________________________________________________________________
T6963c LCD PIN | LCD PIN NAME | Arduino Board | ________________________________________________________________|
---------- 1 -------- | -------- FG --------| ---- GND ------|

---------- 2 ---------| -------- GND ------| ----- GND ------|

---------- 3 ---------| -------- VDD ------| ----- +5V --------|

---------- 4 -------- | ----------VO -------| 10K POT (WIPER) – LEG 2 ---------|

---------- 5 -------- | --------- WR -------| ------ 17 ---------|

---------- 6 -------- |---------- RD ------- | ------ 18 ---------|

---------- 7 -------- |------- CE/CS ----- | ------ 14 ---------|

---------- 8 -------- | -------- C/D -------- | ------ 15 ---------|

---------- 9 -------- | -------- RST -------- | ------ 16 --------|

--------- 10 --------| -------- DB0 -------- | ------- 8 ---------|

--------- 11 --------| -------- DB1 -------- | --------9 ----------|

--------- 12 ------- | -------- DB2 -------- | ------- 10 --------|

--------- 13 ------- | -------- DB3 -------- | ------- 11 ---------|

--------- 14 ------- | -------- DB4 -------- | -------- 4 -------- |

--------- 15 ------- | -------- DB5 -------- | -------- 5 -------- |

--------- 16 ------- | -------- DB6 ---------| -------- 6 -------- |

--------- 17 ------- | -------- DB7 -------- | -------- 7 ---------|

--------- 18 ------- | --------- FS --------- | ------- GND -----|

--------- 19 ------- | ------- VEE --------- | ---------10K POT–LEG1 --------- |

--------- 20-------- | ------LED A -------- | -- +3.3V – 5V --| ________________________________________________________________|

This Interfacing will work for most of the Arduino boards, as these pins are available on all the Arduino boards
Still, if you want to change the pin assignment, you can change them according to your wish, but after that, you have to make a change in the code as well
we will talk about that in the next step.

Step 3: Arduino Code and U8glib Library

Library That we will be using is u8glib library, you can download it from Bintray here or from GitHub here.
It's advisable to use only this library, because it is the only library, that has been taken care of by its developer
Continuous updates are availed by the developer for this library.

I had also attached a Demo code with it, working according to the Interfacing Explained in Step 2
You can also use other examples provided with the library, the same interfacing will work for almost every board and almost every code

I had checked these with Arduino Uno and Mega2560.

You can also check out Step 4, which will provide you with some very useful Links. if you get to face any problem

NOTE:- Remember you can always change the interfacing pins, but if you do change, then you have to make the respective pin change in the code as well,
Here:-

U8GLIB_T6963_240X128 u8g( 8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16);
// 8Bit Com: D0..D7: D0, D1, D2, D3, D4, D5, D6, D7, cs=14, c/d(a0)=15, wr=17, rd=18, reset=16

Step 4: Important & Useful Links

These are some very important links, which will surely help you, while developing with t6963c Library and Arduino Boards.

1) Download Library => Bintray or GitHub
2) Arduino forum Discussions => Link 1 or Link 2
3) Library Support Links => Supported Graphic LCD's
Library Home (Very Useful)
User Reference Manual (All functions and How to use Them defined)
Font and String Handling
Different Fonts and Sizes

IF THIS INSTRUCTABLE HELPED SOMEONE ON GETTING THINGS WORKING , OR IF ANYBODY's FACING ANY PROBLEM OR WANT TO GIVE A SUGGESTION, THAN I WOULD REALLY APPRECIATE THAT

till then Keep Developing, Keep Making.......googBye....
Pranav Sharma