Waveshare e-Paper no display - help please

I have a Waveshare 4.2inch v2 display (Labels on rear: 024RW-Z98 and 2024032101) and the Waveshare ESP32 driver board but cannot get anything at all to display when using ESPHome.

I’m pretty sure it is not hardware related as I’ve substitued the screen and driver board (individually and together) and tried all three 4.2 inch drivers in the yaml. I have also tried connecting the screen directly to the driver board - and via the extension, and the switch in both A and B positions.

I am probably missing something obvious so really would appreciate any help you could provide.

The yaml:

esphome:
  name: "display-epaper01"
  friendly_name: Display-epaper01

esp32:
  board: esp32dev
  framework:
    type: arduino

logger:

api:
ota:
  - platform: esphome

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

captive_portal:

color:
  - id: color_black
    red: 100%
    green: 100%
    blue: 100%
    white: 100%
  - id: color_red
    red: 100%
    green: 0%
    blue: 0%
    white: 0%

font:
  - file: '/config/Fonts/Comic Sans MS.ttf'
    id: font1
    size: 20

spi:
  clk_pin: GPIO13
  mosi_pin: GPIO14

display:
  - platform: waveshare_epaper
    id: waveshare
    cs_pin:
      number: GPIO15
      ignore_strapping_warning: True        
    dc_pin: GPIO27
    busy_pin: 
      number: GPIO25
    reset_pin: GPIO26
    reset_duration: 2ms
    model: 4.20in-bV2-bwr
#    model: 4.20in-bV2
#    model: 4.20in
    update_interval: 60s
    lambda: |-
      it.printf(25, 25, id(font1), color_black, "Hello World:");

What happens if you leave the color_black out of your print statement?

Thanks for your response, @zoogara ! I have tried that and variations of colour statements such as color_red, id(color_black), and Color::BLACK

At no time have I had any indication of any text or anything else on the screen - it is almost as if the screen is disconnected or powered off (or I have two faulty screens or two faulty driver boards - but I think that unlikely!)

For the my waveshare 7.5 inch BWR I use COLOR_ON or no color parameter. Since the last does not work I assume that is not it. Unless, some drivers at some point had colors inverted. For white I use all components set to 0, even the white component.

I have a 7.5 inch, which has busy pin inverted. That differs per device and should not be set the wrong way as in the long term that might cause problems. But it does not hurt to try to change it, the effect is only after prolonged use.

In case there’s something about the font I’d put in filled rectangles in various colors.

How is the display connected? With the 7.5 I got a board to go between that I did not need. I put the band cable in directly. Are you sure it is in the right way and clamped tight using the lever? Is your power supply adequate? Do you see any kind of refresh cycle when powering on?

What does the log say when running?

Not sure if it should matter, but did you include the device in HA? You did enable the api.

Thanks for your response, @Edwin_D

I have tried inverting the busy pin - it made no difference, unfortunately.

I have the desplay connected by the ribbon cable directly into the driver board with the metallic side up (it arrived with the extension cable installed that way up) - I did try it the other way, too

There is no refresh cycle - or any other indication of life on the display - it is as if it is not powered at all.

I hadn’t thought about font issues so tried the shapes as you suggested and, again, no display at all.

The logs don’t show any display-related entries (except the one about taking a long time, that I gather is not unusual)

Yes, I did include the device in HA and the power supply is a 2A one that should be adequate.

You mention a COLOR_ON or no color parameter - I have not seen this documented; how is it used? Where is it entered?

Thanks again!

That all sounds pretty normal, except for no refresh cycle. Without that nothing will show.

The log saying display takes long is happening for me too, and indicates it does try to call the display function.

The COLOR_ON is defined by ESPHome I think for displays that use a single bit instead of color values as pixels. Even the 3 color display actually uses two display buffers in bits, one for black and one for red.

Are you sure the board is what you configured, a three color waveshare display? The two color is different. I cannot find the type numbers you mention online.

Waveshare doesn’t have any demo code for it? Arduino code?

This is what I ordered and it looks like that - but I haven’t seen it working yet to confirm the colours available! 400x300, 4.2inch E-Ink raw display, three-color, SPI interface, without PCB | WFT0420CZ15

I have update defined - I presume this is what you mean by refresh? I have dropped it in stages all the way to 1S and there is no display. I’ve also used component.update: but, again, no display.

I shall have to do that - I only really know ESPHome development environment so was trying to avoid the learning curve of their code as it is very different - but it looks like I’ll need to.

There’s likely not so much of l-curve to upload a demo code to see if it’s alive. If yes, you know you need to work on esphome, if not, you probably have hw issue.