Specifications
| Sizes | Six 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 inch | 80 × 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 inch | 128 × 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 inch | 240 × 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 inch | 240 × 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 inch | 240 × 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 inch | 320 × 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 |
| Connector | Every 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 |
| Pads | BL, 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 level | 3.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 |
| Backlight | Switched 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 |
| Jumpers | Two 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 |
| Colour | RGB565, 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 |
| Library | Lonely 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 kit | The 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.
Which board for which job
| Size | Code | Resolution | Controller | Board | Good for |
|---|---|---|---|---|---|
| 0.96″ | lcd096 | 80 × 160 | ST7735 | 29.2 × 25.0 mm | One reading: a temperature, a state word, a battery bar |
| 1.8″ | lcd180 | 128 × 160 | ST7735 | 35.0 × 56.7 mm | Four or five lines of text in something handheld |
| 2.0″ | lcd200 | 240 × 320 | ST7789 | 36.0 × 64.0 mm | The sharpest of the six. A small dashboard that looks printed |
| 2.4″ | lcd240 | 240 × 320 | ST7789 | 44.0 × 75.0 mm | The default. Readable at a desk, quick to redraw |
| 2.8″ | lcd280 | 240 × 320 | ST7789 | 48.6 × 79.8 mm | The same picture spread wider, for reading across a room |
| 3.5″ | lcd350 | 320 × 480 | ST7796 | 54.6 × 95.6 mm | The 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

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.