ESP32-TUX - ESP32 / ESP32-XX Touch UX Template using LVGL to get you started
Your sponsorship would help me not only to maintain this project but also to work on a version 2
of this project with LVGL v9
support and other useful additions. If you're an individual user who has enjoyed my projects or benefited from my community work, please consider donating as a sign of appreciation. If you run a business that uses my work in your products, sponsoring my development makes good business sense: it ensures that the projects your product relies on stay healthy and actively maintained. I am also available in case you have custom HMI requirements.
Thank you for considering supporting my work!
Remember this is a template so make it your own as per your needs.
You only need a USB Cable and Browser to install and test on your device.
Entire UI consists of Header, Footer and TUX_PANEL widgets.
// Create the Panel instance with title
// 200px height and it can also be LV_SIZE_CONTENT or LV_PCT(100)
// Leave title empty if you don't need a title.
lv_obj_t *panel1 = tux_panel_create(parent, LV_SYMBOL_EDIT " CONFIG", 200);
// Set the common panel style
lv_obj_add_style(panel1, &style_ui_island, 0);
// Set title color to RED
tux_panel_set_title_color(panel1, lv_palette_main(LV_PALETTE_RED));
// Set title background color to BLUE
tux_panel_set_title_bg_color(panel1,lv_palette_main(LV_PALETTE_BLUE))
// Set height of tux_panel to 300
tux_panel_set_height(panel1,300);
// Set background color of content area to GREEN
tux_panel_set_content_bg_color(panel1,lv_palette_main(LV_PALETTE_GREEN))
// Get Content Area of the panel to add UI elements
lv_obj_t *cont1 = tux_panel_get_content(panel1);
// Add Label to the content area
lv_obj_t *lbl_version = lv_label_create(cont1);
lv_obj_set_size(lbl_version, LV_SIZE_CONTENT, 30);
lv_obj_align(lbl_version, LV_ALIGN_CENTER, 0, 0);
lv_label_set_text(lbl_version, "Firmware Version 1.1.0");
Devices | WT32-SC01 | WT32-SC01+ | ESP32S3SPI35 | ESP32S335D |
---|---|---|---|---|
Manufacturer | Wireless-Tag | Wireless-Tag | Makerfabs | Makerfabs |
MCU | ESP32 | ESP32-S3 | ESP32-S3 | ESP32-S3 |
Display Size | 3.5" | 3.5" | 3.5" | 3.5" |
Resolution | 480x320 | 480x320 | 480x320 | 480x320 |
Display Controller | ST7796 | ST7796UI | ILI9488 | ILI9488 |
Display Interface | SPI | 8Bit Parallel | SPI | 16Bit Parallel |
Touch Controller | FT5x06 | FT5x06 | FT5x06 | FT5x06 |
Flash Size | 4MB | 8MB | 16MB | 16MB |
PSRAM Size | 4MB | 2MB | 2MB | 2MB |
Wi-Fi | Yes | Yes | Yes | Yes |
Bluetooth | BT/BLE 4.x | BLE 5.x | BLE 5.x | BLE 5.x |
SD CARD | No | Yes | Yes | Yes |
OTG | No | Yes | Yes | Yes |
Datasheet | ||||
Purchase Link | BUY | BUY | BUY | BUY |
Flash & PSRAM specifications are as per what I received.
Make sure you have installed ESP-IDF 5.0 (released version) and working from the command-line.
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)
Check settings in CMakeLists.txt here
This enables you to have separate build folder, in case you use multiple devices with different controller variants like ESP32 vs ESP32-S3.
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 "---------------------------------------")
FREE - WT32-SC01 - 3D enclosure on SketchFab website
FREE - WT32-SC01 - 3D enclosure on Cults3d by DUANEORTON
PAID - WT32-SC01 - 3D enclosure on Cults3d by PRINTMINION
PAID - WT32-SC01 - 3D enclosure on Cults3d by TOMCASA