The backlight runs both ways
The lamp behind the glass is a separate circuit from the picture, and on five of the six panels a high pin turns it on. On the 0.96 inch a low pin does — so a hand-written driver dims it exactly backwards, and nothing about that looks like a fault.
Two circuits, one board
The picture and the light are not the same thing. The controller draws into the glass whether or not there is a lamp behind it, and the lamp shines whether or not anything has been drawn.
That is why a dark panel is ambiguous and why it is worth resolving the ambiguity first: tilt the screen towards a bright lamp and look at it at an angle. If the picture is there in the reflection, everything except BL is working.
And on one panel, the switch is upside down
Pick the 0.96 inch and switch to driving the pin yourself. Now the slider runs backwards: 255 is dark, 0 is bright, and every value in between is the wrong way round.
Nothing about that presents as a fault. The screen still dims. The screen still brightens. The scale simply runs the other way, so a sketch that fades the display up fades it down instead, and a sketch that turns the backlight "on" at boot turns it off.
Of the six panels in the kit, only the 0.96 inch is wired this way.
The library already knows
backlight(0) to backlight(255) is brightness on every panel, in both
languages. The polarity is a column in the panel table, so the constant that
selects the panel selects the polarity with it, and there is nothing to remember.
It always uses PWM, too, on every panel — so full brightness is simply 255
rather than a different call, and dimming works everywhere rather than on the
panels somebody happened to test.
The figure above is for the two cases where you meet the polarity anyway: reading somebody else's driver, or writing your own. If you ever need to override it:
display.setBacklightActiveLow(false); // any time, before or after begin()printInfo() reports the polarity and marks it (forced) when you have
overridden the table, which is how you tell a deliberate override from a
misconfiguration three weeks later.
What the lamp costs
It is the largest single load on any of these panels and it switches on all at once. On a board whose 3.3 V regulator is already close to its limit, that step can drop the rail far enough to reset the microcontroller — which looks like a crash in the sketch and is not one.
Bringing the display up with the backlight at zero and raising it over a few tens of milliseconds avoids the step entirely, and it looks better anyway.
When it does not work
That panel's backlight is active low: pulling the pin down turns the lamp on. You have found the polarity the hard way. If you are using the library, backlight(0..255) is already brightness on every panel — this only happens when the pin is being written directly.
The panel is being drawn on correctly and the lamp is off. Check BL: unconnected, or tied the wrong way for that panel, or set to zero somewhere in the sketch. Nothing is wrong with the display or the wiring of the other seven pads.
The opposite fault, and a much more useful one — the lamp proves the panel has power and a ground. What is left is the ribbon, the four signal pads, or a sketch that has not drawn anything yet. Start with DC and RST.
The backlight is the largest load on the panel and it switches on all at once. If your supply is marginal the whole board can dip and reset. Bring the panel up with the backlight low and raise it gradually, or give the display a rail with more headroom.
Six wires, six ways to see nothing, and how to tell them apart without a meter.
When nothing appears →Edit this page — content/books/spi-tft-kit/the-backlight-runs-both-ways.mdx
Questions about this product
See what other owners have asked, and read their solutions.
SPI TFT LCD Display Kit, 6-Pack from 0.96 to 3.5 inch
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.