Hi there
I just got one of these https://www.aliexpress.com/item/1005008096259306.html
( HINK-E075A07-A0 7.5inch 24Pin 880x528 e-Paper E-ink raw Display Red Black White )
Along with a https://www.aliexpress.com/item/1005009827197743.html ( Waveshare e-Paper ESP32 Driver Board Rev 3 )
Hooked it all up, and configured the GPIOs according to the image on the waveshare site
However I am getting zero reaction out of the e-ink display.
This e-ink display is 7.5" however the resolution is 880x528 pixels - the waveshare site for the driver board doesn’t list this res. With some google-fu I found I can use “generic SPI” to drive this display:
esphome:
name: esp32-eink-1
esp32:
board: esp32dev
framework:
type: esp-idf
logger:
level: VERBOSE
api:
encryption:
key: "redacted"
ota:
- platform: esphome
password: "redacted"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
captive_portal:
font:
- file: "fonts/menlo.ttf"
id: font_menlo
size: 32
spi:
clk_pin: GPIO13
mosi_pin: GPIO14
display:
- platform: epaper_spi
model: SSD1677 # Via https://esphome.io/components/display/epaper_spi/
cs_pin: GPIO15
dc_pin: GPIO27
reset_pin: GPIO26
busy_pin: { number: GPIO25, inverted: False, mode: { input: True, pulldown: True } }
dimensions:
width: 880
height: 528
full_update_every: 1
update_interval: 10s
lambda: |-
it.fill(Color::WHITE);
it.print(0, 0, id(font_menlo), Color::BLACK, "HELLO WORLD!");
But I got no reaction from the display; so and get this in the logs:
[I][app:194]: ESPHome version 2025.12.2 compiled on Dec 29 2025, 17:24:09
-- irrelevant stuff removed --
[C][spi:067]: SPI bus:
[C][spi:068]: CLK Pin: GPIO13
[C][spi:069]: SDI Pin:
[C][spi:070]: SDO Pin: GPIO14
[C][spi:075]: Using HW SPI: SPI2_HOST
[C][epaper_spi:329]: E-Paper SPI
[C][epaper_spi:329]: Rotations: 0 °
[C][epaper_spi:329]: Dimensions: 880px x 528px
[C][epaper_spi:330]: Model: SSD1677
[C][epaper_spi:331]: Reset Pin: GPIO26
[C][epaper_spi:332]: DC Pin: GPIO27
[C][epaper_spi:333]: Busy Pin: GPIO25
[C][epaper_spi:334]: CS Pin: GPIO15
[C][epaper_spi:399]: Update Interval: 10.0s
[C][epaper_spi:336]: SPI Data Rate: 20MHz
[C][epaper_spi:336]: Full update every: 1
[C][epaper_spi:336]: Swap X/Y: NO
[C][epaper_spi:336]: Mirror X: NO
[C][epaper_spi:336]: Mirror Y: NO
-- irrelevant stuff removed --
[V][epaper_spi:226]: Exit state IDLE
[V][epaper_spi:234]: Enter state UPDATE, delay 0, wait_for_idle=FALSE
[V][epaper_spi:165]: Process state entered in state UPDATE
[V][epaper_spi:226]: Exit state UPDATE
[V][epaper_spi:234]: Enter state RESET, delay 0, wait_for_idle=FALSE
[V][epaper_spi:165]: Process state entered in state RESET
[V][epaper_spi:226]: Exit state RESET
[V][epaper_spi:234]: Enter state RESET_END, delay 10, wait_for_idle=FALSE
[V][epaper_spi:165]: Process state entered in state RESET_END
[V][epaper_spi:226]: Exit state RESET_END
[V][epaper_spi:234]: Enter state INITIALISE, delay 0, wait_for_idle=TRUE
[V][epaper_spi:141]: Screen was busy for 4 ms
[V][epaper_spi:165]: Process state entered in state INITIALISE
[V][epaper_spi:071]: Command: 0x18, Length: 1, Data: 80
[V][epaper_spi:071]: Command: 0x0C, Length: 5, Data: AE.C7.C3.C0.80
[V][epaper_spi:071]: Command: 0x01, Length: 3, Data: 6F.03.02
[V][epaper_spi:071]: Command: 0x3C, Length: 1, Data: 01
[V][epaper_spi:071]: Command: 0x11, Length: 1, Data: 03
[V][epaper_spi:226]: Exit state INITIALISE
[V][epaper_spi:234]: Enter state TRANSFER_DATA, delay 0, wait_for_idle=TRUE
[V][epaper_spi:141]: Screen was busy for 5 ms
[V][epaper_spi:165]: Process state entered in state TRANSFER_DATA
[V][epaper_spi:071]: Command: 0x4E, Length: 2, Data: 00.00
[V][epaper_spi:071]: Command: 0x44, Length: 4, Data: 00.00.6F.03
[V][epaper_spi:071]: Command: 0x4F, Length: 2, Data: 00.00
[V][epaper_spi:071]: Command: 0x45, Length: 4, Data: 00.00.0F.02
[V][epaper_spi.ssd1677:061]: Writing bytes at line 0 at 15249ms
[V][epaper_spi:165]: Process state entered in state TRANSFER_DATA
[V][epaper_spi.ssd1677:061]: Writing bytes at line 1 at 15263ms
[V][epaper_spi:165]: Process state entered in state TRANSFER_DATA
[V][epaper_spi.ssd1677:061]: Writing bytes at line 38 at 15281ms
[V][epaper_spi:165]: Process state entered in state TRANSFER_DATA
[V][epaper_spi.ssd1677:061]: Writing bytes at line 115 at 15295ms
[V][epaper_spi:165]: Process state entered in state TRANSFER_DATA
[V][epaper_spi.ssd1677:061]: Writing bytes at line 165 at 15313ms
[V][epaper_spi:165]: Process state entered in state TRANSFER_DATA
[V][epaper_spi.ssd1677:061]: Writing bytes at line 238 at 15327ms
[V][epaper_spi:165]: Process state entered in state TRANSFER_DATA
[V][epaper_spi.ssd1677:061]: Writing bytes at line 301 at 15345ms
[V][epaper_spi:165]: Process state entered in state TRANSFER_DATA
[V][epaper_spi.ssd1677:061]: Writing bytes at line 375 at 15359ms
[V][epaper_spi:165]: Process state entered in state TRANSFER_DATA
[V][epaper_spi.ssd1677:061]: Writing bytes at line 452 at 15377ms
[V][epaper_spi:165]: Process state entered in state TRANSFER_DATA
[V][epaper_spi.ssd1677:061]: Writing bytes at line 521 at 15390ms
[V][epaper_spi:226]: Exit state TRANSFER_DATA
[V][epaper_spi:234]: Enter state POWER_ON, delay 0, wait_for_idle=TRUE
[V][epaper_spi:141]: Screen was busy for 9 ms
[V][epaper_spi:165]: Process state entered in state POWER_ON
[V][epaper_spi:226]: Exit state POWER_ON
[V][epaper_spi:234]: Enter state REFRESH_SCREEN, delay 0, wait_for_idle=TRUE
[V][epaper_spi:141]: Screen was busy for 7 ms
[V][epaper_spi:165]: Process state entered in state REFRESH_SCREEN
[V][epaper_spi.ssd1677:011]: Refresh screen
[V][epaper_spi:226]: Exit state REFRESH_SCREEN
[V][epaper_spi:234]: Enter state POWER_OFF, delay 0, wait_for_idle=TRUE
[V][epaper_spi:141]: Screen was busy for 9 ms
[V][epaper_spi:165]: Process state entered in state POWER_OFF
[V][epaper_spi:226]: Exit state POWER_OFF
[V][epaper_spi:234]: Enter state DEEP_SLEEP, delay 0, wait_for_idle=TRUE
[V][epaper_spi:141]: Screen was busy for 9 ms
[V][epaper_spi:165]: Process state entered in state DEEP_SLEEP
[V][epaper_spi.ssd1677:018]: Deep sleep
[V][epaper_spi:226]: Exit state DEEP_SLEEP
[V][epaper_spi:234]: Enter state IDLE, delay 0, wait_for_idle=FALSE
[D][epaper_spi:220]: Display update took 362 ms
I am assuming the esp32 is able to transmit the display data to the display (Or else I would expect there would be some errors?) But I have no reaction from the display at all (it’s totally “white”, i.e. how it looked when it was shipped to me).
I’ve searched for people using this specific display, but I’ve come up short - however, I assumed this is like many other things HomeAssistant - close enough that it’ll work but this time, that appears to not be the case.
Any guidance on how to get this going would be appreciated!
