Rust LILYGO T-Display with RP2040

Piecing Together Embedded Rust Libraries



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.




memento of electronics and fun exploration for my future self