A demo LVGL Watch project for ESP32 C3 mini 240*240 touch display development board. Can also be built natively to test the LVGL UI.
ESP32 C3 mini LVGL
ESP32 Watchfaces LVGL
Waveshare ESP32 S3 (240x240 1.28” Round & 240x280 1.69” Rectangular)
- Time (Time, Date, Day, Weather[Icon, Temp]) + Custom Watchfaces
- Weather (City,Icon, Temp, Update time) (1 week forecast [Day, Icon, Temp])
- Notifications (Icon, Time, Text) (List [Icon, Text] - 10 notifications) (Incoming call)
- Settings (Brightness, Timeout, Battery, About)
- Control (Music Control, Find Phone, Bluetooth State) (Camera Capture)
- QR Codes
- A racing game
Select your build environment in platformio. Default is emulator_64bits
native.
When building for native check that you have configured SDL according to your platform. Follow the instructions here https://github.com/lvgl/lv_platformio?tab=readme-ov-file#install-sdl-drivers
The SDL path might be different depending on your configuration and you will need to update platformio.ini
accordingly
The prebuilt native applications have been included in the test folder
, however you might still require SDL installed before running them.
- C3 Mini: https://www.aliexpress.com/item/1005006451631422.html
- Waveshare S3 1.28: https://www.waveshare.com/product/esp32-s3-touch-lcd-1.28.htm
- Waveshare S3 1.69: https://www.waveshare.com/esp32-s3-touch-lcd-1.69.htm
Check out esp32-lvgl-watchface
project to see how watchfaces are converted from binary to LVGL code. You can add more watchfaces but you will be limited by the ESP32 flash size.
In that case you can only compile your favorite watchfaces. Links to the pre-built binary watchfaces are included.
Enable them in app_hal.h
according to your build platform.
This is needed for additional functions on esp32 hardware as listed below.
- Sync time
- Send notifications and call alerts
- Sync weather info
- Sync QR Links (Incomplete)
- Music control, find phone & Camera