Arduino With T6963c 240x128 Graphic LCD Tutorial
Intro: Arduino With T6963c 240x128 Graphic LCD Tutorial
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
15 Comments
bravesoldier 6 months ago
Armin black 7 months ago
lcd controller : toshiba t6963cfg
mcv 1 year ago
Edit, 20.11.2022:
I realized connecting this display using this diagram here in the attachment and it works fine :) The potentiometer connected to pins 3 and 4 which are from the contrast adjustment in my case has a value of 50 kOhm (I had one at hand) but the contrast adjustment works well. The rest of the scheme unchanged.
The last FS pin in this LCD model at number 22 connected to the ground.
ErMohit 1 year ago
thanks. JHD240180D lcd I have.
QSL do Brasil 3 years ago
Can someone help me please how to do this?
Thank you all.
yassir almasri 3 years ago
You need a datasheet for your LCD to identify the function of each pin.
else (no datasheet available)
you have to figure out each pin by tracking connection with t6963 ic referring to ic datasheet.
svrathod58 3 years ago
Drenay50 4 years ago
suneracoc 4 years ago
brightled 5 years ago
Thank you....Great job
SinaR10 6 years ago
how can i wire my arduino nano to ts6963 ?
Happymacer 7 years ago
Oh, another thing... theres a new version out :
https://github.com/olikraus/u8glib
And pin5 (rd) must be taken to Vcc for my T6863C
Happymacer 7 years ago
Hiya, thx for the post, for what its worth my display has N/C on pin 9, and has 22 pins, so from pin 9 each display pin is increased by 1.. Pin 21 and 22 are backlight LED, Oh, and leg 3 of the Pot must be grounded.
marc.deloor.5 7 years ago
"Like" :-)
pspranav7 7 years ago
Thanks... :)