:description:Instructions for setting up 16 bit "RPI_DPI_RGB" parallel displays
:image:waveshare_touch-s3.jpg
.._rpi_dpi_rgb:
Models
------
This display driver supports displays with 16 bit parallel interfaces, often referred to as "RPI_DPI_RGB" type.
These have a parallel interface but no SPI interface and require no configuration of the driver chip.
This driver has been tested with the following displays:
- Waveshare ESP32-S3-Touch-LCD-4.3
- Makerfabs 4.3" display (Sunton)
Usage
-----
This component requires an ESP32 (usually an ESP32-S3 because of the number of GPIO pins required) and the use of
ESP-IDF. PSRAM is a requirement due to the size of the display buffer.
..figure:: images/waveshare_touch-s3.jpg
:align:center
:width:75.0%
Waveshare ESP32-S3 Touch 4.3
..code-block:: yaml
# Example minimal configuration entry
display:
- platform: rpi_dpi_rgb
id: rpi_disp
dimensions:
width: 800
height: 480
de_pin: REPLACE_ME
hsync_pin: REPLACE_ME
vsync_pin: REPLACE_ME
pclk_pin: REPLACE_ME
data_pins:
red:
- XX #r1
- XX #r2
- XX #r3
- XX #r4
- XX #r5
green:
- XX #g0
- XX #g1
- XX #g2
- XX #g3
- XX #g4
- XX #g5
blue:
- XX #b1
- XX #b2
- XX #b3
- XX #b4
- XX #b5
Configuration variables:
************************
-**data_pins** (**Required**) A list of pins used for the databus. Specified in 3 groups:
-**red**: (**Required**, :ref:`Pin Schema <config-pin_schema>`) Exactly 5 pin numbers for the red databits, listed from least to most significant bit.
-**green**: (**Required**, :ref:`Pin Schema <config-pin_schema>`) Exactly 6 pin numbers for the green databits, listed from least to most significant bit.
-**blue**: (**Required**, :ref:`Pin Schema <config-pin_schema>`) Exactly 5 pin numbers for the blue databits, listed from least to most significant bit.
-**de_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The DE pin
-**pclk_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The PCLK pin.
-**hsync_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The Horizontal sync pin.
-**vsync_pin** (**Required**, :ref:`Pin Schema <config-pin_schema>`): The Vertical sync pin.
-**auto_clear_enabled** (*Optional*, boolean): If the display should be cleared before each update. Defaults to ``true`` if a lambda or pages are configured, false otherwise.
or to keep the existing display content (must overwrite explicitly, e.g., only on data change).
-**pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
-**id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
-**color_order** (*Optional*): Should be one of ``bgr`` (default) or ``rgb``.
-**dimensions** (**Required**): Dimensions of the screen, specified either as *width***x***height* (e.g ``320x240``) or with separate config keys.
-**height** (**Required**, int): Specifies height of display in pixels.
-**width** (**Required**, int): Specifies width of display.
-**offset_width** (*Optional*, int): Specify an offset for the x-direction of the display, typically used when an LCD is smaller than the maximum supported by the driver chip. Default is 0
-**offset_height** (*Optional*, int): Specify an offset for the y-direction of the display. Default is 0.
-**pclk_frequency** (*Optional*): Set the pixel clock speed. Default is 16MHz.
-**pclk_inverted** (*Optional* bool): If the pclk is active negative (default is True)
-**invert_colors** (*Optional*): With this boolean option you can invert the display colors. **Note** some of the displays have this option set automatically to true and can't be changed.
-**rotation** (*Optional*): Rotate the display presentation in software. Choose one of ``0°``, ``90°``, ``180°``, or ``270°``.
-**lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
See :ref:`display-engine` for more information.
The horizontal and vertical ``pulse_width``, ``front_porch`` and ``back_porch`` values are optional, but may require
changing for a specific display. Refer to the manufacturer's sample code for suitable values. These specify timing