RPI_DPI_RGB Display Driver
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.
⚠️ Warning
This component has been made redundant since this class of displays is now supported by the MIPI RGB Display Driver This component will be removed in a future release.
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.

# 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        #b5Configuration variables
- data_pins (Required): A list of pins used for the databus. Specified in 3 groups: - red (Required, Pin Schema): Exactly 5 pin numbers for the red databits, listed from least to most significant bit.
- green (Required, Pin Schema): Exactly 6 pin numbers for the green databits, listed from least to most significant bit.
- blue (Required, Pin Schema): Exactly 5 pin numbers for the blue databits, listed from least to most significant bit.
 
- de_pin (Required, Pin Schema): The DE pin 
- pclk_pin (Required, Pin Schema): The PCLK pin. 
- hsync_pin (Required, Pin Schema): The Horizontal sync pin. 
- vsync_pin (Required, Pin Schema): The Vertical sync pin. 
- enable_pin (Optional, Pin Schema): The ENABLE pin. 
- reset_pin (Optional, Pin Schema): The RESET pin. 
- hsync_pulse_width (Optional, int): The horizontal sync pulse width. 
- hsync_front_porch (Optional, int): The horizontal front porch length. 
- hsync_back_porch (Optional, int): The horizontal back porch length. 
- vsync_pulse_width (Optional, int): The vertical sync pulse width. 
- vsync_front_porch (Optional, int): The vertical front porch length. 
- vsync_back_porch (Optional, int): The vertical back porch length. 
- update_interval (Optional, Time): The interval to re-draw the screen. Defaults to - 5s.
- auto_clear_enabled (Optional, boolean): If the display should be cleared before each update. Defaults to - trueif 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 Display Pages. 
- id (Optional, 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, lambda): The lambda to use for rendering the content on the display. See Display Rendering 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
requirements for the display.
Example configurations
Waveshare ESP32-S3 Touch 4.3
display:
  - platform: rpi_dpi_rgb
    color_order: RGB
    pclk_frequency: 16MHz
    dimensions:
      width: 800
      height: 480
    de_pin:
      number: 5
    hsync_pin:
      number: 46
      ignore_strapping_warning: true
    vsync_pin:
      number: 3
      ignore_strapping_warning: true
    pclk_pin: 7
    hsync_back_porch: 30
    hsync_front_porch: 210
    hsync_pulse_width: 30
    vsync_back_porch: 4
    vsync_front_porch: 4
    vsync_pulse_width: 4
    data_pins:
      red:
        - 1         #r3
        - 2         #r4
        - 42        #r5
        - 41        #r6
        - 40        #r7
      blue:
        - 14        #b3
        - 38        #b4
        - 18        #b5
        - 17        #b6
        - 10        #b7
      green:
        - 39        #g2
        - 0         #g3
        - 45        #g4
        - 48        #g5
        - 47        #g6
        - 21        #g7Makerfabs 4.3" 800x480 display
display:
  - platform: rpi_dpi_rgb
    update_interval: never
    id: rpi_display
    color_order: RGB
    rotation: 90
    dimensions:
      width: 800
      height: 480
    de_pin:
      number: 40
    hsync_pin: 39
    vsync_pin: 41
    pclk_pin: 42
    data_pins:
      red:
        - 45        #r1
        - 48        #r2
        - 47        #r3
        - 21        #r4
        - 14        #r5
      green:
        - 5         #g0
        - 6         #g1
        - 7         #g2
        - 15        #g3
        - 16        #g4
        - 4         #g5
      blue:
        - 8         #b1
        - 3         #b2
        - 46        #b3
        - 9         #b4
        - 1         #b5