@@ -12,7 +12,7 @@ with improved state management and non-blocking operation. This component implem
1212queue-based state machine that eliminates blocking waits for the busy pin and provides
1313better integration with ESPHome's async architecture.
1414
15- The communication method uses 4-wire [ SPI] ( /components/spi ) , so you need to have an ` spi: ` section in your
15+ The communication method uses [ SPI] ( /components/spi ) , so you need to have an ` spi: ` section in your
1616configuration.
1717
1818The driver supports a number of displays and there are also specific configurations for ESP32 boards with integrated displays.
@@ -26,43 +26,85 @@ display:
2626 it.filled_circle(it.get_width() / 2, it.get_height() / 2, 50, Color::BLACK);
2727` ` `
2828
29- ## Supported displays
29+ ## Supported display controllers
3030
31- | Model name | Manufacturer | Product Description |
32- | ---------------------- | ------------ | ---------------------------------------------------------- |
33- | Spectra-E6 | Eink | <https://www.eink.com/brand/detail/Spectra6> |
34- | 7.3in Spectra-E6 | Eink | <https://www.eink.com/product/detail/EL073TF1U5> |
35- | Seeed-reTerminal-E1002 | Seeed Studio | <https://www.seeedstudio.com/reTerminal-E1002-p-6533.html> |
31+ These are the supported controller chips. Using just the chip name as the model will require full configuration with
32+ pins and dimensions specified.
33+
34+ | Chip name | Manufacturer | Product Description |
35+ |------------------------|--------------|------------------------------------------------------------------------------------------------------------------------------|
36+ | Spectra-E6 | Eink | <https://www.eink.com/brand/detail/Spectra6> |
37+ | SSD1677 | Solomon | <https://www.solomon-systech.com/product/ssd1677/> |
38+
39+ ## Supported integrated display boards
40+
41+ These models correspond to displays integrated with a microcontroller, and have a full configuration predefined, so at
42+ a minimum only the model name need be configured. Other options can be overridden in the configuration if needed.
43+
44+ | Model name | Manufacturer | Product Description |
45+ | ---------------------- |--------------| ---------------------------------------------------------------------------------------------------------------------------- |
46+ | Seeed-reTerminal-E1002 | Seeed Studio | <https://www.seeedstudio.com/reTerminal-E1002-p-6533.html> |
47+ | Seeed-ee04-mono-4.26 | Seeed Studio | Seeed EE04 board with Waveshare 4.26" mono epaper. <https://www.seeedstudio.com/XIAO-ePaper-Display-Board-EE04-p-6560.html> |
3648
3749## Configuration variables
3850
39- When using a model defining an integrated ESP32 display board most of the configuration such as the pins and dimensions will be set by default,
51+ When using a model defining an integrated display board most of the configuration such as the pins and dimensions will be set by default,
4052but can be overridden if needed.
4153
42- - **model** (**Required**): The model of the ePaper display. See the table above for options.
54+ - **model** (**Required**): The model of the ePaper display. See the table above for options (case is not significant) .
4355- **cs_pin** (**Required**, [Pin Schema](/guides/configuration-types#pin-schema)): The CS pin. Predefined for integrated boards.
4456- **dc_pin** (**Required**, [Pin Schema](/guides/configuration-types#pin-schema)): The DC pin. Predefined for integrated boards.
4557- **busy_pin** (*Optional*, [Pin Schema](/guides/configuration-types#pin-schema)): The BUSY pin, if used.
4658- **reset_pin** (*Optional*, [Pin Schema](/guides/configuration-types#pin-schema)): The RESET pin, if used.
4759 Make sure you pull this pin high (by connecting it to 3.3V with a resistor) if not connected to a GPIO pin.
60+ - **dimensions** (**Required**, dict): Dimensions of the screen, specified either as *width* **x** *height* (e.g ` 320x240` )
61+ or with separate config keys. For integrated boards with full pre-defined configuration this is optional and will be preset by
62+ the model selected. The dimensions are specified in pixels, and the width and height must be greater than 0.
4863
49- - **rotation** (*Optional*): Set the rotation of the display. Everything you draw in ` lambda:` will be rotated
64+ - **height** (**Required**, int): Specifies height of display.
65+ - **width** (**Required**, int): Specifies width of display.
66+
67+ - **rotation** (*Optional*, int): Set the rotation of the display. Everything you draw in `lambda:` will be rotated
5068 by this option. One of `0°` (default), `90°`, `180°`, `270°`.
69+ - **transform** (*Optional*, dict): If `rotation` is not sufficient, use this to transform the display. Options are:
70+ - **mirror_x** (**Required**, boolean): If true, mirror the x axis.
71+ - **mirror_y** (**Required**, boolean): If true, mirror the y axis.
5172
5273- **reset_duration** (*Optional*, [Time](/guides/configuration-types#time)): Duration for the display reset operation. Defaults to `200ms`.
53-
5474- **lambda** (*Optional*, [lambda](/automations/templates#config-lambda)): The lambda to use for rendering the content on the display.
5575 See [Display Rendering Engine](/components/display#display-engine) for more information.
5676- **pages** (*Optional*, list): Show pages instead of a single lambda. See [Display Pages](/components/display#display-pages).
57-
5877- **update_interval** (*Optional*, [Time](/guides/configuration-types#time)): The interval to re-draw the screen. Defaults to `60s`,
5978 use `never` to only manually update the screen via `component.update`.
60- - **spi_id** (*Optional*, [ID](/guides/configuration-types#id)): Manually specify the ID of the [SPI Component](/components/spi) if you want
61- to use multiple SPI buses.
79+ - **full_update_every** (*Optional*, int): On screens that support partial updates, this sets the number of updates
80+ before a full update is forced. Defaults to `1` which will make every update a full update.
81+ - **spi_id** (*Optional*, [ID](/guides/configuration-types#id)): Required to specify the ID of the [SPI Component](/components/spi) if your
82+ configuration defines multiple SPI buses. If only a single SPI bus is configured, this is optional.
6283- **id** (*Optional*, [ID](/guides/configuration-types#id)): Manually specify the ID used for code generation.
6384
85+ # ## Full configuration example
86+
87+ ` ` ` yaml
88+ display:
89+ - platform: epaper_spi
90+ model: SSD1677
91+ full_update_every: 10
92+ update_interval: 5s
93+ dimensions:
94+ width: 800
95+ height: 480
96+ transform:
97+ mirror_x: true
98+ mirror_y: false
99+ rotation: 90 # Rotate to portrait
100+ cs_pin: GPIOXX
101+ dc_pin: GPIOXX
102+ reset_pin: GPIOXX
103+ busy_pin: { number: GPIOXX, inverted: False, mode: { input: True, pulldown: True } }
104+ ` ` `
105+
64106# # See Also
65107
66- - {{< docref "index/" >}}
67108- {{< apiref "epaper_spi/epaper_spi.h" "epaper_spi/epaper_spi.h" >}}
68109- [ESPHome Display Rendering Engine](/components/display#display-engine)
110+ - {{< docref "components/lvgl" >}}
0 commit comments