|
| 1 | +--- |
| 2 | +description: "Instructions for setting up ePaper SPI displays in ESPHome." |
| 3 | +title: "ePaper SPI Display" |
| 4 | +params: |
| 5 | + seo: |
| 6 | + description: Instructions for setting up ePaper SPI displays with improved architecture in ESPHome. |
| 7 | + image: epaper.svg |
| 8 | +--- |
| 9 | + |
| 10 | +The `epaper_spi` display platform provides a new ePaper display component architecture |
| 11 | +with improved state management and non-blocking operation. This component implements a |
| 12 | +queue-based state machine that eliminates blocking waits for the busy pin and provides |
| 13 | +better integration with ESPHome's async architecture. |
| 14 | + |
| 15 | +The communication method uses 4-wire [SPI](#spi), so you need to have an `spi:` section in your |
| 16 | +configuration. |
| 17 | + |
| 18 | +```yaml |
| 19 | +display: |
| 20 | + - platform: epaper_spi |
| 21 | + cs_pin: GPIOXX |
| 22 | + dc_pin: GPIOXX |
| 23 | + busy_pin: GPIOXX |
| 24 | + reset_pin: GPIOXX |
| 25 | + model: 7.3in-spectra-e6 |
| 26 | + lambda: |- |
| 27 | + it.filled_circle(it.get_width() / 2, it.get_height() / 2, 50, Color::BLACK); |
| 28 | +``` |
| 29 | +
|
| 30 | +## Configuration variables |
| 31 | +
|
| 32 | +- **cs_pin** (**Required**, [Pin Schema](#config-pin_schema)): The CS pin. |
| 33 | +- **dc_pin** (**Required**, [Pin Schema](#config-pin_schema)): The DC pin. |
| 34 | +- **model** (**Required**): The model of the ePaper display. Currently supported: |
| 35 | +
|
| 36 | + - `7.3in-spectra-e6` - 7.3" Spectra E6 6-color display (800×480 pixels) |
| 37 | + |
| 38 | +- **busy_pin** (*Optional*, [Pin Schema](#config-pin_schema)): The BUSY pin. Defaults to not connected. |
| 39 | +- **reset_pin** (*Optional*, [Pin Schema](#config-pin_schema)): The RESET pin. Defaults to not connected. |
| 40 | + Make sure you pull this pin high (by connecting it to 3.3V with a resistor) if not connected to a GPIO pin. |
| 41 | + |
| 42 | +- **rotation** (*Optional*): Set the rotation of the display. Everything you draw in `lambda:` will be rotated |
| 43 | + by this option. One of `0°` (default), `90°`, `180°`, `270°`. |
| 44 | + |
| 45 | +- **reset_duration** (*Optional*, [Time](#config-time)): Duration for the display reset operation. Defaults to `200ms`. |
| 46 | + |
| 47 | +- **lambda** (*Optional*, [lambda](#config-lambda)): The lambda to use for rendering the content on the display. |
| 48 | + See [Display Rendering Engine](#display-engine) for more information. |
| 49 | +- **pages** (*Optional*, list): Show pages instead of a single lambda. See [Display Pages](#display-pages). |
| 50 | + |
| 51 | +- **update_interval** (*Optional*, [Time](#config-time)): The interval to re-draw the screen. Defaults to `60s`, |
| 52 | + use `never` to only manually update the screen via `component.update`. |
| 53 | +- **spi_id** (*Optional*, [ID](#config-id)): Manually specify the ID of the [SPI Component](#spi) if you want |
| 54 | + to use multiple SPI buses. |
| 55 | +- **id** (*Optional*, [ID](#config-id)): Manually specify the ID used for code generation. |
| 56 | + |
| 57 | +## See Also |
| 58 | + |
| 59 | +- {{< docref "index/" >}} |
| 60 | +- {{< apiref "epaper_spi/epaper_spi.h" "epaper_spi/epaper_spi.h" >}} |
| 61 | +- [ESPHome Display Rendering Engine](#display-engine) |
0 commit comments