Skip to content

Commit ea2b297

Browse files
committed
boards/xtensa/esp32s3: New board WaveShare ESP32-S3-Touch-LCD-1.28 (WIP).
* New board name is esp32s3-ws-lcd128. * Supports Kconfig delectable w/wo touch variants (gpios difference). * Created board documentation. * Supported configurations: nsh, ostest, coremark, touch-lvgl, notouch-lvgl, watchdog. * Does not have touch panel driver yet. * Work in progress. Signed-off-by: Tomasz 'CeDeROM' CEDRO <tomek@cedro.info>
1 parent faa4d7f commit ea2b297

34 files changed

Lines changed: 3122 additions & 0 deletions

Documentation/applications/examples/lvgldemo/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _lvgldemo:
2+
13
======================
24
``lvgldemo`` LVGL Demo
35
======================
235 KB
Loading
121 KB
Loading
156 KB
Loading
179 KB
Loading
175 KB
Loading
83.5 KB
Loading
171 KB
Loading
52.5 KB
Loading
Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
=================
2+
ESP32S3-WS-LCD128
3+
=================
4+
5+
.. tags:: chip:esp32s3
6+
7+
.. figure:: ESP32-S3-Touch-LCD-1.28.jpg
8+
:align: center
9+
10+
This board definition is a starting point for development with
11+
`ESP32-S3-LCD-1.28 <https://www.waveshare.com/esp32-s3-lcd-1.28.htm>`__ and
12+
`ESP32-S3-Touch-LCD-1.28 <https://www.waveshare.com/esp32-s3-touch-lcd-1.28.htm>`__
13+
which are low-cost ($16/$22) open-source hardware designed by
14+
`WaveShare <https://www.waveshare.com/>`_. High-performance Xtensa based
15+
ESP32-S3 MCU, small size, onboard round 1.28" LCD display, capacitive touch
16+
screen (Touch version only), Li-ion accumulator charge manager, 6-axis sensor
17+
(3-axis accelerometer and 3-axis gyroscope), and quick module attachmend
18+
1.27mm connectors (non-Touch version only), makes it a perfect candidate
19+
for integration into your projects and products quickly.
20+
21+
.. list-table::
22+
:width: 100%
23+
:class: borderless
24+
25+
* - .. figure:: ESP32-S3-LCD-1.28-details-intro.jpg
26+
:target: https://www.waveshare.com/wiki/ESP32-S3-LCD-1.28
27+
:align: center
28+
29+
ESP32-S3-LCD-1.28.
30+
31+
- .. figure:: ESP32-S3-Touch-LCD-1.28-details-intro.jpg
32+
:target: https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-1.28
33+
:align: center
34+
35+
ESP32-S3-Touch-LCD-1.28.
36+
37+
These boards are almost identical. Touch version has touch screen,
38+
while non-Touch version has two connectors exposing more GPIOs at the bottom,
39+
thus slightly different signal routes. Because of that similarity, a single
40+
board definition is provided by NuttX, while features and configuration
41+
details are build time Kconfig selectable.
42+
43+
Both boards are based on existing :ref:`esp32s3` chip implementation.
44+
WaveShare WIKI contians board details, generic examples, documentation, and
45+
schematics for the
46+
`ESP32-S3-LCD-1.28 <https://www.waveshare.com/wiki/ESP32-S3-LCD-1.28>`__ and
47+
`ESP32-S3-Touch-LCD-1.28 <https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-1.28>`__.
48+
49+
.. note:: Implementation is experimental and still early stage of development!
50+
51+
52+
Features
53+
========
54+
55+
- ESP32-S3R2 Xtensa® 32-bit LX7 dual-core processor, up to 240MHz frequency.
56+
- 2.4GHz Wi-Fi (802.11 b/g/n) and Bluetooth® 5 (BLE) with onboard antenna.
57+
- Built in 512KB of SRAM and 384KB ROM, on-chip 2MB PSRAM, external 16MB
58+
W25Q128JVSIQ NOR Flash memory.
59+
- USB-C connector and CH343P USB-to-UART converter (flashing, console).
60+
- Onboard GC9A01A controlled round 1.28" 240×240 resolution 65K color LCD.
61+
- Onboard QMI8658 6-axis IMU (3-axis accelerometer and 3-axis gyroscope).
62+
- Onboard 3.7V MX1.25 lithium battery re/discharge header, ETA6096 charger.
63+
- Touch version:
64+
65+
- CST816S capacitive touch display controller.
66+
- 6 × GPIO exposed over SH1.0 connector.
67+
68+
- Non-Touch version:
69+
70+
- 32 x GPIO exposed over 2 x 2x10 1.27mm female connectors.
71+
72+
73+
Pinouts
74+
=======
75+
76+
- ESP32-S3-LCD-1.28:
77+
78+
.. figure:: ESP32-S3-LCD-1.28-details-inter.jpg
79+
:align: center
80+
81+
- ESP32-S3-Touch-LCD-1.28:
82+
83+
.. figure:: ESP32-S3-Touch-LCD-1.28-details-inter.jpg
84+
:align: center
85+
86+
Dimensions
87+
==========
88+
89+
- ESP32-S3-LCD-1.28:
90+
91+
.. figure:: ESP32-S3-LCD-1.28-details-size.jpg
92+
:align: center
93+
94+
- ESP32-S3-Touch-LCD-1.28:
95+
96+
.. figure:: ESP32-S3-Touch-LCD-1.28-details-size-1.jpg
97+
:align: center
98+
99+
.. figure:: ESP32-S3-Touch-LCD-1.28-details-size-2.jpg
100+
:align: center
101+
102+
103+
Serial Console
104+
==============
105+
106+
UART0 is by default used for the serial console. It connects to the on-board
107+
CH343P converter and is available on the USB-C connector that can be also used
108+
for firmware flashing.
109+
110+
111+
Buttons
112+
=======
113+
114+
Board Buttons
115+
-------------
116+
117+
There are two buttons labeled BOOT and RESET. The RESET button is not available
118+
to the software and can be used as manual hardware Reset trigger.
119+
The BOOT button is connected to IO0 and on reset / power-on it triggers the
120+
BootROM serial bootloader when pressed. After reset the BOOT button can be used
121+
as software input.
122+
123+
124+
Configurations
125+
==============
126+
127+
All of the available configurations provide basic testing utilities or serve
128+
as an example starting point for your own projects.
129+
Use them by running the following commands::
130+
131+
$ ./tools/configure.sh esp32s3-ws-lcd128:<config_name>
132+
$ make flash ESPTOOL_PORT=<serial_port_device> -j
133+
134+
Notes:
135+
136+
- ``<config_name>`` is the name of board configuration you want to use
137+
(i.e. nsh, lvgl). Then use a serial console terminal like ``cu`` or
138+
``minicom`` configured to 115200 8N1.
139+
- ``<serial_port_device>`` is usually ``/dev/ttyUSB0`` or ``/dev/cuaU0``
140+
depending on the OS you are using.
141+
- On BSD systems use GNU Make (``gmake``) in place of ``make``.
142+
143+
coremark
144+
--------
145+
146+
Provides CoreMark benchmarking utility.
147+
148+
notouch-lvgl
149+
------------
150+
151+
This is a demonstration of the LVGL graphics library running on the NuttX's
152+
GC9A01A LCD driver. Demo will launch itself on boot and you should see it on
153+
the screen right away. This configuration uses the :ref:`lvgldemo` application.
154+
155+
.. note:: This configuration has ``CONFIG_ARCH_BOARD_ESP32S3_WS_LCD128_NOTOUCH``
156+
set. It selects LCD pins valid for the Non-Touch board variant.
157+
158+
nsh
159+
---
160+
161+
Basic NuttShell configuration (console enabled in UART0, exposed via
162+
USB connection by means of CH343P converter, at 115200 bps).
163+
164+
165+
ostest
166+
------
167+
168+
Provides ``ostest`` NuttX self-test utility.
169+
170+
touch-lvgl
171+
----------
172+
173+
This is a demonstration of the LVGL graphics library running on the NuttX's
174+
GC9A01A LCD driver. Demo will launch itself on boot and you should see it on
175+
the screen right away. This configuration uses the :ref:`lvgldemo` application.
176+
177+
.. note:: This configuration has ``CONFIG_ARCH_BOARD_ESP32S3_WS_LCD128_TOUCH``
178+
set. It selects LCD pins valid for the Touch board variant.
179+
180+
.. warning:: Touch screen driver is not yet implemented! Work in progress.
181+
182+
watchdog
183+
--------
184+
185+
Provides watchdog testing utilities.

0 commit comments

Comments
 (0)