1.44 inch TFT 128x128 GLCD ILI9163

I don’t get around these parts much anymore as I have been off doing PSoC designs; however, I just got in a couple of TFT GLCD color 128x128 for testing last week:

and was having some issues with the PSoC 4200 so I figured I would back-up and work out the signaling with the Arduino first. I did a quick scan in Advanced Search and did not find anything here, so I thought I would post this information; all credit to sumotoy on http://forum.pjrc.com/threads/25862-ILI9163C-128x128-TFT-driver

The test code (zip) is by sumotoy as is his TFT library:

You will also need the Adafruit GFX libray:

  • Compiled under 1.0.5r2 for Nano running at 3.3V (yes, out of spec.)

  • I placed a solder-bridge (jump) across J1 on the rear of the display carrier to effectively short the IC regulator (65Z5) although the test unit did work without the solder-jumper at precisely 3.3Volts.

  • Note that the LED backlight on this display has a 10 Ohm resistor on the display carrier board that I received… double-check this before connecting the LED power pin to 3.3V.

Ray

Note: as my intent is to use this display with the PSoC 4200 and since the source and libraries were NOT changed, please do not expect me to respond to assistance requests - I am simply posting working code and heading back to working out my ARM issues. Use this thread to state your experience or request forum members assistance. Thanks.

Edited to correct link

test.zip (1.66 KB)

Working fine, but it is not possible to send a color bitmap with this library !!!

thedaverman: Working fine, but it is not possible to send a color bitmap with this library !!!

So, is the lack of this capability critical? (Rhetorical.) If so, your quest for a cheap color display must continue OR you can start downloading libraries and try and document one that works with an SD card bitmap.

Personally, since this inexpensive TFT GLCD does not incorporate a SD card on the breakout board, I do not think there is any issue here... match the library to the hardware selected to satisfy the needs of the project.

Of course, that is just my opinion,

Ray

Hello, if I want to use this TFT with Arduino UNO I have to make a bridge of solder on the J1 so I can use 5v, but not on a LED that remains at 3v, is it correct? thanks bye

LED (BACKLIGHT) 3.3v SCK (SCLK) pin 13 SDA (MOSI) pin 11 A0 (DC) pin 9 RESET (RESET) pin 8 CS (CS) pin 10 GND (GND) GND VCC (VCC) 5v

OK, the answer is no, J1 is used to bypass the voltage regulator, TFT is ready to work with arduino (the 65Z5 is 5v), only the LED pin is connected with a resistance of 10 ohm (I have a 22ohm and it's perfect ) to 3v.

I have the same display and after a lot of searching I found this link. Thanks to mrburnette, finally I managed to display everything correctly. My cabling was : sck -pin 13 reset - pin 12 sda - pin 11 cs - pin 10 A0 - pin 9 GND -GND VCC - VCC LED - 3.3v Used his simple and easy 'test.zip' file on a Duemilanove with excellent results. For one more time Thank you.

i still have the problem
can someone please say step by step how to run the files.
still can not get a clear compiling and i dont really know what/where to change or specify

Perfect and veeeery fast on Teensy 3.1 (work at 3.3V) , I changed this on test.ino:

#define __CS 10
#define __DC 9
#define __RST 12

My pinout (tft - teensy), the same of @mimhs : 1.Vcc - 3.3V 2.Gnd - Gnd 3.Cs - 10 4.Reset - 12 5.A0 - 9 6.Sda - 11 7.Sck - 13 8.Led - 3.3V

Somebody undestand the pin names ? A0 and Sda ? Usually on SPI Mosi/Miso or Din/Dout :fearful:

Hi guys, I seem to have one of the black PCB 1.44" TFTs and I was wandering what kind of modifications I would need to do to get it working with this library.

I would appreciate any kind of help!

Dimdim: Hi guys, I seem to have one of the black PCB 1.44" TFTs and I was wandering what kind of modifications I would need to do to get it working with this library.

I would appreciate any kind of help!

Hey Dimdim, this may be a bit late,but I hope this will help you;

After installing sumotoys library and the adafruit gfx, go to: Your user directory here\Documents\Arduino\libraries\TFT_ILI9163C-master and open the TFT_ILI9163C.h file in a text editor. On row 113-117 is a small section where you can out-comment your display type and comment the display type you're not using. By default it's set to the red pcb,but you and I have the black one! Save it, (restart arduino IDE?) and it should work! Cheers.

All yout wiring shows

1.Vcc - 3.3V 2.Gnd - Gnd 3.Cs - 10 4.Reset - 12 5.A0 - 9 6.Sda - 11 7.Sck - 13 8.Led - 3.3V

but the progran has an extra pin not in the pin rangethat you specify.

// pin definition for the Uno

define sd_cs 4

define lcd_cs 10

define dc 9

define rst 8

And the sck and sda are nowhere to be found on the test script nad my display does nothing but stay white all the time. Can you please clarify.

tanaris12: All yout wiring shows

1.Vcc - 3.3V 2.Gnd - Gnd 3.Cs - 10 4.Reset - 12 5.A0 - 9 6.Sda - 11 7.Sck - 13 8.Led - 3.3V

but the progran has an extra pin not in the pin rangethat you specify.

// pin definition for the Uno

define sd_cs 4

define lcd_cs 10

define dc 9

define rst 8

And the sck and sda are nowhere to be found on the test script nad my display does nothing but stay white all the time. Can you please clarify.

Found the issue, it was a software issue, failed to set the reset.

Has anyone else experienced the IL9163 LCDs doing something weird with auto-adjusting the brightness when the screen is dark?

I have a cheap 128x128 board form Ebay that claims to use the IL9163DS driver, and I'd can't find this "feature" documented anywhere in the vendor-supplied datasheet.

It really messes up the colors and I'm trying to figure out how to turn it off.

guys help me out to getting start my arduino mega 2560

i had buy

http://www.aliexpress.com/item/F85-Free-Shipping-1-44-Serial-LCD-Display-128-128-SPI-TFT-Color-Screen-With-Adapter/32454581700.html

and

sumotoy TFT library: https://github.com/sumotoy/TFT_ILI9163C

Adafruit GFX libray: https://github.com/adafruit/Adafruit-GFX-Library

1.Vcc - 3.3V 2.Gnd - Gnd 3.Cs - 10 (SS) 4.Reset - 3.3V 5.A0 - 9 (DC) 6.Sda - 11 (MOSI) 7.Sck - 13 (SCLK) 8.Led - 3.3V

only this much i did and try to start sample programs program get compiled & write to my Mega2560 but nothing in display

plz help me out from this

Regardless of what they say on the website, these displays are not supposed to run with 5V logic.
Use some series resistors. Or better still, use a 3.3V Arduino.

There is no Hardware SPI on D10, D11, D13 of a mega2560. It is on D50-D53

David.

david_prentice: Regardless of what they say on the website, these displays are not supposed to run with 5V logic. Use some series resistors. Or better still, use a 3.3V Arduino.

David.

Hello David, How should be sized the resistor to lower the voltage from 5V to 3.3V? How many Ohms?

I took a look to the data sheet for the TFT and I have found that the typical declared consumption is:

18 mA (for the backlight LED) + 1.3 mA (for the LCD) = 19.3 mA

That is very close to what consumes my Adafruit 1.44" TFT (20 mA). Recalling my (poor) notions of electronic a resistor R push a drop of voltage that is

R = Volt / Ampere

So if the current (almost) stable at 19.3 mA and the drop to obtain is 1.7 then the R value should be

R = 1.7 Volt (19.3/1000 Ampere) = 1700/19.3 (Volt/Ampere) = 88.08 Ohm

Are my calculations right or it's time for me to go to bed???

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" )

David.

david_prentice: 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.

david_prentice: Connect VCC to 5V without a series resistor.

:o sure? I'm lost...

david_prentice: 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?

david_prentice: 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

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.

David.

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...)

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).

|474x500

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 [u]maybe[/u] 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.