esp32[s3]: Add Documentation for esp32s3-lcd-ev board

This commit is contained in:
Eren Terzioglu 2025-02-17 11:42:21 +01:00 committed by hartmannathan
parent 3170af2fd0
commit 2d069231c5
3 changed files with 156 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

View file

@ -0,0 +1,156 @@
===============
ESP32-S3-LCD-EV
===============
The `ESP32-S3-LCD-EV-Board <https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-lcd-ev-board/user_guide.html>`_ is a small-sized AI development board from Espressif featuring the ESP32-S3 CPU with a touchscreen LCD display, dual microphone, an 16 MB Octal PSRAM and an 16 MB flash.
.. list-table::
:align: center
* - .. figure:: esp32s3_lcd_ev.png
:align: center
Features
========
- ESP32-S3 WROOM-1 Module
- USB Type-C ports
- Power LED
- LCD Display
- MEMS Microphone
- 16MB Octal PSRAM
- 16MB SPI Flash
- RST and BOOT buttons (BOOT accessible to user)
Serial Console
==============
UART0 is, by default, the serial console. It connects to the on-board
CP2102 converter and is available on the USB connector USB CON8 (J1).
It will show up as /dev/ttyUSB[n] where [n] will probably be 0.
Buttons and LEDs
================
Board Buttons
-------------
There are two buttons labeled Boot and EN. The EN button is not available
to software. It pulls the chip enable line that doubles as a reset line.
The BOOT button is connected to IO0. On reset it is used as a strapping
pin to determine whether the chip boots normally or into the serial
bootloader. After reset, however, the BOOT button can be used for software
input.
Board LEDs
----------
There are several on-board LEDs for that indicate the presence of power
and USB activity. None of these are available for use by software.
Another WS2812 LED is connected to GPIO4.
Configurations
==============
All of the configurations presented below can be tested by running the following commands::
$ ./tools/configure.sh esp32s3-lcd-ev:<config_name>
$ make flash ESPTOOL_PORT=/dev/ttyUSB0 -j
Where <config_name> is the name of board configuration you want to use, i.e.: nsh, buttons, wifi...
Then use a serial console terminal like ``picocom`` configured to 115200 8N1.
audio
-----
This configuration uses the I2S0 peripheral and an externally connected audio
codec to play an audio file streamed over an HTTP connection while connected
to a Wi-Fi network.
**Audio Codec Setup**
The CS4344 audio codec is connected to the following pins:
============ ========== ============================================
ESP32-S3 Pin CS4344 Pin Description
============ ========== ============================================
5 MCLK Master Clock
16 SCLK Serial Clock
7 LRCK Left Right Clock (Word Select)
6 SDIN Serial Data In on CS4344. (DOUT on ESP32-S3)
============ ========== ============================================
**Simple HTTP server**
Prepare a PCM-encoded (`.wav`) audio file with 16 or 24 bits/sample (sampled at
16~48kHz). This file must be placed into a folder in a computer that could
be accessed on the same Wi-Fi network the ESP32 will be connecting to.
Python provides a simple HTTP server. ``cd`` to the audio file folder on the
PC and run::
$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/)
Look for your PC IP address and test playing the prepared audio on your
browser:
.. figure:: esp32s3-audio-config-file.png
:align: center
After successfully built and flashed, connect the board to the Wi-Fi network::
nsh> wapi psk wlan0 mypasswd 3
nsh> wapi essid wlan0 myssid 1
nsh> renew wlan0
Once connected, open NuttX's player and play the file according to the filename
and the IP address of the HTTP server::
nsh> nxplayer
nxplayer> play http://192.168.1.239:8000/tones.wav
buttons
-------
This configuration shows the use of the buttons subsystem. It can be used by executing
the ``buttons`` application and pressing on any of the available board buttons::
nsh> buttons
buttons_main: Starting the button_daemon
buttons_main: button_daemon started
button_daemon: Running
button_daemon: Opening /dev/buttons
button_daemon: Supported BUTTONs 0x01
nsh> Sample = 1
Sample = 0
lvgl
----
This is a demonstration of the LVGL graphics library running on the NuttX LCD
driver. You can find LVGL here::
https://www.lvgl.io/
https://github.com/lvgl/lvgl
This configuration uses the LVGL demonstration at `apps/examples/lvgldemo`.
nsh
---
Basic NuttShell configuration (console enabled in UART0, exposed via
USB connection by means of CP2102 converter, at 115200 bps).
ws2812
------
This configuration enables the usage of the RMT peripheral and the example
``ws2812`` to drive addressable RGB LEDs::
nsh> ws2812
Please note that this board contains an on-board WS2812 LED connected to GPIO38
and, by default, this config configures the RMT transmitter in the same pin.