When the screen is wrong
White means the backlight works and the controller never took its setup: RST, DC, SCL or MO. Black means the backlight is off: BL. Dim but readable is BL too. Red showing blue, black showing white and noise along an edge are settings the library needs, not wiring. Garbage through a TK97 is a clock too fast for the converter.
What the glass tells you
The backlight and the picture are separate. The backlight is lit by BL; the picture is drawn by the controller over SCL, MOSI, CS and DC after RST. So the first question is whether the backlight is on, and a lit white screen already answers it.
Wiring, or a setting
White, black and dim are wiring. White is a lit backlight in front of a controller that never got its setup: check RST, DC, SCL and MO, in that order. Black and dim are BL: not wired, on another pin, or never set HIGH, and the board keeps the backlight off until it is.
Red showing blue, black showing white, noise along an edge
and the picture the wrong way up are settings. The wiring is right
and the library has to be told something about this glass: its colour
order, whether its colours are inverted, where the picture starts in the
controller's memory, and which way up it is. In Arduino those are the
initR() tab, invertDisplay() and setRotation(). Which ones this
panel wants has not been verified. In the owner's video of an older
sketch with INITR_BLACKTAB it showed black as white, so start with
invertDisplay(true).
| You see | Try |
|---|---|
| Black shows as white | tft.invertDisplay(true) |
| Red shows as blue | INITR_REDTAB instead of INITR_BLACKTAB |
| Noise along one edge | INITR_GREENTAB: it starts 2 columns and 1 row in |
| Upside down or sideways | setRotation() 0 to 3 |
Through a TK97
A picture that is clean on an ESP32 and noisy, flickering or smeared on an
Uno through the converter is the clock. A level converter rounds off fast
edges, and at a high clock they stop being edges at all. Keep the wires
short and slow the clock: tft.setSPISpeed(4000000) after initR().
If the picture is right at 4 MHz, raise it until it is not, then back off.
When it does not work
One of RST, DC, SCL or MO has come loose or moved one pin along. Check each against the table in first light, with the power off. White with the backlight on always means the controller has had no setup.
Usually the supply. Check 3V3 comes from a 3.3 V pin that can supply the backlight, and that GND is firm. A long, thin 3V3 wire can sag when the backlight switches on.
The library and the panel disagree about which way the columns or rows run. Try each setRotation() from 0 to 3; if none is right, the panel wants a different initR() tab.
Run the first-light sketch unchanged, on the pins in its table. It prints to the serial monitor what should be showing. If the serial monitor is silent too, the problem is the board or the upload, not the display.
Six bigger screens, from 0.96 to 3.5 inches, on one ribbon and one breakout.
The SPI TFT display kit →Edit this page — content/books/tft-1-8-inch/when-the-screen-is-wrong.mdx
Questions about this product
See what other owners have asked, and read their solutions.
1.8-inch TFT Display
Loading discussions…
Discuss this article
Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.