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>`__
|
2019-10-17 21:01:09 +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.
|
2021-03-20 08:32:51 +01:00
|
|
|
Depending on your specific revision of the board you might need to try out the `-b73` or `-b1` version (see below).
|
|
|
|
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
|
|
|
|
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: |-
|
|
|
|
it.print(0, 0, id(font), "Hello World!");
|
|
|
|
|
|
|
|
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``
|
2018-08-22 22:05:28 +02:00
|
|
|
- ``2.13in`` (not tested)
|
2019-10-17 21:01:09 +02:00
|
|
|
- ``2.13in-ttgo`` (T5_V2.3 tested)
|
2020-12-21 01:55:44 +01:00
|
|
|
- ``2.13in-ttgo-b73`` (T5_V2.3 with B73 display tested)
|
2021-03-20 08:32:51 +01:00
|
|
|
- ``2.13in-ttgo-b1`` (T5_V2.3 with B1 display tested)
|
2020-12-21 01:55:44 +01:00
|
|
|
- ``2.70in`` (currently not working with the HAT Rev 2.1 version)
|
2018-08-22 22:05:28 +02:00
|
|
|
- ``2.90in``
|
2021-02-17 19:12:11 +01:00
|
|
|
- ``2.90inv2``
|
2019-12-03 14:18:07 +01:00
|
|
|
- ``2.90in-b`` (B/W rendering only)
|
2019-10-15 20:56:41 +02:00
|
|
|
- ``4.20in``
|
2020-05-02 02:30:48 +02:00
|
|
|
- ``5.83in``
|
2019-08-27 20:15:12 +02:00
|
|
|
- ``7.50in``
|
2020-12-21 01:55:44 +01:00
|
|
|
- ``7.50inV2`` (Can't use with an ESP8266 as it runs out of RAM)
|
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.
|
|
|
|
- **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-02-17 19:12:11 +01:00
|
|
|
because artifacts accumulate. On the ``1.54in``, ``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.
|
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.
|
|
|
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``10s``.
|
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`
|