Ili9341 white screen sleep mode caused by unstable power

I thought I'd post this in the hope of saving some noob like me some unnecessary grief; because I have just brought two 2.2" ili9341 displays that I thought I'd fried back to life.

They were both just displaying a white screen on power-up, after failing while fiddling around with connections. While reading the ili9341 datasheet, i noticed a comment that unstable power on power-up will cause the display to go into sleep mode; also that it can be brought out of sleep mode by bringing the reset pin low for at least 10 microsecs and then high again. In desperation I hacked one of the ili9341 demo progs to do just that at the start - delay(1) was plenty after a digitalwrite(8,low) where 8 was the reset line, another write high, - and voila! a functioning display again!

Now I just have to work out a project utilising 2 spare displays!

this is probably the worst device I worked with, if you plan to purchase it , I strongly recommend not to do so !!

although applying all advices found on the internet, the best I could achieve is to make the adafruit demo work for a while, suddently the screen does not work anymore, then back again, sometimes the data line seemed corrupted craps appearing on the screen

first I thought it was some breadbord contacts, so I hardwired everything with solder on a new euro card, same problem…that thing is just driving me insane

I used resset, and no reset, I added pullup and no pullup, I used miso, and no miso,

as an alternative I achieved to make it work with a raspberry pi, but the touch ic never gave me any correct information via SPI

this screen is a pure PIECE OF S… !!!

The red 2.2" non-touch screens work beautifully. A far better picture than the Touch versions.

If you use the RST argument in the constructor the red displays work fine with Adafruit libraries.

Adafruit examples omit the RST argument especially to get replies like #1. After all, they are in business to sell their own hardware.

Regarding power on and wakeup times, they are clearly documented in the datasheet. Obey the times and everything is fine.


you mean I would have to add a delay before launching the adafruit demo ?

I already use RST, set the VCC+LED to 5V

had it working a couple of times but it is so unstable maybe its a problem with the level shifters I use (yf04e/yf08e)


I agree with David, these are the “best” small screens I have come across.

I suspect the problem is with the level converter, they may be a Chinese copy of the Texas Instruments chip. These level converters generate a lot of power supply noise so need decoupling (bypass) capacitor close to the chip on the power rails. Because of the high dI/dt noise you get ground bounce too if you do not have substantial GND lines between the different parts of the setup, this causes glitches on the digital lines, in particular at the clock signal edges. Also note that these level converter chips need a pull down on the OE line to keep OE low to ensure they power up in the correct state.

My conclusion is that it is the level converter that is causing the problems, not the TFT. Simple resistor dividers work fine with these displays for logic level shifting. I use 1K2 and 1K8 because I have a stack of those values!