Rust LILYGO T-Display with RP2040

Piecing Together Embedded Rust Libraries

circuit4u
5 min readMar 18

--

1. Hardware

LILYGO makes nice hardware modules that combine various TFT LCD displays with popular MCUs, such as ESP32 and RP2040.

About two years ago, it introduced this T-display module that combines RP2040 (Raspberry Pi PICO) MCU with a ST7789V controlled 1.14" LCD display (135 x 240 pixels).

ST7789V side signals

Here are snippets from its schematic showing the signals between RP2040 MCU and ST7789V (its datasheet) display controller.

Note that ST7789V itself supports a number of physical layer data protocols (3-line serial, 4-line serial, parallel data bits etc.) The T-Display module adopts 4-line serial protocol, i.e. in addition to the SPI bus, “TFT_RS” (register select) signal is used to select between COMMAND and DATA of the clocked data bytes. In theory, this “TFT_SPI0_TX” signal line can be bi-directional. But in practice, it’s only used to stream video data from MCU to the display.

Here is another picture of such display controller in a Waveshare LCD hardware module. Notice that the “TFT_RS” signal is named as “DC” (data or command) in this case. And “TFT_LEDK” becomes “BL”, i.e. back light control.

You can find similar Adafruit module and its signal pinouts as well with the same ST7789V controller:

2. Important Note

The VCC_3.3V on the PCB goes through a switch (PMOS Q2) to power up the LCD display, which is switched off by default.

You need to set PWR_EN pin (RP2040 GPIO22) high to turn the display on.

--

--

circuit4u

memento of electronics and fun exploration for my future self