Display Drivers Example
This example is designed to show how the display_drivers component can be used
to drive various different displays with LVGL and a simple GUI (that is
contained within the example: main/gui.hpp). It demonstrates both the
object-style display-controller API and the shared SPI transport helpers used by
the BSPs in this repository.
Demo
Below can be seen what the demo looks like on the T-Encoder-Pro devkit:
https://github.com/user-attachments/assets/fef57074-bab7-4fdf-a25e-f4590773c926
Here it is running on the ALXV Labs Byte90:
How to use example
Hardware Required
This example can be configured to run on the following dev boards:
ESP32-WROVER-Kit
TTGO T-Display
ESP32-S3-BOX
Smartknob-HA
T-Encoder Pro
ALXV Labs Byte90
Configure the project
idf.py menuconfig
When configuring the project, select the Display Drivers Example Configuration
value that matches the board you’ve selected (must be one of the boards
mentioned above.)
Build and Flash
Build the project and flash it to the board, then run monitor tool to view serial output:
idf.py -p PORT flash monitor
(Replace PORT with the name of the serial port to use.)
(To exit the serial monitor, type Ctrl-].)
See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.
Example Breakdown
The example has the following functionality:
Uses the shared
espp::Spiwrapper for the display bus on every supported boardUses
espp::SpiPanelIofor standard command/data SPI panelsKeeps the T-Encoder Pro quad-SPI path on
espp::Spi::Device, since that panel needs custom multi-line transactionsExercises the object-style controller classes from the
display_driverscomponentGuiclass (contained inmain/gui.hpp) which encapsulates some very basic LVGL components into an object that manages gui update task and synchronization.