Go Down

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


Jan 09, 2016, 02:12 am Last Edit: Jan 09, 2016, 02:13 am by david_prentice
Yes,  it is time to go to bed.

Connect VCC to 5V without a series resistor.

Series resistors on the Logic lines would be 2k2 or so.
If you know that you are always using 5V logic,   a potential divider is better.   e.g. 2k2 + 4k7.

It looks as if the backlight LED has a 10R resistor and is separate from the regulator on the pcb.    This is probably for 3.3V and the raw backlight runs at about 3.0V.   You would need an "extra" 82R if the LED is running from 5V.

All values in electronics are not that critical.   e.g. the Logic series resistors could be 1k0 to 10k.   
Likewise the "potential divider" could use different values - just use a similar ratio of values.

Your calculator may give you 15 significant digits when you use Ohm Law.    You seldom use more than 1 significant digit.    i.e. 10%.     So you worry about the number of 0s and use the nearest common value.   e.g. your 88.08 implies you want the nearest to 80R (or 90R)

I have a 56R series resistor for the backlight LED from 5V.    100R would be fine.   
(I use the same protoshield for 1.44" 1.8", 2.2" )



Yes,  it is time to go to bed.
Done! Much better now.  :D

You're great. I didn't think to a voltage divider at all. I know that is very hard to find an 88.08 Ohm resistor on the market, ehehehehh. That's just math. With a voltage divider this problem goes away, one can choose from a wide range of resistor values.

Connect VCC to 5V without a series resistor.
:o sure? I'm lost...

Series resistors on the Logic lines would be 2k2 or so.
So I should lower the voltage on all logic lines coming out from Arduino too. Yes?

It looks as if the backlight LED has a 10R resistor and is separate from the regulator on the pcb.    This is probably for 3.3V and the raw backlight runs at about 3.0V.   You would need an "extra" 82R if the LED is running from 5V.
From where comes the value of 82R? It should be used as series resistor or inside a voltage divider or what?

p.s: I'm using an Arduino Pro Mini at 16Mhz/5Volt from Sparkfun
Arduino, what else?


If you are using a Pro Mini,  life is much easier if you power it at 3.3V in the first place.    You don't need any resistors at all.

After all,  you are either powering it via a USART->USB dongle or by a USBASP dongle.   i.e. bootloader or ISP.
Most of these dongles can supply 3.3V

Don't worry about the 16MHz crystal.   It will work fine at 3.3V.

If you are determined to run the Pro Mini at 5V,   you have to use resistors on the Logic lines.
A potential divider gives you a safe 3.3V level from 5V.    If you just use a series resistor,   you are relying on the substrate diodes conducting with the current limited by the resistor.

Regarding my 82R decision.   E12 preferred values are 10, 12, 15, 18, 22, 27, 33, 39, 47, 56, 68, 82.
82R is nearer 88.08 than 100R.    The important point is that you choose the correct decade.   i.e. 82R and not 8R2 or 820R

Your red 1.44" module has a pin marked VCC.    This feeds a LDO regulator on the red pcb giving the ILI9163C chip 3.3V.    If your Pro Mini is running at less than 3.3V,  you would make the solder-bridge next to the LDO.    Never run the display at 5V with the solder-bridge shorted.

Google terms like "LDO regulator" or "substrate diode".    Or just ask if you do not understand.



All clear David, thanks.

I will go for an 8Mhz/3.3V Pro Mini board. I will power it from my 5V stabilized power source by using the "raw" power pin.
(It's a sin 'cause my project is almost ended but Adafruit stopped selling his little 1.44" TFT. Grrrrrr...)
Arduino, what else?


Jan 09, 2016, 04:46 pm Last Edit: Jan 09, 2016, 04:49 pm by gimpo
Just an additional comment.

I strongly suspect that the ILI9163 can work with 5Volts too (only the LED/Backlight must be powered with 3.3V).
I've found the page of this vendor and the TFT display looks 100% equal to the one we're talking about.

By clicking in the "Module schematic" below in the page one can see that an LDO CE6209 voltage regulator is installed. One has to short the Jumper J1 if the 3.3V are used as input Vcc, or leave it open for 5V (so the LDO does its work).

Also, in their Wiki page the display is shown as connected to Crawdino board. If you look with attention you will notice that only the LED wire (gray color) is connected to the 3v3 pin of the board. All of the remaining wire-stuff is connected normally to arduino pins.

So, seems to me that maybe the TFT can be used with 5 Volts boards too. Just the LED pin must be powered with 3.3 Volt.
But providing 3.3 V to the LED pin is not so difficult: one could simply use PWM commands and an analog pin of arduino to output the correct voltage. I use yet this trick to control the backlight intensity of my Adafruit 1.44 TFT with zero-problems, since the requested current is around 20 mA.
Arduino, what else?


Jan 09, 2016, 08:07 pm Last Edit: Jan 09, 2016, 08:11 pm by david_prentice
Well,   instead of making untested assertions,   I connected a red 1.44" module:
pin#1: VCC = 5V
pin#2: GND = 0V
pin#3: CS   = 5V via a 3k0 resistor (or 0R, 6k0)

The DMM showed 220uA current via the 3k0 resistor.    And 300uA via a 0R resistor, 150uA via 6k0.

So I conclude that the module has some onboard series resistance and it is conducting through the substrate diode.

300uA is going to be harmless to the chip,  but it will be backfeeding the LDO regulator.    i.e. the chip supply voltage will be slightly above 3.3V.

Personally,   I always use 3.3V logic.    An input pin will be very high impedance.   i.e. you would not expect any measurable current from the AVR logic output pins.    And consequently no backfeed of voltage past the LDO.

No,  I can't be bothered to risk running my 1.44" with 5V logic.

I know for a fact that the 2.2" 240x320 red modules do NOT work with 5V logic.
I did the same test on a 2.2".   And got similar currents.

So I suspect that you will not harm the chip with these modest currents.   But the controller may not work.    For the sake of a $0.05 you might just as well play safe.    And buy some resistors.
Or run at 3.3V in the first place.

Regarding Ebay listings.   The vendors will say anything to make you buy their goods.

Edit.   My 1.44" looks just like the one in your link.



Jan 09, 2016, 11:33 pm Last Edit: Jan 09, 2016, 11:35 pm by gimpo
Well, I've just ordered a couple of Pro Mini at 3.3Volts.

In any case 300mA it's a lot of current, seems that the IC cannot work with 5V levels, it is to high.
Why they soldered that voltage regulator on the board? Seems useless... Or it is just for powering purposes (not for the logic lines)?

Arduino, what else?


The voltage regulator ensures that the chip is powered by a known voltage.

The substrate diodes are supposed to be a protection measure.    Not something that should be used as a matter of course.

I suspect that the traditional 5V 8051 will be reasonably safe.    It can't source a high logic level.    It can only sink a low logic level.

If you look at Ebay photos,   they are often with 8051-style boards.

Where did you get 300mA?    Something must be seriously broken.   e.g. a blown chip.



Where did you get 300mA?    Something must be seriously broken.   e.g. a blown chip.
Ooops! My error: I've read milli in place of micro.
Arduino, what else?


Hello again.
I bought the "red tab" 1.44" TFT and plugged into a new Arduino Pro mini @ 3.3V as suggested above:

sck =pin 13
reset = pin 12
sda = pin 11
cs = pin 10
A0 = pin 9
VCC = VCC = 3.3V
LED = 3.3v

Unfortunately it doesn't work properly  :(

I mean... when I run the test program attached above the origin of the screen is translated down of (circa) 30-35 pixels. The demo test runs well but I see just 3/4 of it on the screen.
The zone of the screen above the false origin is not black, it's filled with pixels painted randomly. I suspect that there is some memory alignment problem...

I've just tested a second new TFT but the problem remains. Any clue? (I'm hitting my head to the wall...)

p.s: I didn't shorted the Jumper J1 to bypass the voltage regulator, but I don't think that the problem is cause of that.
Arduino, what else?


Jan 15, 2016, 11:12 pm Last Edit: Jan 15, 2016, 11:13 pm by gimpo
I have installed the latest library versions but nothing has changed, problem is still there:

Adafruit_GFX library = version 1.1.3
TFT_ILI9163C library = version 0.9
Arduino IDE = version 1.6.5

I've also tried to use several #define directives as indicated in the sumotoy GitHub site but the dose not affect the results (I suspect that instruction are referring older versions of the library).

The screen seems always shifted down of around 32 pixels....

Arduino, what else?


It is a feature of the cheap red displays.
I think that a black display does not have the problem.

It is easy enough to cope with this.   You simply add 32 to Y coordinate.    Or run it in PORTRAIT mode rather than PORTRAIT_REV mode.

If you are using 3.3V,   the TFT_ILI9163C works fine.
I have my own library that works fine too.



Nice to hear you again David.

Unfortunately modifying the instruction setCursor(0,0) with x=0 and y=-10 or -16 or -32 doesn't work. What is in the upper zone is simply not printed at all (see attached photo - there you can see a fragment of the "Hello World!" string in white).

Also using the function setRotation(0..3) doesn't work. The text does not rotate at all (on the Adafruit ST7735R that function was working indeed).
Arduino, what else?


With graphic primitive (fillRect, fillTriangle, etc.) setRotation works, but text doesn't rotate.
In any case the upper area is never painted, neither with text nor with graphic primitives.

I've no idea of what it's going on. I've opened an issue on the sumotoy GitHub page.
Arduino, what else?


Jan 16, 2016, 03:06 am Last Edit: Jan 16, 2016, 03:11 am by gimpo

My red tab is just... a black tab with different color!  :smiley-eek:

After looking with attention at the image to the red tab used by sumotoy I've discovered some subtle differences about the soldered tracks on the rear side. So doubt arises in my mind.

So, for Arduino Pro Mini 3.3V/8Mhz + "false" red tab 1.44" 128x128 ILI9163C TFT one has:

1) locate the TFT_ILI9163C-master directory in the IDE libraries

2) navigate and open the file


3) comment the line

#define __144_RED_PCB__//128x128

4) uncomment the line

// #define __144_BLACK_PCB__//128x128

5) restart the Arduino IDE

By the way, since pin 12 on the Pro Mini is part of the four magic SPI pins it's better to not use it for the reset signal. So, here below my new wiring:

Arduino Pro Mini      false Red Tab TFT
pin 13 (SCK) SCK
pin 11 (MOSI)SDA
pin 10 (SS)CS
pin 9AO
pin 8RESET

Obviously, the code at the beginning of the test.ino sketch (posted at the beginning of this thread) should contains the modified instruction

#define __RST 8 // was pin 12

Well, since Pro Mini 3.3V runs "only" at 8 Mhz it would be not a bad idea to speed up the SPI communication using the clock divider register. But that's another story.

Arduino, what else?

Go Up