ESP32uesday: LovyanGFX High-Performance Graphics Library

The eventual goal of all this mucking about with the ESP32-S3 LCD peripheral is to improve the performance of the Adafruit_GFX library that underlies a ton of projects. This could take some time. If you need something performant right away, consider LovyanGFX as an alternative graphics library. You can locate and install it through the Arduino Library manager.

This is not a drop-in replacement for Adafruit_GFX. While many functions are named and function similarly, other aspects work quite differently, such as screen initialization and the whole idea of “canvases” (Adafruit_GFX) vs “sprites” (LovyanGFX). Thus…existing Adafruit_GFX projects won’t just copy-and-paste run under this other system…and once adapted to LovyanGFX, won’t directly copy back. There’s a lot of overlap, but they’re not congruent.

LovyanGFX gets much of its speed by focusing on DMA and high-speed peripherals only present on the ESP32 family, RP2040 and SAMD51. Primitive microcontrollers like the AVR line are left out. Performance then is stunning…as you can see in the banner image, one of the example programs running on an ESP32-S3 with 8-bit parallel ILI9341 display is animating an absurd number of sprites at 130 frames per second (the LCD can only refresh at about 70 Hz, so there’s plenty of overhead to do more interesting things with all those free cycles).

We have hundreds of existing published Adafruit_GFX projects (many using AVR), so we can’t simply switch over to this as “the new GFX.” But we do want to improve performance, and there no doubt will be lessons here. If you need that performance today and don’t mind the diverging API…well, there you go!


Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Join 35,000+ makers on Adafruit’s Discord channels and be part of the community! http://adafru.it/discord

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Follow Adafruit on Instagram for top secret new products, behinds the scenes and more https://www.instagram.com/adafruit/

CircuitPython – The easiest way to program microcontrollers – CircuitPython.org


Maker Business — Moving manufacturing out of China

Wearables — Take control of your LED sequins

Electronics — Current limiting!

Python for Microcontrollers — Python on Microcontrollers Newsletter: CircuitPython Day Friday, Python Still #1 and much more! #CircuitPython @micropython @ThePSF @Raspberry_Pi

Adafruit IoT Monthly — Detect Radiation, ML Baby Monitor, and more!

Microsoft MakeCode — MakeCode Thank You!

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — JP’s Product Pick of the Week — 4pm Eastern TODAY! 8/16/22 @adafruit @johnedgarpark #adafruit #newproductpick

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !



No Comments

No comments yet.

Sorry, the comment form is closed at this time.