Discussion 19

Add a comment
arhills

I too would like this please, by the way this is an excellent project.

Original on GitHub

MaxGramser

@Cjdavidson Could you test it? I've added experimental support for the ESP32-S3-Touch-LCD-7 (800 × 480) in ESP Screen Manager 0.2.110.

After updating the add-on, choose Waveshare 7 inch (experimental) under New screen. Camera images are enabled. The backlight stays on for now, with dimming and standby disabled pending hardware tests.

I haven't tested it on a physical 7-inch board yet. Please let me know how boot, display, touch and camera images behave. The board guide has the details and testing checklist.

Original on GitHub

arhills

I will give it a try as soon as I get a chance, may not be today. Thanks

Original on GitHub

Cjdavidson

· Edited

Thank you for an excellent project works really well on my Waveshare 7".

1 Board revision and flash size, successful boot, pairing and appearance in ESP Screens. Board Ver 1.1, 16MB, Reboot Soft and Hard OK, Pairing all good and appearance in ESP Screens perfect. 2 Correct colours and a stable picture across several page changes and cold starts.
All Good 3 Physical taps near each corner, slider drags and edge swipes, in the selected orientation.
All Good 4 A full page of tiles, opening and closing the settings and detail cards, and the half-turn setting.
All Good 5 Camera tile pictures, full-screen camera images and camera alerts, including repeated opens and closes.
All Good

My back light has a mod on it so HA can change the values. Mod Link

Backlight LED

output:
  - platform: ledc
    pin: GPIO16
    id: gpio_backlight_pwm
    frequency: 100Hz

light:
  - platform: monochromatic
    output: gpio_backlight_pwm
    name: Display Backlight
    id: display_backlight
    restore_mode: ALWAYS_ON
    default_transition_length: 1s
    gamma_correct: 2.8

Is it possible to have the light button change colour when on/off. Its really hard to see when the light is on if its the same colour as the icon.

Original on GitHub

MaxGramser

Thank you, that is good to hear. And thank you for running the whole checklist: that is the first full pass on a real 7-inch, and it tells me the profile can drop "experimental" soon.

Your backlight mod: you can have real dimming today

No new release needed. Every screen ESP Screens installed keeps a small file of its own that is loaded after the shared package and stays in place when the app updates. Open your screen, press ··· and choose Override YAML (advanced), then paste this and change GPIO16 to the pin you soldered to:

substitutions:
  BACKLIGHT_DIMMABLE: "true"

output:
  - id: !remove gpio_backlight_pwm
  - platform: ledc
    id: gpio_backlight_pwm
    pin: GPIO16
    frequency: 1000Hz

switch:
  - platform: output
    id: backlight_enable
    output: backlight_line
    restore_mode: ALWAYS_ON
    internal: true

Press Save & check (ESPHome validates the complete profile), then Update firmware to rebuild and install.

What it does: your PWM output takes over the id the firmware's backlight already uses, so the light, the brightness setting and every script stay exactly as they are. They just reach a dimmer now. The switch keeps EXIO2 high, which the panel needs to light at all. After the rebuild the screen's own Settings page has a Brightness row, and the Normal brightness entity in Home Assistant starts doing something instead of nothing.

Two things to know:

  • ESP Screens' own Screen settings panel still hides that brightness row, because it reads "this board cannot dim" from the board list rather than from your screen. I am going to let a screen report that itself, so a modded board is followed everywhere.
  • Standby and night mode stay switched off in this build. With your mod the backlight's boost converter stays powered and only the duty goes to zero, so the problem that made me disable them on the 4.3-inch board cannot happen the same way, but I have not measured it. I would rather look at that separately than have you hunt a reset.

I have checked that this config resolves correctly, but not on a modded board: you would be the first. If it works I will put it in the 7-inch guide and credit you.

If you ever build this screen outside ESP Screens, the same lines work in your own YAML.

The light tile: which one are you looking at?

I want to fix the right thing. The icon and the circle behind it should take the light's colour while it is on (a colour bulb takes its own colour) and go grey when it is off, while the card itself stays white. So either that is not reaching your board, or it is reaching it and it is too subtle on a 7-inch at arm's length.

Could you tell me:

  • the tile size: normal (one cell), double (two cells wide) or full page?
  • which light: a colour bulb, a warm-white dimmer, or a plain on/off switch? A very pale bulb reports an almost-white colour, which is exactly the case where "on" is hard to tell from grey.
  • light or dark mode?

A photo of the page with the light on and one with it off would settle it in one go.

Original on GitHub

Cjdavidson

· Edited

Thank you, The Dimming of the backlight works it dimms to dark @ 40%.

The light button is normal and is a warm-whit dimmer bulb.

Toilet Light Off

Image

Toilet Light On

Image

Its not very noticeable when on.

Original on GitHub

MaxGramser

Thank you for the photos, and good to hear the dimming works. A full page of tiles on the 7-inch looks great.

Thank you for spotting this one as well: your two photos show exactly what is wrong, and it is a real bug.

A tile takes the lamp's own colour while it is on, straight from Home Assistant. Your bulb runs near white, so the screen got near white: the icon went from grey to almost white and the circle behind it from dark to pale. That is a change in brightness, not a change in colour, which is why it does not catch your eye across the room.

Home Assistant does not hand its own tiles the raw colour either. It lifts anything under 40 % saturation to 40 % first, so a pale bulb still gets a colour you can see. Under 10 % there is nothing left to lift and it only dims the white a shade, which works on a white card but says nothing on a dark card or on a card with a colour of its own, like your blue one.

Fixed in firmware 0.2.98, add-on 0.2.119, out now:

  • a lamp colour under 40 % saturation is lifted to 40 %, exactly as Home Assistant does
  • a bulb that is white (under 10 % saturation) keeps the amber that every other lamp on a tile has, instead of an almost white icon
  • a bulb with a colour of its own is untouched: a warm white at 2700 K, a red, a green all still show their own colour

Update the add-on, then press Update firmware on the screen. Your Toilet Light should turn amber the moment it is on.

The backlight going dark at 40 %

That is the LED driver rather than the code: below roughly 40 % duty it stops lighting. ESPHome can map the whole slider into the part that works, so add two lines to your override:

output:
  - id: !remove gpio_backlight_pwm
  - platform: ledc
    id: gpio_backlight_pwm
    pin: GPIO16
    frequency: 1000Hz
    min_power: 40%
    zero_means_zero: true

min_power makes 1 % on the screen the lowest duty that still lights, so the range you can actually use is spread over the whole setting, and zero_means_zero keeps 0 completely dark. Raise or lower the 40 % until the bottom of the slider is as dim as your board can go.

I will put the mod in the 7-inch guide with the credit that it was measured on your board.

Original on GitHub

MaxGramser

Both things I said I would do are in, in add-on 0.2.120 with firmware 0.2.99.

The 7-inch guide carries your mod

docs/WAVESHARE7.md now has a section on it: the wire and the two pins people reach it by, the Override YAML that turns the backlight into a real dimmer, min_power for a driver that stays dark below roughly 40 % duty, and what is still untested on this board (standby and night mode). It says it was measured on your board, revision 1.1.

ESP Screens follows your screen instead of its own table

This was the loose end I mentioned. The app used to read two facts from a table it keeps per board: whether the backlight takes levels, and whether the screen can go dark. That is right until someone changes the board, which is exactly what you did.

A screen now reports what it is able to do itself, in a Screen features diagnostic sensor, and the app trusts that over its table. After you update, the brightness row appears in Screen settings in the app too, the same row your screen's own settings page already had. The table stays for firmware from before this release and for a screen that is offline, so nothing changes for anyone who did not touch their board.

Standby and night mode stay off on the 7-inch. That is still the untested part, not a table.

Update the add-on, then press Update firmware on the screen. If that brightness row shows up in Screen settings, the mod side of this issue is done as far as I am concerned, and the only thing left here is the experimental label on the board itself.

Original on GitHub

chrisrock1984

there is also a 1024x600 version -> https://docs.waveshare.com/ESP32-S3-Touch-LCD-7B

should i create a separate ticket?

Original on GitHub

MaxGramser

Yes, please open a separate issue for the 7B, with what you wrote here in it.

It is a different board: 1024 x 600 on another panel, so it needs its own panel timings, its own grid of tiles and its own entry in New screen. This issue is about the 800 x 480 ESP32-S3-Touch-LCD-7 and is nearly done, so the 7B is better off in a thread of its own.

To be straight with you about the timing: I will pick it up when I have time for it again, and I do not know when that is. A ticket is where I look, so it will not get lost in the meantime.

Two things worth putting in it: the board revision and the flash size, and whether you have one in hand to test on. That last part is the bit I cannot do from here. This 7-inch only got as far as it did because someone with the board walked through the checklist.

Original on GitHub

chrisrock1984

Yes, please open a separate issue for the 7B, with what you wrote here in it.

It is a different board: 1024 x 600 on another panel, so it needs its own panel timings, its own grid of tiles and its own entry in New screen. This issue is about the 800 x 480 ESP32-S3-Touch-LCD-7 and is nearly done, so the 7B is better off in a thread of its own.

To be straight with you about the timing: I will pick it up when I have time for it again, and I do not know when that is. A ticket is where I look, so it will not get lost in the meantime.

Two things worth putting in it: the board revision and the flash size, and whether you have one in hand to test on. That last part is the bit I cannot do from here. This 7-inch only got as far as it did because someone with the board walked through the checklist.

no stress please, what you do is already a lot of work! thank you for that. I have created a new feature request and would offer to test the first implementation when ready.

Original on GitHub

MaxGramser

@Cjdavidson thank you for writing to me about this, and for digging into it yourself. Answering here as well, because the next person with a 7 inch will search for exactly this: a backlight that went out while changing the brightness and would not come back.

The CH422G is in the code. The shared package drives EXIO2, the line that lets the panel light at all, and holds it high after boot. There is a catch though, and it is the one you ran into: on a stock board that line is raised inside the template output named gpio_backlight_pwm, and the backlight mod replaces exactly that output with a ledc one. An override that only swaps the output therefore drops the line that keeps the panel alive. That is why the snippet in the guide has a small switch beside the output:

switch:
  - platform: output
    id: backlight_enable
    output: backlight_line
    restore_mode: ALWAYS_ON
    internal: true

What most likely turned your screen off is the missing min_power. You measured it yourself earlier in this thread: your panel is dark below roughly 40 percent duty. The brightness setting runs from 5 to 100, so turning it down walks straight past the point where your LEDs stop lighting, while the firmware still believes the screen is on. And from a dark screen you cannot reach the settings page to turn it back up, which is the part that made it feel like a dead panel.

min_power: 40% maps the whole setting onto the range your board actually lights at, so the lowest setting is as dim as the panel can go and never darker:

substitutions:
  BACKLIGHT_DIMMABLE: "true"

output:
  - id: !remove gpio_backlight_pwm
  - platform: ledc
    id: gpio_backlight_pwm
    pin: GPIO16
    frequency: 1000Hz
    min_power: 40%
    zero_means_zero: true

switch:
  - platform: output
    id: backlight_enable
    output: backlight_line
    restore_mode: ALWAYS_ON
    internal: true

That is the whole override, in the screen's own Override YAML under ···, with GPIO16 replaced by the pin your wire goes to. It went into the guide this morning, after your last report here, so you will not have seen it yet: Dimming with the backlight mod.

Two more things from your own YAML that are worth knowing:

  • One light, not two. The package already has a light on that output, and the brightness setting, the scripts and Home Assistant all reach the backlight through it. A second light: on the same output means two owners writing the same duty, and whichever wrote last wins; switching yours off writes zero and nothing writes again until the setting itself changes. The !remove plus the same id keeps one owner and gives it a real dimmer.
  • The way back from a dark screen is Home Assistant, not the glass: raise number.<screen>_normal_brightness. Worth remembering while you are finding the right min_power for your board.

And a small thank you in return: the other thing you asked here, a light tile that is clearly on rather than the same colour as when it is off, shipped in 0.2.119. A lamp that is on now shows its own colour, warm white included, the way Home Assistant does it.

Two questions back, when you have a moment:

  1. Which override was on the screen when it went dark, the one from the guide or the snippet you posted earlier? That tells me whether the enable line or min_power was the thing missing.
  2. Would you want the mod as two lines instead of a component swap, something like BACKLIGHT_PWM_PIN: GPIO16 and BACKLIGHT_MIN_POWER: 40% in the board package itself? Then the enable line cannot be lost by hand at all. If you say it is worth it, I will build it.

Like my work? Consider buying me a coffee, much appreciated!

Original on GitHub

Cjdavidson

· Edited

Thanks got it back and working.

One thing there is no Standby, Night, Sleep and Wake options in the setting page.

EDIT: I still think it would be good if the Icon in the light button is yellow and not the colour of the light its self.

"Two questions back, when you have a moment:"

1.Which override was on the screen when it went dark, the one from the guide or the snippet you posted earlier? That tells me whether the enable line or min_power was the thing missing. It was the one in the guide.

  1. Would you want the mod as two lines instead of a component swap, something like BACKLIGHT_PWM_PIN: GPIO16 and BACKLIGHT_MIN_POWER: 40% in the board package itself? Then the enable line cannot be lost by hand at all. If you say it is worth it, I will build it. Yes its worth it. Thanks

Original on GitHub

arhills

Done a quick build this morning and its booted fine, put one tile on now updating both screens to latest version, so will check other stuff works fine if I get a chance later.

Original on GitHub

Cjdavidson

· Edited

CAN_STANDBY: "true"

I have put this in the override yaml and it works on the panel to show Sleep/Wake and Night options but it's not seen in HA ESPHome integration. I would like the sleep and wake to work in HA.

Original on GitHub

MaxGramser

Thanks, that was a gap: CAN_STANDBY turned standby on in the firmware, but the Wake, Sleep and standby entities stayed hidden from Home Assistant regardless. From app 0.2.131 they follow the same flag. Keep CAN_STANDBY: "true" in your override, update the add-on, then press Update firmware once and the buttons show up in the ESPHome integration.


Like my work? Consider buying me a coffee, much appreciated!

Original on GitHub

arhills

I tried CAN_STANDBY: "true" in the yaml override. and when validating the yaml I get this fail. Any clue why?

`ESPHome: config Failed config

packages: [source /homeassistant/esphome/inch.yaml:13]

[CAN_STANDBY] is an invalid option for [packages]. Please check the indentation. display: url: https://github.com/MaxGramser/homeassistant_espscreen ref: main files: - [redacted] refresh: 0s local_overrides: IncludeFile(inch.local.yaml) required key not provided

ESPHome config failed; see the log.`

Original on GitHub

MaxGramser

Sorry, that gap in my last reply is on me: I said "keep CAN_STANDBY: \"true\" in your override" without saying exactly where that needs to sit, and that's what tripped up your config.

CAN_STANDBY is a substitution, not a package, so it only works wrapped like this:

substitutions:
  CAN_STANDBY: "true"

And it belongs in the screen's own Override YAML box, not typed directly into inch.yaml. Open the screen in ESP Screens, press ···, choose Override YAML, and add the block above to whatever's already in there (don't replace it). ESP Screens writes that into inch.local.yaml for you, which is the file inch.yaml already includes.

What happened in your case is that CAN_STANDBY: "true" ended up as its own line directly under packages: in inch.yaml, right next to display: and local_overrides:. ESPHome then reads that as an attempt to declare a whole new package called CAN_STANDBY, one that needs a source it doesn't have, which is the "invalid option for packages" error you saw.

Once it's back inside substitutions: in the Override YAML box, press Save & check to validate, then Update firmware once, and Wake, Sleep and the standby/night settings should show up in the ESPHome integration.


Like my work? Consider buying me a coffee, much appreciated!

Original on GitHub

arhills

Thats working should have spotted that myself, but it was early in the morning. Thanks

Original on GitHub

Add your thoughts, a screenshot or a useful link.

Markdown & basic HTML
Paste or drop images · URLs on their own line become previews0 / 10,000
Sign in with GitHub to commentYour draft stays in this browser tab.