ESPHOME - Waveshare 7.5 inch E-Ink E-Paper Display

The project is laying on the shelf at the moment :-/ I got it to work quite acceptable with the waveshare board and left it run with a demo setup (some sensor values, 2 images, some lines and circles) for a week, to see how it keeps up. The image quality degraded over time, and after 5 or 6 days the panel didn’t update anymore, with a greyish image left. Rebooting does nothing to the panel, I vaguely suspect it burnt out/in over time. I might try the arduino approach once the utter frustration wears off some day…

There was an update today to esphome and one of the things that is fixed is grainy image on the 7.5 inch v2. Give it a go!

3 Likes

This helped my 7.5v2. It’s weird because I had a previous 7.5v2, that worked fine w/ the dip switch in B.

can anyone help me? i see no information on my screen, i dont know why. i have also a 4.2 display, that works

esphome:
  name: display-7-5
  friendly_name: Display_7_5

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "ZVlr5******************"

ota:
  password: "0d1d*****************"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Display-7-5 Fallback Hotspot"
    password: "******"

captive_portal:

font:
  - file: 'fonts/ConsolaMono-Bold.ttf'
    id: consolaMono_bold_15
    size: 15
    glyphs:
      ['&', '@', '!', ',', '.', '"', '%', '(', ')', '+', '-', '_', ':', '°', '0',
       '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E',
       'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
       'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
       'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
       'u', 'v', 'w', 'x', 'y', 'z','å', 'ä', 'ö', '/','º','µ','³']
       
spi:
  clk_pin: GPIO13
  mosi_pin: GPIO14

display:
  - platform: waveshare_epaper
    id: epaperdisplay
    cs_pin: GPIO15
    dc_pin: GPIO27
    busy_pin: GPIO25
    reset_pin: GPIO26
    model: 7.50inv2
    update_interval: 30s
    lambda: |-
      it.printf(155,295, id(consolaMono_bold_15), TextAlign::BASELINE_CENTER, "HomeAssistant");

When you power on, the display is flashing black & white three times?

No… see nothing

but my 4.2 display also does not flashing and that works

Flash Log:

INFO ESPHome 2023.8.2
INFO Reading configuration /config/esphome/display-7-5.yaml...
WARNING GPIO15 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Generating C++ source...
INFO Compiling app...
Processing display-7-5 (board: esp32dev; framework: arduino; platform: platformio/[email protected])
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Dependency Graph
|-- AsyncTCP-esphome @ 1.2.2
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 2.1.0
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- noise-c @ 0.1.4
|-- SPI @ 2.0.0
Compiling /data/display-7-5/.pioenvs/display-7-5/src/main.cpp.o
Linking /data/display-7-5/.pioenvs/display-7-5/firmware.elf
RAM:   [=         ]  12.4% (used 40672 bytes from 327680 bytes)
Flash: [=====     ]  50.1% (used 919889 bytes from 1835008 bytes)
Building /data/display-7-5/.pioenvs/display-7-5/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin(["/data/display-7-5/.pioenvs/display-7-5/firmware.bin"], ["/data/display-7-5/.pioenvs/display-7-5/firmware.elf"])
Wrote 0xf1fe0 bytes to file /data/display-7-5/.pioenvs/display-7-5/firmware-factory.bin, ready to flash to offset 0x0
========================= [SUCCESS] Took 47.72 seconds =========================
INFO Successfully compiled program.
INFO Resolving IP address of display-7-5.local
INFO  -> 192.168.1.162
INFO Uploading /data/display-7-5/.pioenvs/display-7-5/firmware.bin (925664 bytes)
Uploading: [============================================================] 100% Done...

INFO Waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from display-7-5.local using esphome API
INFO Successfully connected to display-7-5.local
[11:24:12][I][app:102]: ESPHome version 2023.8.2 compiled on Aug 29 2023, 11:23:10
[11:24:12][C][wifi:543]: WiFi:
[11:24:12][C][wifi:379]:   Local MAC: xx:86:xx:FD:xx:C8
[11:24:12][C][wifi:380]:   SSID: [redacted]
[11:24:12][C][wifi:381]:   IP Address: 192.168.1.162
[11:24:12][C][wifi:383]:   BSSID: [redacted]
[11:24:12][C][wifi:384]:   Hostname: 'display-7-5'
[11:24:12][C][wifi:386]:   Signal strength: -63 dB ▂▄▆█
[11:24:12][C][wifi:390]:   Channel: 1
[11:24:12][C][wifi:391]:   Subnet: 255.255.255.0
[11:24:12][C][wifi:392]:   Gateway: 192.168.1.1
[11:24:12][C][wifi:393]:   DNS1: 192.168.1.9
[11:24:12][C][wifi:394]:   DNS2: 0.0.0.0
[11:24:13][C][logger:301]: Logger:
[11:24:13][C][logger:302]:   Level: DEBUG
[11:24:13][C][logger:303]:   Log Baud Rate: 115200
[11:24:13][C][logger:305]:   Hardware UART: UART0
[11:24:13][C][spi:125]: SPI bus:
[11:24:13][C][spi:126]:   CLK Pin: GPIO13
[11:24:13][C][spi:128]:   MOSI Pin: GPIO14
[11:24:13][C][spi:130]:   Using HW SPI: YES
[11:24:13][C][waveshare_epaper:1614]: Waveshare E-Paper
[11:24:13][C][waveshare_epaper:1614]:   Rotations: 0 °
[11:24:13][C][waveshare_epaper:1614]:   Dimensions: 800px x 480px
[11:24:13][C][waveshare_epaper:1615]:   Model: 7.5inV2rev2
[11:24:13][C][waveshare_epaper:1616]:   Reset Pin: GPIO26
[11:24:13][C][waveshare_epaper:1617]:   DC Pin: GPIO27
[11:24:13][C][waveshare_epaper:1618]:   Busy Pin: GPIO25
[11:24:13][C][waveshare_epaper:1619]:   Update Interval: 30.0s
[11:24:13][C][captive_portal:088]: Captive Portal:
[11:24:13][C][mdns:112]: mDNS:
[11:24:13][C][mdns:113]:   Hostname: display-7-5
[11:24:13][C][ota:093]: Over-The-Air Updates:
[11:24:13][C][ota:094]:   Address: display-7-5.local:3232
[11:24:13][C][ota:097]:   Using Password.
[11:24:13][C][api:138]: API Server:
[11:24:13][C][api:139]:   Address: display-7-5.local:6053
[11:24:13][C][api:141]:   Using noise encryption: YES
[11:24:27][W][component:204]: Component waveshare_epaper.display took a long time for an operation (1.04 s).
[11:24:27][W][component:205]: Components should block for at most 20-30ms

Try to change the model in 7.50inV2alt

My Waveshare 800×480, 7.5inch E-Ink display, is piloted by a ESP32 with this pinout config:

spi:
  clk_pin: GPIO33
  mosi_pin: GPIO32

display:
- platform: waveshare_epaper
  id: epaper75_01
  cs_pin: GPIO25
  dc_pin: GPIO26
  busy_pin: GPIO14
  reset_pin: GPIO27
  model: 7.50inV2alt
  reset_duration: 2ms
  update_interval: 300s
  rotation: 270°
1 Like

thx… works now with 7.50inV2alt

1 Like

Here is my version of this:
https://oshwlab.com/jeroennl85/e-paper-display

Only thing i would like to get working is the colors or partial update.
I found a module from someone who made the colors work, but updating the screen takes 20seconds with that, so for now its just black and white.

Also partial updates would be better so i only have to change the values.
Has anyone got that working ?

My two Waveshare 7,5inch displays are working very well since the patch against the former display problems. Only thing is that I am having kind of a burn in effect (lots of static elements on the screen), any idea on how to blank the screen correctly? Should be possible on an epaper…

How long are you running them by now? I had played around with one before that patch, earlier this year, and while i got it to work with a quite okay display quality, after a bit over a week of constant usage, the image quality got worse and worse and in the end was a grey/black/grainy mess that didnt display any changes anymore

Since February this year. Image quality is good but it burns in. Waveshare told me that I neee to use the deep sleep mode, but I tried that before and didnt get any updates afterwards…

I’ve been playing around with 3 different waveshare screens with esphome, and the only one I got working reliably was the 2.9inch version. I always had the gut feeling that the arduino libraries work better than the esphome implementations, but I don’t have the coding experience to properly digg into it.
One “funny” example: I originally played around with the 1.54inch display 1.5 years ago, but it never worked reliably. After reading your post, I googled a bit again, and YESTERDAY someone fixed the bug with the missing deep sleep for that display: Add deep sleep between updates for waveshare epaper 1.54in and 1.54inv2 by mathieu-mp · Pull Request #5961 · esphome/esphome · GitHub

This thread here is a bit broader: Some Waveshare ePaper Screens are always powered on · Issue #4739 · esphome/issues · GitHub

Long story short: I’m super jealous of the people who get their waveshare displays beyond the 2.9inch one to work reliably and long-term using esphome, but I don’t really trust the esphome implementations at this point in time. And buying a new 7.5inch panel just to “check” if that bugfix now really did the trick for my setup is a bit of an expensive endevour…

1 Like

Okay. This raises multiple questions for me…

  1. Currently, I use the 7,5inv2alt verison as I know there has been a fix for the greasy picture. Is this implemented in V2 also?
  2. If there has been a fix for deep sleep in v2 and I use it, do I have to specify the sleep state? I once tried with kind of
deep_sleep:
  id: deep_sleep_1
  sleep_duration: 60s

But as a result, my display would never refresh its data. I am a bit lost here.

Edit: No, as soon as I switch to V7.50v2, I am back to the greasy picture…

I think when the waveshare people are talking about deepsleep, they mean the display itself (https://www.waveshare.com/wiki/1.54inch_e-Paper_Module_Manual#Precautions)

What you are using in your yaml is the deep sleep mode of the esp itself (Deep Sleep Component — ESPHome)

From what I found the deep sleep mode of the display needs to be part of the esphome code for the display, it’s nothing you can manually set if it wasnt taken into account by the esphome developer before.

Ah, I understand.
But if so, everyone should be running into this issue…
And I do not understand why the greasy display fix hasnt been implemented in all v7,5 models …

I also never got the logic behind some people not having issues, and some (including me) struggling forever. The time and financial effort just got too big for me over time, which is a dealbreaker when compared to the little happiness i got out of it. Occasionally when it “hits me” i get motivated again and give it another go, but for projects where i need reliability i either use the 2.9inch display or leds.

Who knows, maybe in January I’ll risk it and get myself a new 7.5er panel :slight_smile:

1 Like

Shouldn’t the sleep mode fix be implemented for all 75vsomething’s?

i dont see a reason why it shouldnt, so: yes