Esphome Stream Deck replacement

I’ve been exploring replacing my xl streamdeck with something cheaper and more flexible. This is the current version, a 7inch waveshare screen (about £30 from aliexpress), leveraging the great work contributors on discord have already made to getting this screen working, plus inspiration from this repo (GitHub - agillis/esphome-configs: ESPHome config files for my devices). I’ve also setup webhooks (GitHub - adnanh/webhook: webhook is a lightweight incoming webhook server to run shell commands) on my mac to allow me to launch apps over the local network. I’ve made a simple stand if anyone needs one (Waveshare 7inch Esphome screen stand by jtenniswood - Thingiverse)

Link to my code… GitHub - jtenniswood/esphome-lvgl

6 Likes

Hi, I haven’t tried this display yet but I do have some questions

  1. Does the screen stay dimmed or just turns off after not in use? Or do you just have it always turned on

  2. if the display is off, do you just touch it to wake it up or is there like a motion use that you’re using to turn on the screen?

Yes you can do a timer for turning off the backlight, but in my case I have it in a room with a proximity sensor so have set it so the screen turns off when I’m not in in the room.

There’s good documentation for backlight control and screen saving methods in the docs site, under LVGL.

I wrote a modular package for small ESP-32 screens. The OP linked to it in the original post. The default setup for me is to keep the screen on all the time during the day at 100% brightness, dim to 50% at sunset and go off at midnight. It you touch the screen after midnight it will come back on for 10 minutes. This seems to work very well.

1 Like

Wow @jtenniswood, that looks amazing. Do you have a link to the screen you used?

Also do you have a link to your code?

Would it not be easier to just remove the screen completely?

Doh! Yes I meant not in the room.

There’s a function where it will make screen look like static, to avoid burn in (that will apparently happen regardless of if the backlight is on or not), so dimming the screen might not be the best idea (but maybe a timer to dim and then turn off, in order for the static to be shown and increase the screen longevity).

Sorry I thought I’d put that in, the code is here…

Screen is here…
https://www.aliexpress.com/item/1005006944180228.html?spm=a2g0o.order_list.order_list_main.47.5c0218021GtG1X

but in case it disappears (seems to be the case on aliexpress), search for either waveshare 7" or ESP32-S3 7 Inch 800x480 LX7, you want the ones with the large black bezels (obviously!)

You can often see the board has ESP32-S3-Touch-LCD-7 printed on it.

1 Like

I think the URL for the display on aliexpress is: https://www.aliexpress.us/item/3256806793223794.html .

At least that’s the one bought to play with.

1 Like

I’m interested in this because I want to do something using ESPHome and a display, so I ordered one of these. It boots up and I see sample pages and can verify the touchscreen works.

However, I can’t connect to it with a USB connection to install ESPHome. I’m using a Mac, which has some extra security issues that I hear Windows and Linux don’t have. I’m using this page on the ESPHome site to try to do a first install. I found when I plugged my USB cable into the port labelled USB, my computer does not see the device. When I plug my USB cable into the UART1 port, I see USB Single Serial (cu.usbmodem58960348321) - Paired as a serial port option and I pick that to connect to. The web page says it’s connected, but when I try to do the actual install, I get this:
Screenshot 2024-11-18 at 8.24.04 AM
I’ve tried variations of holding down the BOOT and RESET buttons, but I always get the same message.

What did you do to get ESPHome on this for the first time?

I don’t use a mac but this is drivers needed for mac.

The screen needs a driver for the “CH343 USB UART”.
Waveshare has instructions on the install process on this page.
( https://www.waveshare.com/wiki/CH343_USB_UART_Board )
look for MACOS.

This might be of help as well:
GitHub - WCHSoftGroup/ch34xser_macos: MacOS USB driver for USB to serial chip ch340, ch341, ch342, ch343, ch344, ch9101, ch9102, ch9103, etc

1 Like

Thanks - easy driver install. When the web page said it was connected, I figured it was communicating, so I didn’t even think about needing drivers.

A few notes for others trying this:

When I first tried to set this up, even after installing the driver, it was working when I plugged my USB-C cable into the UART1 socket. I used the web installer at the link I gave in my post above and it installed. It could not setup my wifi. I waited and tried it again, still no joy. I changed the USB-C fable from UART1 to USB and give it a minute or so. Still no luck with wifi, but after waiting another minute or two, I found I was able to set it up.

From there, I was able to do communicate normally with it.

1 Like

Tangential to this topic, in another thread, I’m setting up the same hardware for another use and found the initial setup easy, with help from some others. I’m keeping that thread updated with what i learn so it’s a guide for general setup of this screen with LVGL.

While this thread is about using the screen as a touch screen control panel, the other thread is for a different use: As a message board or sign. My intent is to make a warning sign that I can put outside my workshop that will let people know when I’m using my CNC or laser. The controls for those devices are also connected to HA, so when one of them is turned on, a warning will come up on this screen to wear safety goggles.

I may also, once I get all this done, set up a doorbell function so when I’m using the CNC, which can make noise, people can touch a button on the screen to let me know they’re at the door and don’t know if it’s safe to come in.

OK, I’ve spent almost an hour trying to search for different combinations of things to find this documentation, but I give up. I’ve ordered one of these screens and have a need to do dimming control along with on/off, so if someone could post a link to the docs referenced so I can figure out dimming, that would be great.

I found this:

It might have enough to get you started. It does on/off control, so you would need to add PWM to it for backlight brightness control.

I didn’t see anything obvious in the esphome documentation either, so perhaps not so good documentation there for those that don’t already know how to do it or what to search.

Searching on the phone doesn’t work so well. This page is very long and does not go to the anchor tag:

these are good sections on that page
Turn off screen when idle
Prevent burn-in of LCD

It looks like you don’t have the edges of the glass protected at all. It’s very easy to break, the glass is too thin, I’ve already broken mine ( Be careful.

1 Like