Using TTGO epaper display with ESPHome

If your TTGO epaper display is not working, it can be hard to find the cause.

I made this yaml file that should work. It’s a functional clock. The only requirements are a configured WiFi and downloaded fonts. Then try one of the different display models until it works.

Follow the instructions in the file (lines starting with #).

When you see 00:00 as time, give it a minute to refresh with the correct time.

File epaperclock.yaml

esphome:
  name: epaperclock
  platform: ESP32
  board: esp32dev

wifi:
  ssid: "mywifiname" # Your WiFi SSID here
  password: "mywifipasswd" # Your WiFi password here

logger:

# Download Source Sans Pro from https://fonts.google.com/specimen/Source+Sans+Pro
# Create a fonts directory next to this file and put the fonts there.
font:
  - file: 'fonts/SourceSansPro-Bold.ttf'
    id: sourcesans_big
    size: 100
    glyphs: "0123456789:"

  - file: 'fonts/SourceSansPro-Regular.ttf'
    id: sourcesans_small
    size: 24

time:
  - platform: sntp
    id: sntp_time

spi:
  clk_pin: 18
  mosi_pin: 23

display:
  - platform: waveshare_epaper
    cs_pin: 5
    dc_pin: 17
    busy_pin: 4
    reset_pin: 16
    # Remove the # in front of one of the model lines below
    model: 2.90inv2
    #model: 2.13in-ttgo
    #model: 2.13in-ttgo-b73
    update_interval: 1min
    # If everything works, try to set full_update_every to 30 or 60
    full_update_every: 1
    rotation: 90
    lambda: |-
      it.strftime(122, -20, id(sourcesans_big), TextAlign::TOP_CENTER, "%H:%M", id(sntp_time).now());
      it.strftime(122, 98, id(sourcesans_small), TextAlign::TOP_CENTER, "%A %B %d", id(sntp_time).now());
3 Likes