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!
Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here: adafruit.com/editorialstandards
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.
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.
Python for Microcontrollers — Python on Microcontrollers Newsletter: CircuitPython 8.1.0 and 8.2.0-beta0 out and so much more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi
Adafruit IoT Monthly — AI Teddybear, Designing Accessible IoT Products, and more!