ESP32-S3-LCD-EV
chip:esp32, chip:esp32s3
The ESP32-S3-LCD-EV-Board 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.
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]{.title-ref}) 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:
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]{.title-ref}.
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.