This component prvides an implementation of the ST7789 LCD driver using the esp_lcd component API.
| LCD controller | Communication interface | Component name | Link to datasheet |
|---|---|---|---|
| ST7789 | SPI (half-duplex)* | esp_lcd_st7789 | Specification |
- As an ESP-IDF component, via
idf.py add-dependency:
idf.py add-dependency "jbrilha/esp_lcd_st7789^1.0.0"-
Or including in it
idf_component.yml- As a dependency:
dependencies: jbrilha/esp_lcd_st7789: "^1.0.0"- As a direct repository
dependencies: esp_lcd_st7789: git: https://github.com/jbrilha/esp_lcd_st7789.git
This display driver uses half-duplex communication, so instead of the usual MOSI/MISO separation, it uses a single SDA line.
This means that SPI does not require a MISO pin, like below:
void init_lcd_spi() {
spi_bus_config_t bus_cfg = {
.sclk_io_num = LCD_CLK_PIN,
.mosi_io_num = LCD_MOSI_PIN,
.miso_io_num = -1, // set to -1
.quadwp_io_num = -1,
.quadhd_io_num = -1,
.max_transfer_sz = 0;
ESP_ERROR_CHECK(spi_bus_initialize(LCD_HOST, &bus_cfg, SPI_DMA_CH_AUTO));
}If you intend to use other devices that require MISO in the same SPI bus, the bus config should include it normally.
An example is present in the examples directory, using LVGL