Go Down

Topic: 1.44 inch TFT 128x128 GLCD ILI9163 (Read 49212 times) previous topic - next topic


Mar 20, 2017, 12:01 pm Last Edit: Mar 20, 2017, 12:02 pm by gimpo
Wow! After so long time I don't remember all details, sorry.

As I remember, the first step is to understand if your TFT mounts the ILI9163 chip or the traditional ST7735.
Look at the posts from David Prentice above. He posted some code that you should run to detect the chip type.

After that you have three choices (for your version 1.1):

1. include Sumotoy libraries (if you detected the chip ILI9163)
2. include standard Adafruit libraries (if you detected the chip  ST7735)
3. include my class (if you detected the chip ST7735 but only if you notice that the screen is wrongly translated of 32 pixel down and/or rotated by 90°)

As I repeat, honestly I don't remember all details in this moment.
I strongly suggest you to invest an hour of time and read the thread from the beginning.
Arduino, what else?


thank you very much
mt tft chip is ILI9163
and i use from this library:
my connections:
and i use from arduino 3.3v and a 3.7 v battry
but its not work
please help me thank you



What doesen't work exactly?
Screen stay completely black?
Screen stay completely white?
Screen is black but nothing is printed?

If you powered the TFT with +5V before there is an high risk that you burned it. Do you have a second one to make a test?
Arduino, what else?


im so sorry i went on a trip
thanks for your help
my new connection:
my arduino is 3.3 v and i dont connect my tft to 5v
i dont Edit libray and code
shold i edit code?
my rft is red with yello pin
my tft ic is  ILI9163
i use from this library
please see this pictures:
is my connections true?!
thanks for your help
excuse me for my delay


Mar 30, 2017, 10:24 pm Last Edit: Mar 30, 2017, 10:24 pm by knut_ny
try connect resetpin to 3v3 (instead of pin 8 )
..next step is to solder a bypass on the voltage regulator



Mar 31, 2017, 01:45 pm Last Edit: Mar 31, 2017, 01:52 pm by david_prentice
Google for the schematic of your display.

They tend to have a 3.3V LDO regulator.
If you have 5V input,  the regulator will produce 3.3V output.
If you have 3.3V input,  the regulator will not be able to work.
There is normally an empty footprint to place a 0R resistor across the regulator input-output. i.e. to bypass the regulator.

Many modules have got 5V and 3.3V pins e.g. BluePill, Due, Zero...
They all have 3.3V logic.
If you connect 5V to the display VCC pin,  you need the regulator.
If you connect 3.3V to the VCC pin,  you should bypass.

Yes,  the most important step is to connect RST pin to a GPIO pin.   Then the library can issue a hardware reset.   If you do not put RST pin under program control,   connect a 10k pullup to 3.3V.

Note that Adafruit examples like to omit the RST pin in the constructor.    Always use the RST i.e. the full-fat constructor.



hi again
thank you very much david
i have arduuino pro mini 3.3 v
i dont now how i should do by pass and i think it is not easy
is it betrer to i buy a arduino pro mini 5v?
if i use arduino pro mini 5v my problem will solve?


Apr 08, 2017, 12:59 am Last Edit: Apr 08, 2017, 01:03 am by gimpo
No no no. Stay on the 3.3V.

If you switch to a 5V model all the logic signals will work at 5V too! The TFT will not work in such case.

About the voltage regulator:

David used the word "should", not "must". The voltage regulator lowers the voltage from 5V to 3.3, but if you have yet 3.3V it will lower the voltage still a little bit (let's say to 3.15V) but the TFT will continue to work.
Since any voltage regulator dissipates energy as heat, it would be smart to bypass it. This is expecially true if you power your Arduino with batteries and you want to save a little bit of energy.

As I wrote you before, you should read this thread from the beginning. At page 2 I've posted the wiring of the TFT.
To bypass the regulator you have to shortcut the jumper J1. This simply means that you have to deposit a little/micro strip of solder between the metal contacts of the jumper in order to create a passage for the current. That's all.

Arduino, what else?


hi again
thank you jimbo and david
i bypass j1
bu it not work and screen is black
my connections:
and i use bigtest exampel of this library and i dont edit anything in code and library

help me :(


i test again and i connect reset to 3.3v insted pin 8
but nothing changed
and i forget say that my screnn always is not black
in one secound it is fully black and one secound have light
see pictures:

help me please :(
is my tft Ruined?


What sketch are you using?
I strongly recommend you to start from the basics. Try the basic sketch here. It is simply printing "Hello world on the screen".

If it doesn't work then

1. delete all those comments,
2. define carefully your owns pins and double check them
3. wipe out those "#if.... #endif" stuff and instance your class in one line of code:


As argument for the constructor you have to pass the PCB type, the first one seems a good choice:
REDPCB_NEW(yellow pin, red pcb),
REDPCB_OLD(black pin, red pcb,
BLACKPCB_OLD (no idea of what type of PCB this is)

4. Fight, scream and hit the PC until it will not print "Hello world" on the screen

I have abandoned the ILI9163C chip and returned back to the ST7735 with Adafruit libs, so I don't know how to use the new library of Sumotoy. More than this, I have no more ILI9163C TFTs at home to make some test. I have send them to Sumotoy by post for his inspection.

Arduino, what else?


I have several ILI9163C boards.

Follow message #159 if you are using a 3.3V supply.
Everything should work.  Especially when you have 3.3V logic,  a 3.3V supply and have completed the solder-bridge.

Of course,  it is possible that you have a different controller and not the ILI9163 that you think.

Run my diagnosis sketch.



Apr 13, 2017, 11:41 am Last Edit: Apr 13, 2017, 11:42 am by gimpo
Better, instance your tft class by using what follows:

#include <SPI.h>
#include <TFT_ILI9163C.h>
#define TFT_CS                    10  // CS pin
#define TFT_RST                   8   // Reset pin
#define TFT_DC                    9   // DC pin

void setup() {
 tft.print("hello World");

void loop(void) {

It prints "hello world"?
Arduino, what else?

Go Up