Skip to content

Commit 644c924

Browse files
authored
[epaper_spi] Add SSD1677 and Seeed EE04 with Waveshare 4.26 (#5628)
1 parent 3b32d36 commit 644c924

File tree

1 file changed

+57
-15
lines changed

1 file changed

+57
-15
lines changed

content/components/display/epaper_spi.md

Lines changed: 57 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ with improved state management and non-blocking operation. This component implem
1212
queue-based state machine that eliminates blocking waits for the busy pin and provides
1313
better 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
1616
configuration.
1717

1818
The 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,
4052
but 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

Comments
 (0)