Status of the Wemos ePaper 2.13 shield

Hi all
I got the ePaper 2.13 Shield — WEMOS documentation a while ago and have started fiddling with it and a D1 mini. No matter how I connect it to the D1 it never changes from the welcoming image with the heart and all, and no it’s not a taped on image. Then I ran across a few posts requesting support in Esphome for the shield and it made me wounder what the current support status is? Is there any point of me to continue with my fiddling?
Code below, pretty basic taken from Esphome site.

font:
  - file: 'fonts/Comic Sans MS.ttf'
    id: font1
    size: 8

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(font1), "Hello World!");

Regards
Fredrik

You linked to the 2.13in display but the code you copy/pasted from ESPHome refers to the 2.9in .

Try changinging the model to one that matches your board.

Corrent, I pasted the code from the website. I have indeed tried all of the 2.13 models. Shouldn’t the display at least show something when it’s powered?

No - e-paper will only change when you write to it. Applying power doesn’t update the display.

It should update after 1s according to update_interval.

  • update_interval (Optional, Time): The interval to re-draw the screen. Defaults to 1s, use never to only manually update the screen via component.update.

Is it the single color or 3 color display? The docs say only single color is supported.

This appears to be the model you have?

2.13in-ttgo - T5_V2.3 tested. Also works for Wemos D1 Mini ePaper Shield

Post the logs - maybe there is something in them.

Correct. 2.13in-ttgo should be my model of choise, it’s a 3 color display.
The logs give me Timeout while displaying image at the interval I set for the update_interval.

/Fredrik

Here is the precise code I use at the moment and the corresponding log. I’m beginning to wonder if I use the correct pin for the display? Does the Wemos D1 Mini have dedicated pins for SPI and such?

esphome:
  name: displaytest
  platform: ESP8266
  board: d1_mini
  name_add_mac_suffix: false
 
wifi:
  ssid: "HiddenDMZ"
  password: !secret wifipass
  fast_connect: On
  #power_save_mode: High
  #enable_mdns: False
  
  manual_ip:
    static_ip: xxxxxxxx
    gateway: xxxxxxx
    subnet: 255.255.255.0
 

# Enable logging
logger:
  level: DEBUG
  
ota:
  password: !secret OTApass

api:

font:
  - file: 'fonts/Roboto-Regular.ttf'
    id: font1
    size: 8

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.13in-ttgo
    full_update_every: 30
    lambda: |-
      it.print(0, 0, id(font1), "Hello World!");


sensor:
  - platform: uptime
    update_interval: 5s
    name: "DisplayUptime"
    
  - platform: wifi_signal
    name: "WiFi Strength"
[E][waveshare_epaper:119]: Timeout while displaying image!
[C][spi:101]: SPI bus:
[C][spi:102]:   CLK Pin: GPIO16
[C][spi:104]:   MOSI Pin: GPIO5
[C][spi:106]:   Using HW SPI: NO
[D][sensor:126]: 'DisplayUptime': Sending state 9.47700 s with 0 decimals of accuracy
[E][waveshare_epaper:119]: Timeout while displaying image!
[D][sensor:126]: 'WiFi Strength': Sending state -56.00000 dBm with 0 decimals of accuracy
[E][waveshare_epaper:119]: Timeout while displaying image!
[C][uptime.sensor:031]: Uptime Sensor 'DisplayUptime'
[C][uptime.sensor:031]:   Device Class: 'duration'
[C][uptime.sensor:031]:   State Class: 'total_increasing'
[C][uptime.sensor:031]:   Unit of Measurement: 's'
[C][uptime.sensor:031]:   Accuracy Decimals: 0
[C][uptime.sensor:031]:   Icon: 'mdi:timer-outline'
[E][waveshare_epaper:119]: Timeout while displaying image!
[C][waveshare_epaper:221]: Waveshare E-Paper
[C][waveshare_epaper:221]:   Rotations: 0 °
[C][waveshare_epaper:221]:   Dimensions: 128px x 250px
[C][waveshare_epaper:233]:   Model: 2.13in (TTGO)
[C][waveshare_epaper:251]:   Full Update Every: 30
[C][waveshare_epaper:252]:   Reset Pin: GPIO14
[C][waveshare_epaper:253]:   DC Pin: GPIO0
[C][waveshare_epaper:254]:   Busy Pin: GPIO2
[C][waveshare_epaper:255]:   Update Interval: 1.0s
[E][waveshare_epaper:119]: Timeout while displaying image!
[C][mdns:103]: mDNS:
[C][mdns:104]:   Hostname: displaytest
[E][waveshare_epaper:119]: Timeout while displaying image!
[C][ota:093]: Over-The-Air Updates:
[C][ota:094]:   Address: xxxxxxx
[C][ota:097]:   Using Password.
[W][ota:102]: Last Boot was an unhandled reset, will proceed to safe mode in 8 restarts
[D][sensor:126]: 'DisplayUptime': Sending state 14.66000 s with 0 decimals of accuracy
[E][waveshare_epaper:119]: Timeout while displaying image!
[C][api:138]: API Server:
[C][api:139]:   Address: xxxxxxx
[C][api:143]:   Using noise encryption: NO
[D][sensor:126]: 'WiFi Strength': Sending state -38.00000 dBm with 0 decimals of accuracy
[E][waveshare_epaper:119]: Timeout while displaying image!
[C][wifi_signal.sensor:009]: WiFi Signal 'WiFi Strength'
[C][wifi_signal.sensor:009]:   Device Class: 'signal_strength'
[C][wifi_signal.sensor:009]:   State Class: 'measurement'
[C][wifi_signal.sensor:009]:   Unit of Measurement: 'dBm'
[C][wifi_signal.sensor:009]:   Accuracy Decimals: 0
[E][waveshare_epaper:119]: Timeout while displaying image!
[E][waveshare_epaper:119]: Timeout while displaying image!
[E][waveshare_epaper:119]: Timeout while displaying image!
[D][sensor:126]: 'DisplayUptime': Sending state 19.80400 s with 0 decimals of accuracy
[E][waveshare_epaper:119]: Timeout while displaying image!
[D][sensor:126]: 'WiFi Strength': Sending state -36.00000 dBm with 0 decimals of accuracy
[E][waveshare_epaper:119]: Timeout while displaying image!
[E][waveshare_epaper:119]: Timeout while displaying image!
[E][waveshare_epaper:119]: Timeout while displaying image!
[E][waveshare_epaper:119]: Timeout while displaying image!
[D][sensor:126]: 'DisplayUptime': Sending state 24.89200 s with 0 decimals of accuracy
[E][waveshare_epaper:119]: Timeout while displaying image!
[D][sensor:126]: 'WiFi Strength': Sending state -36.00000 dBm with 0 decimals of accuracy
[E][waveshare_epaper:119]: Timeout while displaying image!
[E][waveshare_epaper:119]: Timeout while displaying image!
[E][waveshare_epaper:119]: Timeout while displaying image!
[E][waveshare_epaper:119]: Timeout while displaying image!
[D][sensor:126]: 'DisplayUptime': Sending state 29.99000 s with 0 decimals of accuracy

Can you show us a photo or diagram of how you have it wired?

I’m not sure how to best present my wiring. Picture shows the wiring on the display and code below is the corresponding pins on the D1. Thus particular code, without the reset and busy pin runs without error messages but still nothing changes on the display

font:
  - file: 'fonts/Roboto-Regular.ttf'
    id: font1
    size: 8

spi:
  clk_pin: D5
  mosi_pin: D7
  id: spi1

display:
  - platform: waveshare_epaper
    cs_pin: D8
    dc_pin: D2
    model: 2.13in-ttgo
    full_update_every: 10
    update_interval: 5s
    spi_id: spi1
    lambda: |-
      it.print(0, 0, id(font1), "Hello World!");

Log looks good as far as I can see


[20:02:54][C][spi:101]: SPI bus:
[20:02:55][C][spi:102]:   CLK Pin: GPIO14
[20:02:55][C][spi:104]:   MOSI Pin: GPIO13
[20:02:55][C][spi:106]:   Using HW SPI: YES
[20:02:55][C][uptime.sensor:031]: Uptime Sensor 'DisplayUptime'
[20:02:55][C][uptime.sensor:031]:   Device Class: 'duration'
[20:02:55][C][uptime.sensor:031]:   State Class: 'total_increasing'
[20:02:55][C][uptime.sensor:031]:   Unit of Measurement: 's'
[20:02:55][C][uptime.sensor:031]:   Accuracy Decimals: 0
[20:02:55][C][uptime.sensor:031]:   Icon: 'mdi:timer-outline'
[20:02:55][C][waveshare_epaper:221]: Waveshare E-Paper
[20:02:55][C][waveshare_epaper:221]:   Rotations: 0 °
[20:02:55][C][waveshare_epaper:221]:   Dimensions: 128px x 250px
[20:02:55][C][waveshare_epaper:233]:   Model: 2.13in (TTGO)
[20:02:55][C][waveshare_epaper:251]:   Full Update Every: 10
[20:02:55][C][waveshare_epaper:253]:   DC Pin: GPIO4
[20:02:55][C][waveshare_epaper:255]:   Update Interval: 5.0s

Damn. After some more tinkering and even connecting an ESP32 to the display I get nothing more than the welcoming message.

Did you ever got it to work? I’ve been trying to setup the same screen and esp combination with ESPHome but still without luck. Maybe it has something to do with the resolution?
When choosing the 2.13in-ttgo model I see the dimensions 128px x 250px. But I think that should be 104px x 212px.

I had more luck when using the Arduino Library I found on GitHub - ZinggJM/GxEPD2: Arduino Display Library for SPI E-Paper Displays

No, I did not. I was thinking about fiddling with some Ardunio code just to at least get a “hello world” but I left it in the box. At least it’s good to know someone else has the same problem and it’s just not me who has a broken device.

1 Like

This is an old thread, but still… have you experimented with that any more?

I’m considering buying the current version, Tri-Color ePaper 2.13 (SSD1680) Shield.
https://www.wemos.cc/en/latest/d1_mini_shield/epd_2_13_ssd1680.html