Skip to content

atanisoft/esp_lcd_ili9488

Repository files navigation

esp_lcd driver for ILI9488 displays

This component provides an implementation of the ILI9488 LCD controller using the esp_lcd component APIs.

LCD controller Communication interface Component name Link to datasheet
ILI9488 SPI or Intel 8080 esp_lcd_ili9488 Specification

Note on supported communication interfaces

When using the SPI interface it is required to use 18-bit color depth mode as below:

    const esp_lcd_panel_dev_config_t lcd_config = 
    {
    ...
        .bits_per_pixel = 18,
    ...
    };

When using the Intel 8080 (Parallel) interface the 16-bit color depth mode should be used.

Display Reset pin

If the display requires the usage of a RESET pin during the initialization process be sure to configure it as below:

    const esp_lcd_panel_dev_config_t lcd_config = 
    {
        .reset_gpio_num = CONFIG_TFT_RESET_PIN,
        ....

If the display does not require this pin set this value to GPIO_NUM_NC (-1).

Using this component in your project

This package can be added to your project in two ways:

  1. Using Espressif's component service as:
dependencies:
  atanisoft/esp_lcd_ili9488: "~1.0.0"
  1. Using the git repository directly:
dependencies:
  esp_lcd_ili9488:
    git: https://github.com/atanisoft/esp_lcd_ili9488.git

For more information on the usage of the idf_component.yml file please refer to Espressif's documentation.

Supported platforms

At this time testing is limited to ESP32 and ESP32-S3, other ESP32 variants should work but are not tested.

Required sdkconfig entries

This driver converts the color data from 16-bit to 18-bit as part of the draw_bitmap callback. Therefore it is required to set CONFIG_LV_COLOR_DEPTH_16=y in your sdkconfig. In the future other color depths may be supported.

Screen artifacts

Some developers have noted artifacts on the screen when using in their projects. This seems to be related to having a number of SPI devices connected to same bus or due to wire length. If this happens, try changing the pclk_hz in the esp_lcd_panel_io_spi_config_t configuration to a lower value. You can try starting with a small number, like 4mhz. If the artifacts disappear, try increasing this number until they appear again to find a good value:

 const esp_lcd_panel_io_spi_config_t io_config = 
    {
        ...
        .pclk_hz = 4 * 1000 * 1000,
        ...
    }

About

esp_lcd compatible driver interface for ILI9488 displays

Topics

Resources

License

Stars

Watchers

Forks

Contributors 6