Topics/Displays/SPI TFT LCD Display Boards, 0.96 to 3.5 inch
SPIbeginner

SPI TFT LCD Display Boards, 0.96 to 3.5 inch

Six colour SPI display boards that are one circuit on six outlines: the same eight holes, the same 15-way ribbon socket, a backlight switched by a transistor, and a driver library that takes one constant per size. Which size to pick, how to wire it, and what is different about each.

SPI TFT LCD Display Kit, 6-Pack from 0.96 to 3.5 inch

Specifications

SizesSix boards: 0.96″, 1.8″, 2.0″, 2.4″, 2.8″ and 3.5″, product codes lcd096, lcd180, lcd200, lcd240, lcd280 and lcd350. The 2.0″, 2.4″ and 2.8″ are the same 240 × 320 picture on three sizes of glass; only the 3.5″ adds pixels, at 320 × 480
0.96 inch80 × 160 pixels, ST7735 in the library's table, board 29.2 × 25.0 mm with four 3.0 mm holes. Its panel plugs into an 8-way 0.5 mm socket. The only board whose backlight is switched on the high side, so it is active low
1.8 inch128 × 160 pixels, ST7735 in the library's table, board 35.0 × 56.7 mm with four 4.8 mm holes. The glass is a 1.77 inch part sold as 1.8. Its panel plugs into a 12-way 0.5 mm socket
2.0 inch240 × 320 pixels, ST7789 in the library's table, board 36.0 × 64.0 mm with four 4.8 mm holes. Its panel plugs into a 14-way 0.5 mm socket
2.4 inch240 × 320 pixels, ST7789 in the library's table, board 44.0 × 75.0 mm with four 4.8 mm holes. Its panel plugs into a 10-way 1.0 mm socket, the only one at that pitch
2.8 inch240 × 320 pixels, ST7789 in the library's table, board 48.6 × 79.8 mm with four 4.8 mm holes. Its panel plugs into a 12-way 0.5 mm socket
3.5 inch320 × 480 pixels, ST7796 in the library's table, board 54.6 × 95.6 mm with four 4.8 mm holes. Its panel plugs into a 12-way 0.5 mm socket. The largest picture, and the longest redraw
ConnectorEvery board has the same 15-way, 1.0 mm FPC socket for a ribbon to a breakout, with eight of its fifteen contacts used: GND, 3V3, BL, RST, DC, SCL, MOSI and CS. The same eight signals come out as a row of eight 2.54 mm holes
PadsBL, RST, DC, SCL, MOSI, CS, 3V3, GND, in that order along one short edge. The clock is labelled SCL; there is no MISO, because nothing is read back
Logic level3.3 V only, printed on the back of every board. A 5 V board such as an Uno needs a logic level converter on all five signal lines or it will damage the panel
BacklightSwitched by one transistor and held off by a 10 kΩ resistor, so the lamp is dark until BL is driven. Five boards are active high (BSS138, BL high = on); the 0.96 is active low (AO3401, BL low = on). PWM on BL dims it, and the library does that for you
JumpersTwo solder jumpers per board, both open as shipped: one ties CS to GND (always selected), one ties BL to the rail that turns the backlight on (always lit). Bridge one and the matching pad must not be driven
ColourRGB565, two bytes a pixel on the wire. A full redraw is at least 10 ms on the 0.96″, 16 ms on the 1.8″, 31 ms on the 2.0″, 2.4″ and 2.8″, and 61 ms on the 3.5″ at the library's default clock, before anything else in the sketch
LibraryLonely Binary Display for Arduino and MicroPython, with one constant per size (LB_TFT_096 … LB_TFT_35) that carries the controller, resolution, offsets, clock and backlight polarity. ESP32 and ESP32-S3 only. No touch controller and no microSD socket on any board
In the kitThe 6-pack holds one of each board with 9 FPC ribbon cables in three lengths, 2 straight and 2 right-angle breakaway header strips, and a hinged case

What it is

Six colour TFT display boards, from a 0.96 inch strip to a 3.5 inch panel, that talk SPI and are interchangeable. Every one is the same circuit on a different outline: the panel plugs into a socket on the back of the board (the face away from the glass), a 15-way FPC socket carries the signals out to a breakout, and the same eight holes sit in a row along one edge. A circuit built around the smallest takes the largest without a wire moving.

What differs between them is a row in a table: which controller is behind the glass, how many pixels there are, how fast the bus may run, which way round the backlight is wired, and how far into the controller's memory the visible pixels start. The driver library resolves all five from one constant.

Drag to turn it
The 2.4 inch board, the one the others are drawn from. Turn it over for the glass.

Which board for which job

SizeCodeResolutionControllerBoardGood for
0.96″lcd09680 × 160ST773529.2 × 25.0 mmOne reading: a temperature, a state word, a battery bar
1.8″lcd180128 × 160ST773535.0 × 56.7 mmFour or five lines of text in something handheld
2.0″lcd200240 × 320ST778936.0 × 64.0 mmThe sharpest of the six. A small dashboard that looks printed
2.4″lcd240240 × 320ST778944.0 × 75.0 mmThe default. Readable at a desk, quick to redraw
2.8″lcd280240 × 320ST778948.6 × 79.8 mmThe same picture spread wider, for reading across a room
3.5″lcd350320 × 480ST779654.6 × 95.6 mmThe main screen, at twice the pixels and twice the redraw

The three middle sizes are one picture at three physical sizes. Choosing between them is choosing how big a pixel is. The controllers are the ones the driver library's panel table assigns to each size.

Wiring, in four lines

  • 3V3 and GND to a 3.3 volt supply and ground. Never 5 V.
  • SCL and MOSI to your board's SPI clock and data-out. There is no MISO.
  • DC, RST and CS to any three spare GPIOs.
  • BL to a spare GPIO to dim it, or to the backlight jumper to leave it lit.

Or one ribbon cable into a breakout with a 15-way socket, and none of the above.

On an ESP32-S3 the library's defaults are GPIO 12, 11, 2, 42, 10 and 41 for those six signals; on a classic ESP32, GPIO 18, 23, 2, 4, 15 and 32. It picks between the two from the board you select in Tools, and there is no third set: on an ESP32-C3 you have to supply your own, because the classic-ESP32 numbers include pins a C3 does not have.

In the kit

The kit's hinged clear plastic case lying open at an angle. The lid carries a teal card printed COLOR TFT LCD DISPLAY COLLECTION with the lonely binary logo, and the base holds the six dark display panels taped down with green and blue tabs, a strip of gold pin header lying between them, and the smallest panel at the right.
The 6-pack: one of each board, nine ribbon cables in three lengths, four header strips, and the case they live in.

Where to start

Each board's own page in the handbook opens with what is different about it from the other five: 0.96″, 1.8″, 2.0″, 2.4″, 2.8″ and 3.5″. If you only read two of the shared articles, read three volts only before you wire anything and first light when you do.

When it doesn’t work

Which size should I start with?
The 2.4 inch. It is readable across a desk, its 240 × 320 is the resolution most example code assumes, and a full redraw is short enough that clearing the screen every loop does not look broken yet. Changing your mind later costs one constant in the sketch, because every board takes the same eight wires.
Is the 2.8 inch sharper than the 2.4 inch?
No. They are both 240 × 320: the same picture on bigger glass, so the 2.8 inch is coarser up close and easier to read from further away. The 2.0 inch has the smallest pixels of the six and the 3.5 inch is the only one with more of them.
Do any of them have touch, or a microSD slot?
None of them. There is no touch controller on any board and no card socket, which is part of why the wiring is eight wires rather than fourteen. A panel that looks like these and has touch is a different product.
Can I use these with an Arduino Uno?
Only through a logic level converter. Every board is a 3.3 V part and says so in silkscreen on its back. An Uno drives 5 V, which is above what these inputs are built for: it may run for an afternoon and then fail, and the flickering that shows up first is the warning. Five signal lines need shifting, so this is a job for an eight-channel converter rather than a two-channel board.
The screen is black. Is it dead?
Probably not. The backlight is held off by a 10 kΩ resistor until BL is driven: HIGH on the five larger boards, LOW on the 0.96 inch. A sketch that never touches BL, or a BL wire left floating, draws a perfect picture on a dark screen. The library drives it for you in begin(); on your own code, set the pin first thing.
Why are there two solder jumpers, and do I have to touch them?
No. Both ship open and the boards work as they are. One ties CS to GND for a bus with only this display on it, the other ties BL to the supply to keep the lamp lit without a pin. Bridging either one fixes that pad, so do not also drive it from a GPIO.
Which library should I use?
Lonely Binary Display, from the Arduino Library Manager or mip for MicroPython: one constant per board, and it resolves the controller, resolution, offsets, clock and backlight polarity for you. TFT_eSPI and Adafruit's drivers can drive these panels too, and there you supply those values yourself, which is the part that goes wrong.
My picture is shifted sideways by about two dozen pixels.
That is a column offset, and on the 0.96 inch it is 24. The controller has 132 × 162 pixels of memory and that panel shows 80 × 160 of them, starting 24 columns in, so a driver that has not been told where the window is draws in the wrong place. The library's panel constant carries the offsets; a hand-configured driver usually does not.
Red is coming out blue.
Colour order, and one call fixes it, as long as black is still black. If black has come out white the panel is inverted instead, and if red is arriving as yellow both are wrong at once. The three symptoms and their calls are in the handbook.

The SPI TFT display handbook

20 articles · about 85 minutes

This page is the reference: what the part is, what it is made of, and the questions people arrive already asking. The handbook is the walk — the same part in the order somebody actually meets it.

Six boards, one circuit

2 articles

Why there are six sizes instead of one good one, and what comes with the boards.

The board in your hand

5 articles

Eight holes in an order nobody guesses, the 15-way socket beside them, what else is on the board, the two solder jumpers, and the one voltage rule that decides whether any of this survives.

One line of code

3 articles

The pins belong to your board, the panel belongs to the screen, and swapping screens changes one constant.

What the pixels cost

2 articles

A full redraw is a measurable amount of time on a wire, and the lamp behind the glass is switched by a different transistor on the 0.96 inch.

Each board

6 articles

One page per board: its outline and holes, the socket its panel plugs into, and the things that are different about it from the other five.

When it goes wrong

2 articles

The dark screen and the white one, and the three ways colour comes out inside out.

Edit this page — content/modules/lcd.mdx

Community

Questions about this product

See what other owners have asked, and read their solutions.

This page covers several products. Choose yours to see the right 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.

Browse Modules and blocks on the forum →