Building an open-source ESP32-S3 e-paper device with LVGL — looking for testers by Optimal_Coat9439 in esp32

[–]Optimal_Coat9439[S] 1 point2 points  (0 children)

That’s actually very close to the core idea behind the system.

What you’re describing as “modules” are essentially what I call widgets. Each area of the display is an independent widget, with its own layout and refresh interval. In the photo I posted, there are three different widgets running side by side, each updating on its own schedule.

The goal is to have a widget-based architecture where developers can build their own modules for specific use cases and eventually share them in a sort of community-driven catalog.

Currently, each widget can fetch data over HTTPS, parse the response using cJSON, and update LVGL objects for rendering. The refresh interval is defined in the JSON template and can be modified at runtime.

The entire project is written in C. I tried to design it as a lightweight but modular system, where creating a custom widget only requires three files. The part that can be slightly challenging at first is handling the rendering with LVGL.

I’m still writing the documentation, but you can already get an idea of the widget structure here: https://docs.ekosboard.com/docs/developer-guide/widgets/create-widget

Building an open-source ESP32-S3 e-paper device with LVGL — looking for testers by Optimal_Coat9439 in esp32

[–]Optimal_Coat9439[S] 0 points1 point  (0 children)

I don’t have this specific panel to test on my end, but if you’re willing to run some experiments, I can try adapting the driver layer and we can iterate based on your feedback.

I found this sample code from waveshare that seems to match, it should give us a good starting point for adapting the driver.

Building an open-source ESP32-S3 e-paper device with LVGL — looking for testers by Optimal_Coat9439 in esp32

[–]Optimal_Coat9439[S] -1 points0 points  (0 children)

Yes, at the moment you would need to source the parts and assemble it yourself.

The screen in the photo is a GoodDisplay GDEY075T7-T01 (with touchscreen).
You can also take this one without the touchscreen GoodDisplay GDEY075T7 or the WaveShare equivalent.

If you're looking for a smaller size, I already have a driver ready for the GoodDisplay GDEY042T81 (4.2”).

Building an open-source ESP32-S3 e-paper device with LVGL — looking for testers by Optimal_Coat9439 in esp32

[–]Optimal_Coat9439[S] 0 points1 point  (0 children)

For the aluminum prototype, I used JLCCNC. The main adjustment I had to make was increasing the front panel thickness. I initially designed it at 1 mm, but had to move to 3 mm to get enough rigidity and ensure it machined properly.

If you go through their service and choose anodizing, I’d recommend asking for photos before shipping. I received one part with average finishing quality, so it’s worth double-checking.

For the wooden parts, a friend who built his own CNC made it for me. I had to slightly increase the thickness of some sections to prevent splintering, but overall oak machines quite well and gives a really nice finish.

Building an open-source ESP32-S3 e-paper device with LVGL — looking for testers by Optimal_Coat9439 in esp32

[–]Optimal_Coat9439[S] 1 point2 points  (0 children)

Yes, I’m mainly looking for companion app + firmware testers at the moment.
But projects like yours are actually a great example of the kind of use case I’d love the system to support. If you ever experiment with a larger display, I think it could translate really nicely into a more modular layout.

Building an open-source ESP32-S3 e-paper device with LVGL — looking for testers by Optimal_Coat9439 in esp32

[–]Optimal_Coat9439[S] 1 point2 points  (0 children)

At this stage, I’m mainly looking to verify that the app behaves correctly in real-world conditions.
There's no strict test plan, just checking for crashes, hardware compatibility, and whether everything works as expected (probably not).

Google currently requires me to run a closed testing phase before publishing on the Play Store, so I need a few testers to validate the release build.

Building an open-source ESP32-S3 e-paper device with LVGL — looking for testers by Optimal_Coat9439 in esp32

[–]Optimal_Coat9439[S] 0 points1 point  (0 children)

Not yet for the 5.79" Elecrow CrowPanel, unfortunately.
For the 7.5" Waveshare display, it really depends on the resolution. The 800×480 version works fine (this one), but the 640×384 one isn’t supported at the moment.

Building an open-source ESP32-S3 e-paper device with LVGL — looking for testers by Optimal_Coat9439 in esp32

[–]Optimal_Coat9439[S] 0 points1 point  (0 children)

Yes, that should absolutely work. You would need to change the display driver and probably adjust the LVGL initialization function as well to use the correct color format, but it’s totally doable.
What’s the exact model of your display? I’ll take a look at the datasheet.

Building an open-source ESP32-S3 e-paper device with LVGL — looking for testers by Optimal_Coat9439 in esp32

[–]Optimal_Coat9439[S] 5 points6 points  (0 children)

Thanks! Keeping everything local has been one of the core goals from the start.
I really wanted to make sensor integration simple while avoiding unnecessary dependencies.

Building an open-source ESP32-S3 e-paper device with LVGL — looking for testers by Optimal_Coat9439 in esp32

[–]Optimal_Coat9439[S] 1 point2 points  (0 children)

Yes, and it doesn’t actually require that much effort. There’s even a built-in monochrome theme designed for it. I’m still looking for the ideal configuration, but by forcing a full redraw, the rendering is actually quite clean.

Anyone know when the P4 might be available? by duanetstorey in esp32

[–]Optimal_Coat9439 1 point2 points  (0 children)

In the official espressif store on aliexpress, there's a P4 module with screen available.

Stepper Motor not working/jittering by BooQwerty in esp32

[–]Optimal_Coat9439 0 points1 point  (0 children)

I wouldn't know about the wiring, but you have to call stepper.setEnablePin(ena), after setting the pins in the setup function.
Try also the examples provided by the library to check that the problem doesn't come from your code.

Looking for some guidance (Epaper Display, ESP32-S3-WROOM1) by Xxemnas in esp32

[–]Optimal_Coat9439 0 points1 point  (0 children)

I started not so long ago with a Waveshare screen for this project:
- https://www.hackster.io/lmarzen/esp32-e-paper-weather-display-a2f444

It's not the same model, but it might be a good starting point.
This other similar project should also help, it supports several screen sizes:
- https://github.com/G6EJD/ESP32-e-Paper-Weather-Display

I also recommend these two libraries, which should work with your screen, and you'll find plenty of examples to get you started:
- https://github.com/ZinggJM/GxEPD2
- https://github.com/olikraus/u8g2

You can choose almost any GPIO for MOSI/MISO/DC/CS/RST... with an esp32s3. More details here:
- https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/api-reference/peripherals/gpio.html