2018-08-22 22:05:28 +02:00
Waveshare E-Paper Display
=========================
2018-11-14 22:12:27 +01:00
.. seo ::
2019-02-16 23:25:23 +01:00
:description: Instructions for setting up Waveshare E-Paper displays in ESPHome.
2018-11-14 22:12:27 +01:00
:image: waveshare_epaper.jpg
2018-08-22 22:05:28 +02:00
The `` waveshare_epaper `` display platform allows you to use
2020-05-24 01:46:01 +02:00
some E-Paper displays sold by `Waveshare <https://www.waveshare.com/product/displays/e-paper.htm> `__
2023-07-05 21:32:39 +02:00
with ESPHome. The 2.13" `TTGO module <https://github.com/lewisxhe/TTGO-EPaper-Series> `__ with an ESP32 on the board
is supported as well. Depending on your specific revision of the board you might need to try out the `` -b73 `` or `` -b1 ``
version (see below).
The 1.54" `Good Display gdew0154m09 <https://www.good-display.com/product/206.html> `__
as used in the `M5Stack Core Ink <https://shop.m5stack.com/products/m5stack-esp32-core-ink-development-kit1-54-elnk-display> `__
is also supported.
2021-03-20 08:32:51 +01:00
Similar modules sold by other vendors might also work but not have been tested yet. Currently only
single-color E-Ink displays are implemented and of those only a few modules.
2018-08-22 22:05:28 +02:00
.. figure :: images/waveshare_epaper-full.jpg
:align: center
:width: 75.0%
Waveshare E-Paper 2.9 Inch E-Paper Display.
2019-02-16 23:25:23 +01:00
The communication ESPHome has chosen to use for this integration is 4-wire :ref: `SPI <spi>` , as it's the most stable
2018-08-22 22:05:28 +02:00
and high-speed. So you need to make sure your board is set to the 4-wire SPI mode and have an `` spi: `` section in your
configuration.
2019-02-14 16:19:07 +01:00
==================== ===================== =====================
2019-02-16 23:25:23 +01:00
**E-Paper Pin** **ESP Pin** **ESPHome Option**
2019-02-14 16:19:07 +01:00
-------------------- --------------------- ---------------------
`` VCC `` `` 3.3V `` N/A
-------------------- --------------------- ---------------------
`` GND `` `` GND `` N/A
-------------------- --------------------- ---------------------
`` CLK `` Any GPIO `` spi.clk_pin ``
-------------------- --------------------- ---------------------
`` DIN `` Any GPIO `` spi.mosi_pin ``
-------------------- --------------------- ---------------------
`` CS `` Any GPIO `` cs_pin ``
-------------------- --------------------- ---------------------
`` DC `` Any GPIO `` dc_pin ``
-------------------- --------------------- ---------------------
`` BUSY `` (Optional) Any GPIO `` busy_pin ``
-------------------- --------------------- ---------------------
`` RESET `` (Optional) Any GPIO `` reset_pin ``
==================== ===================== =====================
2018-08-22 22:05:28 +02:00
.. figure :: images/waveshare_epaper-pins.jpg
:align: center
:width: 60.0%
2018-11-19 18:32:16 +01:00
.. code-block :: yaml
2018-08-22 22:05:28 +02:00
# Example configuration entry
2021-05-11 00:07:58 +02:00
font:
- file: 'fonts/Comic Sans MS.ttf'
id: font1
size: 8
2021-05-15 01:31:31 +02:00
2018-08-22 22:05:28 +02:00
spi:
clk_pin: D0
mosi_pin: D1
display:
- platform: waveshare_epaper
cs_pin: D2
dc_pin: D3
busy_pin: D4
reset_pin: D5
model: 2.90in
full_update_every: 30
lambda: |-
2021-05-11 00:07:58 +02:00
it.print(0, 0, id(font1), "Hello World!");
2018-08-22 22:05:28 +02:00
Configuration variables:
------------------------
2020-07-25 14:24:02 +02:00
- **cs_pin** (**Required** , :ref: `Pin Schema <config-pin_schema>` ): The CS pin.
2018-08-22 22:05:28 +02:00
- **dc_pin** (**Required** , :ref: `Pin Schema <config-pin_schema>` ): The DC pin.
- **model** (**Required** ): The model of the E-Paper display. Options are:
2018-09-25 17:34:19 +02:00
- `` 1.54in ``
2021-06-10 04:05:48 +02:00
- `` 1.54inv2 ``
2022-04-03 09:30:25 +02:00
- `` 2.13in `` - not tested
- `` 2.13in-ttgo `` - T5_V2.3 tested. Also works for Wemos D1 Mini ePaper Shield 2.13 1.0.0 "LOLIN"
- `` 2.13in-ttgo-b73 `` - T5_V2.3 with B73 display tested
- `` 2.13in-ttgo-b74 `` - T5_V2.3.1 with B74 display tested
- `` 2.13in-ttgo-b1 `` - T5_V2.3 with B1 display tested
- `` 2.13in-ttgo-dke `` - T5_V2.3 with DKE group display (DEPG0213BN) tested
2024-01-19 04:10:55 +01:00
- `` 2.13inv3 `` - 2.13in V3 display (Pico e-Paper 2.13v3)
2022-04-03 09:30:25 +02:00
- `` 2.70in `` - currently not working with the HAT Rev 2.1 version
2023-12-21 05:30:13 +01:00
- `` 2.70inv2 ``
2024-01-30 05:16:07 +01:00
- `` 2.70in-b `` - Black/White/Red
- `` 2.70in-bv2 `` - Black/White/Red
2018-08-22 22:05:28 +02:00
- `` 2.90in ``
2021-02-17 19:12:11 +01:00
- `` 2.90inv2 ``
2022-04-03 09:30:25 +02:00
- `` 2.90in-b `` - B/W rendering only
2023-12-21 05:36:48 +01:00
- `` 2.90in-bV3 `` - B/W rendering only
2019-10-15 20:56:41 +02:00
- `` 4.20in ``
2022-04-03 09:30:25 +02:00
- `` 4.20in-bV2 `` - B/W rendering only
2020-05-02 02:30:48 +02:00
- `` 5.83in ``
2023-05-01 23:36:51 +02:00
- `` 5.83inv2 ``
2019-08-27 20:15:12 +02:00
- `` 7.50in ``
2022-04-03 09:30:25 +02:00
- `` 7.50in-bV2 `` - also supports v3, B/W rendering only
2023-08-07 21:31:13 +02:00
- `` 7.50in-bV3 `` - display with the '(V3)' sticker on the back, B/W rendering only
2022-04-03 09:30:25 +02:00
- `` 7.50in-bc `` - display with version sticker '(C)' on the back, B/W rendering only
- `` 7.50inV2 `` - Can't use with an ESP8266 as it runs out of RAM
2022-05-09 07:17:40 +02:00
- `` 7.50inV2alt `` (alternative version to the above `` 7.50inV2 `` )
2022-04-03 09:30:25 +02:00
- `` 7.50in-hd-b `` - Can't use with an ESP8266 as it runs out of RAM
2023-03-20 05:01:59 +01:00
- `` gdey029t94 `` - GooDisplay GDEY029T94, as used on the AdaFruit MagTag
2023-07-05 21:32:39 +02:00
- `` 1.54in-m5coreink-m09 `` - GoodDisplay gdew0154m09, as used in the M5Stack Core Ink
.. warning ::
2023-09-27 10:10:42 +02:00
The BUSY pin on the gdew0154m09 and Waveshare 7.50in V2 models must be inverted to prevent permanent display damage. Set the pin to
2023-07-05 21:32:39 +02:00
`` inverted: true `` in the config.
2018-08-22 22:05:28 +02:00
- **busy_pin** (*Optional* , :ref: `Pin Schema <config-pin_schema>` ): The BUSY pin. Defaults to not connected.
- **reset_pin** (*Optional* , :ref: `Pin Schema <config-pin_schema>` ): The RESET pin. Defaults to not connected.
Make sure you pull this pin high (by connecting it to 3.3V with a resistor) if not connected to a GPIO pin.
2021-08-11 10:22:46 +02:00
The B74 display variant requires the reset pin.
2018-08-22 22:05:28 +02:00
- **rotation** (*Optional* ): Set the rotation of the display. Everything you draw in `` lambda: `` will be rotated
by this option. One of `` 0° `` (default), `` 90° `` , `` 180° `` , `` 270° `` .
- **full_update_every** (*Optional* , int): E-Paper displays have two modes of switching to the next image: A partial
update that only changes the pixels that have changed and a full update mode that first clears the entire display
and then re-draws the image. The former is much quicker and nicer, but every so often a full update needs to happen
2021-06-10 04:05:48 +02:00
because artifacts accumulate. On the `` 1.54in `` , `` 1.54inv2 `` , `` 2.13in `` , `` 2.90in `` and `` 2.90inv2 `` models you have the option to switch only
do a full-redraw every x-th time using this option. Defaults to `` 30 `` on the described models and a full update for
all other models.
2021-12-12 22:27:19 +01:00
- **reset_duration** (*Optional* , :ref: `config-time` ): Duration for the display reset operation. Defaults to `` 200ms `` .
Setting this value to `` 2ms `` may resolve issues with newer e-Paper Driver modules (e.g. Rev 2.1).
2018-08-22 22:05:28 +02:00
- **lambda** (*Optional* , :ref: `lambda <config-lambda>` ): The lambda to use for rendering the content on the display.
See :ref: `display-engine` for more information.
2021-08-29 13:15:28 +02:00
- **update_interval** (*Optional* , :ref: `config-time` ): The interval to re-draw the screen. Defaults to `` 1s `` , use `` never `` to only manually update the screen via `` component.update `` .
2019-02-22 21:17:31 +01:00
- **pages** (*Optional* , list): Show pages instead of a single lambda. See :ref: `display-pages` .
2018-08-22 22:05:28 +02:00
- **spi_id** (*Optional* , :ref: `config-id` ): Manually specify the ID of the :ref: `SPI Component <spi>` if you want
to use multiple SPI buses.
- **id** (*Optional* , :ref: `config-id` ): Manually specify the ID used for code generation.
See Also
--------
- :doc: `index`
2019-05-12 22:44:59 +02:00
- :apiref: `waveshare_epaper/waveshare_epaper.h`
2018-08-24 22:44:01 +02:00
- `Arduino Waveshare E-Paper library <https://github.com/soonuse/epd-library-arduino> `__ by `Yehui (@soonuse) <https://github.com/soonuse> `__
2019-02-07 13:54:45 +01:00
- :ghedit: `Edit`