Skip to content

MaTouch_ESP32S3-SPI-TFT-with-AI-2.8-ST7789V

1. Introduction

The MaTouch_ESP32S3-SPI-TFT-with-AI-2.8-ST7789V base on ESP32S3, featuring a 2.8-inch display with capacitive touch. It comes with a wide range of onboard peripherals, including dual-channel INMP441 microphone input, MAX98357 audio output, a MicroSD card slot, camera interface, WS2812 RGB LED, RTC (real-time clock), battery, and both USB-to-serial and native USB interfaces. With its rich feature set, this board is ideal for embedded applications such as voice recognition, graphical user interfaces.

2. Features

  • Controller: ESP32-S3
  • Wireless: WiFi& Bluetooth 5.0
  • LCD: 2.8", 320x240 resolution
  • LCD Driver: ST7789V
  • LCD interface: SPI
  • Flash: 16MB Flash
  • PSRAM: 8MB
  • Touch Panel: 5 Points Touch, Capacitive
  • Touch Panel Driver: GT911
  • USB: 1 * USB to UART, 1 * USB_native
  • Power Supply: USB Type-C 5.0V(4.0V~5.25V)
  • Button: Flash button and reset button
  • Expansion interface: 4 * GPIO
  • Camera: Yes
  • MicroSD: Yes
  • RGB LED: 1XWS2812
  • RTC: Yes
  • Charger: Yes
  • Battery Connector: Yes
  • Microphone input: 2CH INMP441
  • Audio output: MAX98357(3.2W@4Ω)
  • Arduino support: Yes
  • LVGL support: Yes

3. Usage in Arduino IDE

  • Install the Arduino IDE V1.8.19/V2.3.4 If you haven’t installed the ESP32 Board SDK yet, follow the steps in this guide to get started quickly.

For the ESP32-S3 Development board version, we recommend using versions that have been verified, such as 2.0.16, which is more stable, and less prone to errors.

Note: Different computers may have different port numbers when connecting to a development board. Please select the correct port number based on the development board you are connecting to.

Please download the relevant driver libraries before using these demos.

1.Install Arduino_GFX_Library V1.5.6

GFX Library for Arduino.png

2.Install bb_captouch V1.3.1

bb_captouch.png

3.1 Display_Touch_Camera

This demo demonstrates the combined use of display, touch, and camera functionalities.The screen first shows an image. Then, the interface automatically switches to a drawing board mode, allowing the user to freely draw using the touchscreen. A square button is located at the bottom right corner of the screen; clicking this button switches the application to camera mode.

  • Install JPEGDecoder V2.0.0

JPEGDecoder.png

Use Type-C USB cable to connect the board and PC, and select the development board "ESP32S3 Dev Module" and the port.

  • Select "Tools > board:"xxx" > ESP32 Arduino > ESP32S3 Dev Module".

  • Select "Tools > Port", Select the port number of the board.

  • Select Flash Size is 16MB(128MB), Partition Scheme is 16M Flash (3MB APP/9.9MB FATFS), PSRAM is OPI PSRAM.

TOOLS.png

  • Click the Upload button in the Arduino IDE and wait for the code to upload.

Results

gfx.gif

3.2 Record and Play Demo

The Record and Play demo implements a voice recorder functionality. It allows the user to record audio through a microphone, save the recording to an SD card, and later play back the recorded audio through a speaker.

  • Install ESP32-audioI2S-master V2.0.0

ESP32audioI2Smaster.png

  • Download and copy the ui and lvgl library into the arduino library.(Usually located at C:\Users\Username\Documents\Arduino\libraries)

QQ20250527151110.png

Use Type-C USB cable to connect the board and PC, and select the development board "ESP32S3 Dev Module" and the port.

  • Select "Tools > board:"xxx" > ESP32 Arduino > ESP32S3 Dev Module".

  • Select "Tools > Port", Select the port number of the board.

  • Select Flash Size is 16MB(128MB), Partition Scheme is 16M Flash (3MB APP/9.9MB FATFS), PSRAM is OPI PSRAM.

  • Click the Upload button in the Arduino IDE and wait for the code to upload.

Results

IMG20250527111828.jpg

3.3 RTC Demo

This demo uses a real-time clock module to keep track of the current time and displays the time continuously on the screen using the LVGL graphics library.

  • Install RTClib V2.1.4

RTClib.png

  • Install Adafruit BusIO V1.16.2

Adafruit BusIO.png

  • Download and copy the ui and lvgl library into the arduino library.(Usually located at C:\Users\Username\Documents\Arduino\libraries)

QQ20250527151110.png

Use Type-C USB cable to connect the board and PC, and select the development board "ESP32S3 Dev Module" and the port.

  • Select "Tools > board:"xxx" > ESP32 Arduino > ESP32S3 Dev Module".

  • Select "Tools > Port", Select the port number of the board.

  • Select Flash Size is 16MB(128MB), Partition Scheme is 16M Flash (3MB APP/9.9MB FATFS), PSRAM is OPI PSRAM.

  • Click the Upload button in the Arduino IDE and wait for the code to upload.

Results

clock.gif

3.4 HTTP Demo

The HTTP demo uses DHT11 to collect temperature and humidity data and uploads the data to Thingspeak via the HTTP protocol.

Thingspeak

To transmit the data to your Thingspeak channel, it has to create a new channel and get the APIKEY information. Then replace the APIKEY in the code with yours.

  • sign in or sign up for ThingSpeak

If you already have an account, log in and enter the password, otherwise click Create one to register.

20240617_00_18_06_0.png

  • Create new channel

Select "Channel --> My Channels".

20240617_00_29_22_0.png

click "New Channel".

20240617_00_30_28_0.png

Write the name and field information and click Save Channel to create successfully.

thingspeak1.png

Arduino

  • Install DHT sensor library v1.4.6

DHT sensor library.png

  • Install Adafruit Unified Sensor V1.1.14

Adafruit Unified Sensor.png

  • Install FastLED V3.7.7

FastLED.png

  • Open the HTTP_demo by Arduino.

  • In order to view the data in your own channel, you need to modify the APIKEY in the code.

thingspeak2.png

  • Modify the APIKEY, your WiFi name and password in the code.

code.png

Use Type-C USB cable to connect the board and PC, and select the development board "ESP32S3 Dev Module" and the port.

  • Click the Upload button in the Arduino IDE and wait for the code to upload.

Results

thingspeak.png

IMG20250519155426.jpg

3.5 MQTT Demo

This demo implements button synchronization between two screens. When the button on one board is pressed, the button state on the other board is automatically updated as well.

  • Install ArduinoMqttClient V0.1.8

ArduinoMqttClient.png

  • Download and copy the lvgl library into the arduino library.(Usually located at C:\Users\Username\Documents\Arduino\libraries)

lvgl.png

  • Open the MQTT_demo by Arduino.

  • Modify your WiFi name and password in the code.

QQ20250527145722.png

Use Type-C USB cable to connect the board and PC, and select the development board "ESP32S3 Dev Module" and the port.

  • Select "Tools > board:"xxx" > ESP32 Arduino > ESP32S3 Dev Module".

  • Select "Tools > Port", Select the port number of the board.

  • Select Flash Size is 16MB(128MB), Partition Scheme is 16M Flash (3MB APP/9.9MB FATFS), PSRAM is OPI PSRAM.

  • Click the Upload button in the Arduino IDE and wait for the code to upload.

  • Prepare the other board, change the code to 0, and upload it following the same steps.

QQ20250523150208.png

Results

mqtt.gif

3.6 Connect to ChatGPT

This demo shows how to integrate ChatGPT into your board, enabling a Q&A interaction through the serial interface.

  • Install ArduinoJson V7.2.0

ArduinoJson.png

  • Open the ChatgptwithMatouch by Arduino.

  • Modify your WiFi name, password and APIKEY in the code.

chatgpt.png

Use Type-C USB cable to connect the board and PC, and select the development board "ESP32S3 Dev Module" and the port.

  • Click the Upload button in the Arduino IDE and wait for the code to upload.

Results

chat.png

3.7 Face Detect

This demo detects human faces in real time using the camera. When a face is detected, a rectangle is drawn around it on the display to highlight the detected area.

Use Type-C USB cable to connect the board and PC, and select the development board "ESP32S3 Dev Module" and the port.

  • Select "Tools > board:"xxx" > ESP32 Arduino > ESP32S3 Dev Module".

  • Select "Tools > Port", Select the port number of the board.

  • Select Flash Size is 16MB(128MB), Partition Scheme is 16M Flash (3MB APP/9.9MB FATFS), PSRAM is OPI PSRAM.

  • Click the Upload button in the Arduino IDE and wait for the code to upload.

Results

IMG202505271616531.jpg

4. FAQ

You can list your questions here or contact techsupport@makerfabs.com for technology support. Detailed descriptions of your question will help to solve your question.

5. Resources