Need help with the TFT ILI9341 White screen

Hi everyone:

I just bought a TFT ILI9341, small version [No touch] 2.2", im running it on a arduino uno.

As i said, got the problem with the white screen, im using this circuit to run it.

Further, i use the library gfx, adafruit_9341 and the adafruit_9340. its runs with no problem, and got this logs:

ILI9341 Test!
Display Power Mode: 0x0
MADCTL Mode: 0x0
Pixel Format: 0x0
Image Format: 0x0
Self Diagnostic: 0x0
Benchmark Time (microseconds)
Screen fill 1496884
Text 175012
Lines 1435608
Horiz/Vert Lines 127044
Rectangles (outline) 83792
Rectangles (filled) 3107140
Circles (filled) 498768
Circles (outline) 613888
Triangles (outline) 316496
Triangles (filled) 1358164
Rounded rects (outline) 242988
Rounded rects (filled) 3134828
Done!

Besides that, i need to say that the circuit is perfectly build, check all continuity and resistor value. Also tried replacing that tension divisor with a 10k resistor. Finally y tried, as i read in other forum, to force the reset putting it to 3.3V.
None of this work, anyone got an idea?

1 Like

Adafruit are very clever. They know that your Red SPI display does not have pullups on the LCD_RESET pin.

e.g. Adafruit_ILI9341/graphicstest.ino at master · adafruit/Adafruit_ILI9341 · GitHub

// For the Adafruit shield, these are the default.
#define TFT_DC 9
#define TFT_CS 10

// Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

However the Adafruit_ILI9340/graphicstest.ino at master · adafruit/Adafruit_ILI9340 · GitHub is not so devious:

// These are the pins used for the UNO
// for Due/Mega/Leonardo use the hardware SPI pins (which are different)
#define _sclk 13
#define _miso 12
#define _mosi 11
#define _cs 10
#define _dc 9
#define _rst 8

// Using software SPI is really not suggested, its incredibly slow
//Adafruit_ILI9340 tft = Adafruit_ILI9340(_cs, _dc, _mosi, _sclk, _rst, _miso);
// Use hardware SPI
Adafruit_ILI9340 tft = Adafruit_ILI9340(_cs, _dc, _rst);

Although the 9340 is a bit different to the 9341 the old 9340 library should work. Both software and hardware SPI.

Your "wiring" is very fierce. But a Uno should manage it. I would choose 4k7 and 10k resistors. (and no divider on LCD_MISO line)

David.

I put together a Arduino Nano and ili9341 Tying the TFT background LED (pin 8) to +5v through a 56ohm resistor only leaves the backlight on all the time so instead I tied it to the Nano's D5 pin through a 1K ohm resistor that also is in series with a second 1K resistor to ground. In fact all connections from an Arduino Uno/Nano need to go through a 1k ohm resistor that also has another 1k ohm resistor tied to groundReason being that Arduino uses 5v logic and the ili9341 uses 3.3v logic.
You can find a good example on the instructables.com website.
Heres the link: https://www.instructables.com/id/Arduino-TFT-display-of-bitmap-images-from-an-SD-Ca/
Of course you can also use an 8 channel logic level shifter also.

Bodmer's instructable (from 4 years ago) advises 1k0 and 1k8 resistors with the Red ILI9341 displays.
I would suggest 4k7 and 10k but any similar pairs should divide the 5V logic into 3.3V logic.

1k0 and 1k0 will divide the 5V logic into 2.5V which should work on a ILI9341 but wastes current and is less reliable.

David.