ESP32-S3-LCD-EV

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.

../../../../../_images/esp32s3_lcd_ev.png

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:

../../../../../_images/esp32s3-audio-config-file.png

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.