A UI-Focused Display Library For The ESP32

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!

13 thoughts on “A UI-Focused Display Library For The ESP32

          1. 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…)

      1. 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.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.