If you’re building a project on your ESP32, you might want to give it a fancy graphical interface. If so, you might find a display library from [dejwk] to be particularly useful.
Named roo_display for unclear reasons, the library is Arduino-compatible, and suits a wide range of ESP32 boards out in the wild. It’s intended for use with common SPI-attached display controllers, like the ILI9341, SSD1327, ST7789, and more. It’s performance-oriented, without skimping on feature set. It’s got all kinds of fonts in different weights and sizes, and a tool for importing more. It can do all kinds of shapes if you want to manually draw your UI elements, or you can simply have it display JPEGs, PNGs, or raw image data from PROGMEM if you so desire. If you’re hoping to create a touch interface, it can handle that too. There’s even a companion library for doing more complex work under the name roo_windows.
If you’re looking to create a simple and responsive interface, this might be the library for you. Of course, there are others out there too, like the Adafruit GFX library which we’ve featured before. You could even go full VGA if you wanted, and end up with something that looks straight out of Windows 3.1. Meanwhile, if you’re cooking up your own graphics code for the popular microcontroller platform, you should probably let us know on the tipsline!
Thanks to [Daniel] for the tip!

And lets not forget that https://impulseadventure.github.io/GUIslice/index.html works well too with the EPS32; and comes with a lovely java GUI to design/generate code.
https://lvgl.io/ works well with the ESP32
I agree, why did he go through all that when LVGL does it all and more already.
Why write any code at all when ChatGPT indexed entire GitHub and can make any software you want?
Maybe some people want to be something more than sl*ves to the LLM.
You’re allowed to write “slaves” here.
Some people believe that words are magic spells, that merely speaking them invokes evil joo joo.
How would you feel if everyone around just kept saying “Hitler” all day. Wouldn’t it make you feel uncomfortable and threatened?
(Maybe not if you are a nazi, but that’s another thing…)
lvgl is in many cases too heavy and too complex. roo_display can perfectly work with transparency.
lvgl is modular and simple.
You can just include like 3 files (IIRC) and have a KISS screen you can draw a pixel on.
Hi, I am the author of roo_display.
Lvgl is a fantastic, very well-designed and feature-rich library. It can do many things that roo_display can’t.
That said, I think there are situations where, I think, roo_display might be a better fit:
* roo_display might perform better when RAM is tight. Basic rendering doesn’t allocate buffers on the heap (it uses tiny buffers on the stack). Say, when rendering text, a full glyph is never stored in RAM, so even if you use large fonts, it will not need extra memory.
* it uses somewhat more efficient font compression – i.e. it will use less progmem space.
* it has some features not currently present in lvgl, like Porter-Duff blending modes.
Minimum lvgl works fine where you only have memory for one screen worth of display.
I have no compelling reason to use a different, less mature, library.
The interesting part to me is roo_testing, an experimental ESP32 emulator, which is used in the tests of the library.
Unfortunately, most HaD posts nowadays are just reports about YouTube videos that appeared in our feeds from the usual sources a few days earlier.
..and not much hacking either..