
C6WiFI
AngeloDuenas/SmartwatchProject
This is an ESP32 demo project showcasing LVGL v7 with support for several display controllers and touch controllers. The demo application is the lvdemowidgets project from the lvexamples repository.

This is an ESP32 demo project showcasing LVGL v7 with support for several display controllers and touch controllers. The demo application is the lvdemowidgets project from the lvexamples repository.
SmartwatchProject is an open-source printed circuit board by AngeloDuenas, from the AngeloDuenas/SmartwatchProject repository on GitHub, published under the MIT licence. It is a 2-layer board with 7 parts on 55 nets, routed with 3 tracks and 1 via.
It is built around the ESP32-S3-WROOM-1-N8, AMS1117-3.3 and DS3231MZ+. Its parts include 5 ICs, 1 capacitor and 1 connector. It belongs with the ESP32 boards of this library.
This is an ESP32 demo project showcasing LVGL v7 with support for several display controllers and touch controllers.
The demo application is the lv_demo_widgets project from the lv_examples repository.
Example demo for TFT displays:

Monochrome support:

The display and touch (indev) controllers are now into it's own repository, you can find it here.
To report any issue or add new display or touch (indev) drivers you can do so in the lvgl_esp32_drivers repo.
This project tries to be compatible with both the ESP-IDF v3.x and v4.0, but using v4.0 is recommended.
Instructions assume you are using the v4.x toolchain, otherwise use the make commands, e.g. instead of running idf.py menuconfig, run make menuconfig.
Clone this project by git clone --recurse-submodules https://github.com/lvgl/lv_port_esp32.git, this will pull this repo and its submodules.
Get into the created lv_port_esp32 directory.
Run idf.py menuconfig
Configure LVGL in Components config->LVGL Configuration. For monochrome displays use the mono theme and we suggest enabling the unscii 8 font.
Configure your display and/or touch controllers in Components config->LVGL TFT Display Configuration and Components config->LVGL TOUCH Configuration.
Store your project configuration.
Build the project with idf.py build
If the build don't throw any errors, flash the demo with idf.py -p (YOUR SERIAL PORT) flash (with make this is just make flash - in 3.x PORT is configured in menuconfig)
LVGL now includes a Kconfig file which is used to configure most of the LVGL configuration options via menuconfig, so it's not necessary to use a custom lv_conf.h file.
It is recommended to add LVGL as a submodule in your IDF project's git repo.
From your project's root directory:
components (if you don't have one already) with mkdir -p components.components directory with git submodule add https://github.com/lvgl/lvgl.git components/lvglidf.py menuconfig, go to Component config then LVGL configuration to configure LVGL.It is recommended to add lvgl_esp32_drivers as a submodule in your IDF project's git repo.
From your project's root directory:
components (if you don't have one already) with mkdir -p components.components directory with git submodule add https://github.com/lvgl/lvgl_esp32_drivers.git components/lvgl_esp32_driversidf.py menuconfig, go to Component config then LVGL TFT configuration and LVGL TFT Display configuration to configure lvgl_esp32_drivers.Using the lv_platformio project add the following lines to platformio.ini file:
[env:esp32]
platform = espressif32
framework = espidf
board = esp-wrover-kitChange the default environment to default_envs = esp32.
Modify the main.c like this:
#include "lvgl.h"
// #include "driver.h"
#include "demo.h"
int app_main(void)
{
lv_init();
/* Initialize your hardware. */
/* hw_init(); */
demo_create();
/* Create the UI or start a task for it.
* In the end, don't forget to call `lv_task_handler` in a loop. */
/* hw_loop(); */
return 0;
}For more information see: platformio with espidf framework compability.
Support for ESP32-S2 variant is Work In Progress. Smaller displays (e.g. 320x240) work fine, but larger ones need testing.
ESP32-S2 has less on-chip SRAM than its predecessor ESP32 (520kB vs. 320kB). This causes problems with memory allocation with large LVGL display buffers as they don't fit into the on-chip memory and external PSRAM is not accessible by DMA.
Moreover, static allocation to external PSRAM is not yet supported (see GitHub issue).
At this momement, the buffers are dynamicaly allocated with DMA capabilty and memory allocator handles the rest.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 10µF | Capacitor_SMD:C_0603_1608Metric | C1 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U8 |
| 1 | DS3231M | Package_SO:SOIC-16W_7.5x10.3mm_P1.27mm | U2 |
| 1 | ESP32-S3-WROOM-1 | RF_Module:ESP32-S3-WROOM-1 | U1 |
| 1 | MAX98357A | Package_DFN_QFN:TQFN-16-1EP_3x3mm_P0.5mm_EP1.23x1.23mm | U6 |
| 1 | MCP73831-2-MC | Package_DFN_QFN:DFN-8-1EP_3x2mm_P0.5mm_EP1.7x1.4mm | U9 |
| 1 | USB_B_Micro | Connector_USB:USB_Micro-B_Molex-105017-0001 | J1 |

AngeloDuenas/SmartwatchProject
This is an ESP32 demo project showcasing LVGL v7 with support for several display controllers and touch controllers. The demo application is the lvdemowidgets project from the lvexamples repository.

nithinmathewjoji/Schrodinger-Clock-PCB-Watch-
An open-source ESP32-S3-based smartwatch with RTC, I2C display, buzzer, LEDs, and battery monitoring. Designed using KiCad, it features a compact PCB layout, Li-Po battery support, and USB charging

HecVelaz/Proyecto-Mburica-
Repositorio central del Proyecto Mburicao: Sistema IoT de monitoreo de nivel de cauces, modelos de predicción con IA y documentación científica


lalithk06/Esp32_Smart_Plug
Hardware reference design for an ESP32-S3 smart plug with mains power conversion, relay switching, RTC support, USB connectivity, and protection components.

ponrajleo/AI-Hardware-ESP32S3-
This project is part of a complete open-source hardware design course on YouTube:

VikramR3/ViRa_Ai_plug
ESP32-S3 mains smart plug: HLK-5M05 isolated supply, SRD-05VDC relay, DS3231M RTC. 2-layer KiCad design.

dhruv1859/CARVantaBAC
🧬 CARVanta Next-Generation Precision Oncology & AI CAR-T Cell Platform Interactive 3D Biological Digital Twin • 3D Neural Bridge • Sentinel HYDRA Biosensor

bansalsaksham/PressLog
Manufacturing-ready PCB design for an industrial IoT downtime-logging edge node. Offline-first firmware architecture, KiCad schematics, Gerbers, and BOM.
7 parts, built around the ESP32-S3-WROOM-1-N8, AMS1117-3.3 and DS3231MZ+. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the AngeloDuenas/SmartwatchProject repository on GitHub, at the commit this page was made from: the board is SmartwatchProject.kicad_pcb and its schematic CustomWiFi - Copy/CustomWiFi - Copy/C6WiFI.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).