E-paper driver board, ESP32-s3, 1.54” display screen - ESPHome?

Has anyone successfully gotten these combo of devices to configure via ESPHome? I got it to work via Arduino but I was hoping to use ESPHome to configure them. I’ve tried messing with the YAML changing pinouts, board name, and lot’s of other setting, to see if I can get it to work but so far no luck. Just curious if it’s even possible since Seeed’s e-paper boards may not be supported like Waveshare is.

Thanks,
b.

Hi there,

So IDK where you got that info from, :face_with_peeking_eye: but I see this here
" Yes, ESPHome fully supports e-paper (e-ink) displays, offering dedicated components like epaper_spi and waveshare_epaper for various models, enabling low-power, always-on, highly customizable displays for Home Assistant dashboards via simple YAML configuration. Support includes monochrome and some color e-ink screens, with specific integrations for popular modules like Waveshare and Seeed Studio’s reTerminal series, using SPI communication for stability.

Can you post up What code you have tried, and we can look ?
As long as it works with the Xiao, then there is really no reason It wouldn’t work.
EDIT:they do have some ready-to-use Devices, but the DIY’s require heavier lifting.:+1:
HTH
GL :slight_smile: PJ :v:

Specific BSP is more than likely what is needed. my bet :money_mouth_face:

Thanks! Using the epaper_SPI vs. the wavershare_epaper, i was at least able to get the display to flash. I’m using a 1.54in display screen which is not a model option so I tried the seeed-ee04-mono-4.26. Here is my ESPHome YAML.

esphome:
name: fridge-temp-sensor
friendly_name: Fridge Temp Sensor

esp32:
board: seeed_xiao_esp32s3
framework:
type: arduino

-----------------------------

Core

-----------------------------

logger:

api:
encryption:
key: “removed”

ota:

  • platform: esphome
    password: “removed”

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

ap:
ssid: “Fridge-Temp-Sensor”
password: “removed”

captive_portal:

-----------------------------

Pull temp from Home Assistant

-----------------------------

sensor:

  • platform: homeassistant
    id: outdoor_temp
    entity_id: sensor.openweathermap_temperature
    internal: true

-----------------------------

SPI (XIAO ESP32-S3)

-----------------------------

spi:
clk_pin: GPIO8 # SCK
mosi_pin: GPIO10 # MOSI

MISO not used for e-paper

display:

  • platform: epaper_spi
    model: Seeed-ee04-mono-4.26
    id: epd
    cs_pin: GPIO2
    dc_pin: GPIO4
    reset_pin: GPIO1
    busy_pin: GPIO3
    dimensions:
    width: 200
    height: 200
    update_interval: 30s
    rotation: 0
    full_update_every: 30
    lambda: |-
    it.fill(esphome::display::COLOR_OFF); // white background
    it.printf(10, 10, id(font_title), esphome::display::COLOR_ON, “Hello World!”);

-----------------------------

Fonts

-----------------------------

font:

  • file: “gfonts://Roboto”
    id: font_title
    size: 20

Hey! Honestly, don’t sweat it too much, moving an ESP32 project from a breadboard to a cudtom PCB and hitting these kinds of boot issues is almost a rite of passage……… since it works fine on the breadboard, your logic is likely fine, and the issue is probably hiding in the power delivery or pin states on your board.

The first thing I’d check is your power stability. ESP32s (especially the S3) are notorious for power spikes, so make sure you’ve got your 0.1 µF decoupling caps as close to the power pins as possible, along with a decent bulk capacitor (something like 10–47 µF) on the 3.3V rail. If the power dips even for a millisecond during boottt, it’ll hang. Also, double-check that your EN pin has a solid pull-up and isn’t picking up noise, and that your strapping pins (like GPIO0) aren’t being pulled into the wrong state by the E-Paper circuitry.:upside_down_face:

It might also be worth looking at your ground plane. If the return paths between the ESP32, the regulator, and your display are messy, it can cause all sorts of flaky behavior that’s hard to pin down in code. if you’re comfortable sharing a screenshot of your schematic or layout, I’m sure someone here can spot the culprit pretty quickly. Good luck with the debug! :))

Thank you for the reply. This is like my 7th sensor I’ve built. But doesn’t mean I’m not messing something up. In this case there is no PCB board. The chip fits very nicely into seeed’s epaper driver board which is then plugged directly into the 1.54in display screen also from seeed. I did check the voltage and I’m getting 3.3v’s on the epaper driver board.

If I use Arduino I can get the display to flash just. I’d prefer to use ESPHome since that’s how all my other chips work and yes, I am a novice so it’s also a little simpler with ESPHome.

I think in this case, assuming it’s possible, it might just be getting the ESPHome settings correct in order to display data on the board. (The end goal is to display the temp from the fridge onto the board.).

Thanks b.

I was able to get it to work. just went back and methodically worked thru it. here is the important section of the esphome.yaml that works.

spi:
  clk_pin: GPIO7      # SCK
  mosi_pin: GPIO9     # MOSI
  # MISO not used for e-paper

display:
  - platform: waveshare_epaper
    model: 1.54inv2
    id: epd
    cs_pin: GPIO2
    dc_pin: GPIO4
    reset_pin: GPIO1
    busy_pin: GPIO3
    update_interval: never
    rotation: 270
    full_update_every: 1
2 Likes

Hi there,

Nice Job , working through it. Sometimes it’s the little things that get you. Thank you for the notes on the fix and what is working.
This will definitely help others, Thanks for the contribution. :+1:

GL :slight_smile: PJ :v:

1 Like

Hi,

I,have an ESP32-S3 connected on the ePaper Driver Board an the **2.9" Quadruple Color eInk / ePaper Display with 128x296 Pixels, SPI interface
I’ve many problems : On arduino nothing works alos in esp home. I’ve connected the ePaper Display on the drrver board with the gold connectors facing up. I noticed that i can’t verse the code on the ESP32 S3 in wifi and with usb cable when it is connected on the driver board. I’ve to disconnect the ESP32-S3 from the driver board and it’s ok… do you know the problem ? How i can be sure that the epaper display isn’t damaged ? I’ve 3 driver board and it is the same… i’m so disappointed.. my code below :spi:
clk_pin: GPIO8 # SCK
mosi_pin: GPIO10 # MOSI

font:

  • file: “gfonts://Roboto”
    id: font_title
    size: 20
    display:
  • platform: epaper_spi
    model: Seeed-ee04-mono-4.26
    id: epd
    cs_pin: GPIO2
    dc_pin: GPIO4
    reset_pin: GPIO1
    busy_pin: GPIO3
    dimensions:
    width: 296
    height: 128
    update_interval: 30s
    rotation: 0
    full_update_every: 30
    lambda: |-
    it.fill(esphome::display::COLOR_OFF); // white background
    it.printf(10, 10, id(font_title), esphome::display::COLOR_ON, “Hello World!”);

So the pins I provided should, I would think, any Seeed esp32-s3 chip. Assuming you have the exact same pinouts. I noticed your clk_pin and mosi_pin are different from my config that I know works.

each chip may have different GPIO connected to Physical Pin

This goes into more detail, but doesnt specificly address the difference between physical pins and logical (chip) pins, AKA GPIO