From d2af542012d2d402763a8b69ba429ad077991da2 Mon Sep 17 00:00:00 2001 From: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com> Date: Tue, 12 Mar 2024 09:45:57 +1100 Subject: [PATCH] Add st7701s and rpi_dpi_rgb docs (#3546) Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com> --- components/display/images/indicator.jpg | Bin 0 -> 29376 bytes .../display/images/waveshare_touch-s3.jpg | Bin 0 -> 25933 bytes components/display/rpi_dpi_rgb.rst | 213 ++++++++++++++++++ components/display/st7701s.rst | 199 ++++++++++++++++ images/waveshare_touch-s3.jpg | Bin 0 -> 25933 bytes index.rst | 2 + 6 files changed, 414 insertions(+) create mode 100644 components/display/images/indicator.jpg create mode 100644 components/display/images/waveshare_touch-s3.jpg create mode 100644 components/display/rpi_dpi_rgb.rst create mode 100644 components/display/st7701s.rst create mode 100644 images/waveshare_touch-s3.jpg diff --git a/components/display/images/indicator.jpg b/components/display/images/indicator.jpg new file mode 100644 index 0000000000000000000000000000000000000000..57397d6f5a8d4ab05551f6746a595dd883eaaa8c GIT binary patch literal 29376 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 literal 0 HcmV?d00001 diff --git a/components/display/images/waveshare_touch-s3.jpg b/components/display/images/waveshare_touch-s3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ac719bb54ffad56a7a992e9e8a099a367f075f0e GIT binary patch literal 25933 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 o>3=1Hu5sJHr(IYCDK1(=l6o9}9W`) Exactly 5 pin numbers for the red databits, listed from least to most significant bit. + - **green**: (**Required**, :ref:`Pin Schema `) Exactly 6 pin numbers for the green databits, listed from least to most significant bit. + - **blue**: (**Required**, :ref:`Pin Schema `) Exactly 5 pin numbers for the blue databits, listed from least to most significant bit. +- **de_pin** (**Required**, :ref:`Pin Schema `): The DE pin +- **pclk_pin** (**Required**, :ref:`Pin Schema `): The PCLK pin. +- **hsync_pin** (**Required**, :ref:`Pin Schema `): The Horizontal sync pin. +- **vsync_pin** (**Required**, :ref:`Pin Schema `): The Vertical sync pin. +- **reset_pin** (*Optional*, :ref:`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*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``. +- **auto_clear_enabled** (*Optional*, boolean): Whether to automatically clear the display in each loop (''true'', default), + 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 `): 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 +requirements for the display. + +Example configurations +---------------------- + + +Waveshare ESP32-S3 Touch 4.3 +**************************** + +.. code-block:: yaml + + display: + - platform: rpi_dpi_rgb + auto_clear_enabled: false + 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 #g7 + + +Makerfabs 4.3" 800x480 display +****************************** + +.. code-block:: yaml + + display: + - platform: rpi_dpi_rgb + update_interval: never + auto_clear_enabled: false + 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 + + + +See Also +-------- + +- :doc:`index` +- :apiref:`rpi_dpi_rgb/rpi_dpi_rgb.h` +- :ghedit:`Edit` diff --git a/components/display/st7701s.rst b/components/display/st7701s.rst new file mode 100644 index 000000000..ec217ad31 --- /dev/null +++ b/components/display/st7701s.rst @@ -0,0 +1,199 @@ +ST7701S Display Driver +====================== + +.. seo:: + :description: Instructions for setting up ST7701S 16 bit "RGB" parallel displays + :image: indicator.jpg + +.. _st7701s: + +Models +------ +This display driver supports displays with 16 bit parallel interfaces, often referred to as "RGB". It currently +supports the ST7701S chip. + +This driver has been tested with the following displays: + + - Seeed Sensecap Indicator + - Makerfabs 4" display + +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/indicator.jpg + :align: center + :width: 75.0% + + Sensecap Indicator display + + +.. code-block:: yaml + + # Example minimal configuration entry + display: + - platform: st7701s + dimensions: + width: 480 + height: 480 + cs_pin: REPLACE_ME + reset_pin: REPLACE_ME + de_pin: REPLACE_ME + hsync_pin: REPLACE_ME + vsync_pin: REPLACE_ME + pclk_pin: REPLACE_ME + # Replace XX with the correct pin number + + 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: +************************ + +- **init_sequence** (*Optional*, A list of byte arrays): Specifies the init sequence for the display +- **data_pins** (**Required**): A list of pins used for the databus. Specified in 3 groups. + + - **red**: (**Required**, :ref:`Pin Schema `) Exactly 5 pin numbers for the red databits, listed from least to most significant bit. + - **green**: (**Required**, :ref:`Pin Schema `) Exactly 6 pin numbers for the green databits, listed from least to most significant bit. + - **blue**: (**Required**, :ref:`Pin Schema `) Exactly 5 pin numbers for the blue databits, listed from least to most significant bit. +- **de_pin** (**Required**, :ref:`Pin Schema `): The DE pin. +- **dc_pin** (*Optional*, :ref:`Pin Schema `): The DC pin. +- **pclk_pin** (**Required**, :ref:`Pin Schema `): The PCLK pin. +- **hsync_pin** (**Required**, :ref:`Pin Schema `): The Horizontal sync pin. +- **vsync_pin** (**Required**, :ref:`Pin Schema `): The Vertical sync pin. +- **reset_pin** (*Optional*, :ref:`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. +- **pclk_frequency** (*Optional*): Set the pixel clock speed. Default is 8MHz. +- **pclk_inverted** (*Optional* bool): If the pclk is active negative (default is True) +- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``. +- **auto_clear_enabled** (*Optional*, boolean): Whether to automatically clear the display in each loop (''true'', default), + 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. + +- **data_rate** (*Optional*): Set the data rate of the SPI interface to the display. One of ``80MHz``, ``40MHz``, + ``20MHz``, ``10MHz``, ``5MHz``, ``2MHz``, ``1MHz`` (default), ``200kHz``, ``75kHz`` or ``1kHz``. +- **spi_mode** (*Optional*): Set the mode for the SPI interface to the display. Default is ``MODE0`` but some displays require ``MODE3``. +- **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°``. This option cannot be used with ``transform``. +- **transform** (*Optional*): Transform the display presentation using hardware. All defaults are ``false``. This option cannot be used with ``rotation``. + + - **swap_xy** (*Optional*, boolean): If true, exchange the x and y axes. + - **mirror_x** (*Optional*, boolean): If true, mirror the x axis. + - **mirror_y** (*Optional*, boolean): If true, mirror the y axis. +- **lambda** (*Optional*, :ref:`lambda `): The lambda to use for rendering the content on the display. + See :ref:`display-engine` for more information. + + +**Note:** To rotate the display in hardware use one of the following combinations: + + - 90 degrees - use ``swap_xy`` with ``mirror_x`` + - 180 degrees - use ``mirror_x`` with ``mirror_y`` + - 270 degrees - use ``swap_xy`` with ``mirror_y`` + +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. + +The ``init_sequence`` requires a list of elements, one of which may be a single integer selecting a canned init +sequence (the default and currently the only sequence is 1), the remainder must be byte arrays providing additional +init commands, each consisting of a command byte followed by zero or more data bytes. + +These will be collected and sent to the display via SPI during initialisation. + +Example configurations +---------------------- + +Seeed Sensecap Indicator +************************ + +.. code-block:: yaml + + display: + - platform: st7701s + auto_clear_enabled: false + update_interval: never + spi_mode: MODE3 + color_order: RGB + dimensions: + width: 480 + height: 480 + invert_colors: true + transform: + mirror_x: true + mirror_y: true + cs_pin: + pca9554: p_c_a + number: 4 + reset_pin: + pca9554: p_c_a + number: 5 + de_pin: 18 + hsync_pin: 16 + vsync_pin: 17 + pclk_pin: 21 + init_sequence: + - 1 # select canned init sequence number 1 + - [ 0xE0, 0x1F ] # Set sunlight readable enhancement + data_pins: + red: + - 4 #r1 + - 3 #r2 + - 2 #r3 + - 1 #r4 + - 0 #r5 + green: + - 10 #g0 + - 9 #g1 + - 8 #g2 + - 7 #g3 + - 6 #g4 + - 5 #g5 + blue: + - 15 #b1 + - 14 #b2 + - 13 #b3 + - 12 #b4 + - 11 #b5 + lambda: |- + it.fill(COLOR_BLACK); + it.print(0, 0, id(my_font), id(my_red), TextAlign::TOP_LEFT, "Hello World!"); + + +See Also +-------- + +- :doc:`index` +- :apiref:`st7701s/st7701s.h` +- :ghedit:`Edit` diff --git a/images/waveshare_touch-s3.jpg b/images/waveshare_touch-s3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ac719bb54ffad56a7a992e9e8a099a367f075f0e GIT binary patch literal 25933 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 o>3=1Hu5sJHr(IYCDK1(=l6o9}9W