/WT32-SC01-PLUS-LVGL-IDF

WT32-SC01 (ESP32) & WT32-SC01-Plus (ESP32-S3) + LOVYANGFX + LVGL9.x using ESP-IDF (C++)

Primary LanguageC++MIT LicenseMIT

Wireless Tag WT32-SC01 / Plus (3.5" TFT Touch Display)

Design adapts to different screen resolution without any code changes.

ESP32/ESP32-S3 + ESP-IDF + LVGL9.X + LOVYANGFX

Wireless Tag WT32-SC01 (ESP32 + 3.5" TFT with Capacitive Touch)

device

Wireless Tag WT32-SC01 Plus (ESP32-S3 + 3.5" TFT with Capacitive Touch + SD Card)

device

Features included

  • Support for updating UI from different tasks [lvgl_acquire/lvgl_release]
  • UI code separation into gui.hpp
  • Same UI code which adapts to different resolutions
  • Supports shared SPI bus for SD Card - here
  • This Readme below explains how to have same project target different ESP32 / ESP32-S3 controller.
  • Switch between devices using just a header file inclusion
  • Add your own controller/display with just a header change
  • Shows battery meter animation using timer - here
  • Shows SD card status change with icon
  • Switch theme between Light & Dark - here
  • Scrolling long message in footer - here
  • Rotate screen Landscape/Portrait here

Todo List

  • Settings Page
  • Wi-Fi Config Page
  • BLE Config Page
  • OTA Update Page

Demo of LVGL Widgets using Wireless Tag WT32-SC01 / Plus with Capacitive Touch

Wireless Tag WT32-SC01 (ESP32 + 3.5" TFT with Capacitive Touch)
Wireless Tag WT32-SC01 Plus (ESP32-S3 = 3.5" TFT with Capacitive Touch + SD Card)

Get Started

Git clone and recursively update submodule

# Clone repo and update submodules (LovyanGFX + LVGL)
git clone https://github.com/sukesh-ak/WT32-SC01-PLUS-LVGL-IDF.git
cd WT32-SC01-PLUS-LVGL-IDF
git submodule update --init --recursive

# Update submodules (LovyanGFX + LVGL)
git submodule foreach git pull

Separate build folder for ESP32 & ESP32-S3

Check settings in CMakeLists.txt here

WT32-SC01 - ESP32

# set target and build,flash,monitor
idf.py -B build-esp32 set-target esp32 build
idf.py -B build-esp32 -p COM6 flash monitor

WT32-SC01 Plus - ESP32-S3

# set target and build,flash,monitor
idf.py -B build-esp32s3 set-target esp32s3 build
idf.py -B build-esp32s3 -p COM3 app-flash monitor

Setup custom lvgl config - ESP-IDF

Check settings in CMakeLists.txt here

#LVGL custom config file setup
idf_build_set_property(COMPILE_OPTIONS "-DLV_CONF_INCLUDE_SIMPLE=1" APPEND)
idf_build_set_property(COMPILE_OPTIONS "-I../main" APPEND)

Display Compile Time Information

Check settings in CMakeLists.txt here

# Display Compile Time Information
message(STATUS "--------------Compile Info------------")
message(STATUS "IDF_PATH = ${IDF_PATH}")
message(STATUS "IDF_TARGET = ${IDF_TARGET}")
message(STATUS "PROJECT_NAME = ${PROJECT_NAME}")
message(STATUS "PROJECT_DIR = ${PROJECT_DIR}")
message(STATUS "BUILD_DIR = ${BUILD_DIR}")
message(STATUS "SDKCONFIG = ${SDKCONFIG}")
message(STATUS "SDKCONFIG_DEFAULTS = ${SDKCONFIG_DEFAULTS}")
message(STATUS "CONFIG_LV_CONF_SKIP = ${CONFIG_LV_CONF_SKIP}")
message(STATUS "COMPILE_OPTIONS = ${COMPILE_OPTIONS}")
message(STATUS "---------------------------------------")
message(STATUS "CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}")
message(STATUS "CMAKE_BINARY_DIR = ${CMAKE_BINARY_DIR}")
message(STATUS "---------------------------------------")