ESP32 Projects

ESP32-S3 Touchscreen Display Project: You Won’t Believe What This Touchscreen Can Do!

Go beyond the basics and see what’s possible when you build a next-level ESP32-S3 Touchscreen Display Project

Last Updated on August 6, 2025 by Engr. Shahzada Fahad

Description:

ESP32-S3 Touchscreen Display Project: You Won’t Believe What This Touchscreen Can Do! – Want to build stunning user interfaces on a massive 5-inch touchscreen… using just the ESP32? Imagine controlling smart home devices, building your own dashboard, or even making your own handheld gadget; all on this powerful display!

Demonstrating the capabilities of a high-performance ESP32-S3 Touchscreen Display Project

In this article, we are diving deep into the MaTouch ESP32-S3 Parallel TFT with Touch; a feature-packed development board that combines a vibrant 5-inch IPS screen with the speed and power of the ESP32-S3. If you have been thinking about building your next touchscreen project, this might be the perfect tool for you.




We will start by exploring the complete specs of this board in simple terms. Then, I will show you which Arduino libraries you need and how to install them step by step. After that, we will jump into SquareLine Studio to design a basic user interface; and finally, we will bring it all to life using LVGL on the Arduino side.

So, let’s begin with a closer look at the hardware and what makes this display such a powerful platform for your next embedded UI project.

Specifications:

Close-up of the MaTouch ESP32-S3 board for a DIY ESP32-S3 Touchscreen Display Project

This is the MaTouch ESP32-S3 Parallel TFT with Touch – a powerful development board with a large 5-inch IPS display. It has a high resolution of 800×480 pixels and supports 5-point capacitive touch using the GT911 touch driver. At the heart of this board is the ESP32-S3-WROOM-1 module with a built-in PCB antenna, 16MB flash, and 8MB PSRAM. It supports both WiFi and Bluetooth 5.0, making it great for wireless projects. The display uses a 24-bit RGB interface for rich colors. For connectivity, it offers two USB Type-C ports – one for USB-to-UART using the CP2104 chip, and one for native USB. It also includes a reset button, a flash button, and Mabee interfaces for I2C and GPIO. You can add a microSD card, and yes, it fully supports the Arduino platform. It runs on 5V through USB-C, it works perfectly within a voltage range of 4.0 to 5.25 volts. It’s reliable even in extreme temperatures, from -40°C to +85°C.

  • Controller: ESP32-S3-WROOM-1, PCB Antenna, 16MB Flash, 8MB PSRAM, ESP32-S3-WROOM-1-N16R8
  • Wireless: Wifi& Bluetooth 5.0
  • LCD: 5 inch High Lightness IPS
  • Resolution: 800*480
  • LCD interface: RGB 24bit
  • Touch Panel: 5 Points Touch, Capacitive
  • Touch Panel Driver: GT911
  • USB: Dual USB Type-C(one for USB-to-UART and one for native USB)
  • USB to UART Chip: CP2104
  • Power Supply: USB Type-C 5.0V(4.0V~5.25V)
  • Button: Flash button and reset button
  • Mabee interface: 1I2C;1GPIO
  • MicroSD: Yes
  • Arduino support: yes
  • Type-C Power Delivery: Not Supported
  • Operation temperature: -40℃ to +85℃

Now that we have covered the hardware, let’s talk about the software setup; because without the right versions, things might not work properly.



Arduino IDE Version:

Although Makerfabs has tested this display with both Arduino IDE versions 1.8.19 and 2.3.4, I am using Arduino IDE version 2.3.4 in this video, and everything works perfectly.

ESP32 Version:

For the ESP32 board package, make sure you install ESP32 version 2.0.11. This specific version is important for compatibility, especially with the display and touch libraries.

Library Versions:

Now let’s go over the libraries you will need:

  • Arduino_GFX Library by Moon On Our Nation – version 1.3.1
  • JPEGDEC by Larry Bank – version 1.2.7
  • And for the touch interface, you will need the TAMC_GT911 library – version 1.0.2 by TAMC.

Once you have these installed, you are all set to start coding. But before we jump into code, let’s create a basic UI using SquareLine Studio.

An ESP32-S3 Touchscreen Display Project showing its template folder structure for SquareLine Studio

I have already created a template folder for you, and inside this folder, I have added all the required files to save you time. I have also included two extra folders; one where you can save your SquareLine Studio project files, and another one where you can save the generated UI files.

Now, the .h and .c files you see along with the Arduino sketch; these are the UI files generated by SquareLine Studio. I have already explained all of this in detail in my previous videos and articles.

In fact, I have a complete series on SquareLine Studio and LVGL. So, if this is your first time using them, I highly recommend watching those videos first on my YouTube channel “Electronic Clinic”.



Anyway, let’s go ahead and import this project into SquareLine Studio.

An introductory ESP32-S3 Touchscreen Display Project showing a basic widget layout in SquareLine

On the screen, you can see I have just written ‘Electronic Clinic’. As I always say; before you start any project, make sure to test it first. Once everything is working, then you can go ahead and design your own UI.

So first, let’s test this setup; and once that’s done, we will start modifying it.

So, let’s go ahead and export the UI files.

After exporting the UI files.

Next, go to the UI files folder… copy all the generated files… and paste them into the same folder where your Arduino.ino file is located.

Finally, you can go ahead and open the Arduino .ino file.



ESP32-S3 Touchscreen Display Project Code:

You don’t need to change anything in this code; all the required display and touch drivers are already included for you. Just connect your board, upload the code, and you are good to go!



Steps to Upload the Code:

To upload the code, go to the Tools menu, then navigate to Board > ESP32, and select ESP32S3 Dev Module.

Again go to the Tools Menu and select the communication port.

Again go to the Tools Menu then go to the Flash Size and select “16MB(128MB)”.

Then go to the Partition Scheme and select “16M Flash (3MB APP/9.9MB FATFS)”

Then go to the PSRAM  and select OPI PSRAM.

And then finally, click on the upload button.

A finished ESP32-S3 Touchscreen Display Project demonstrating its responsive user interface

You can see how easily we have displayed the text on the screen. Once your display is working, the rest of the work becomes quite easy. Next, let’s add a custom font and display images on multiple screens.




Now let’s create a font. And just a quick reminder; in my previous article on the ESP32-S3 AMOLED Smartwatch UI, I have already explained how to create a custom font step by step and I have also explained how to use custom images. So if you haven’t read that yet, I highly recommend checking it out.

How to use custom fonts in SquareLine Studio for your ESP32-S3 Touchscreen Display Project

On Screen1, I used a custom font using Seven Segment. Then I added to more screens and added two images as the background.

How to set a background image in SquareLine Studio for an ESP32-S3 Touchscreen Display Project

First I tried adding 3 images, but it generated an error while uploading the code. So, I had to delete the 4th screen.

Customizing text styles in SquareLine Studio for a new ESP32-S3 Touchscreen Display Project UI

As you can see, creating custom fonts is super easy, and you can even build a photo album with it.



The photo slideshow UI for an ESP32-S3 Touchscreen Display Project, designed in SquareLine Studio

This is the image I added on the 2nd screen.

Demonstrating a futuristic photo album on a custom ESP32-S3 Touchscreen Display Project

This is the image, I added on screen3. I was amazed at the quality. And let me tell you, that little model in the image is my Son “Fahaam Khan”.

These images you are seeing right now are stored directly on the ESP32, which means you can’t add too many due to limited space. That’s why I deleted screen3.



If you want to make a full digital album, you will need to store your images on an SD card instead.

A collection of image assets for a photo album used in an ESP32-S3 Touchscreen Display Project

Here are some sample images that I have saved on the SD card. Just download the code and upload it; that’s it. You can download all the codes, images, and other resources form my Patreon page.

A custom digital photo album, a great example of a finished ESP32-S3 Touchscreen Display Project

Now, you can store as many images as you want in the SD Card.

And as you can see, our digital photo album is ready! Of course, the design is very basic right now; but if you are interested in advanced UI design, do check out my previous videos and articles.

So, that’s all for now.



Watch ESP32-S3 touchscreen project Video Tutorial:

 

Frequently Asked Questions (FAQ)

Q1: What software and libraries do I need for this ESP32-S3 touchscreen project?

For full compatibility, this project uses Arduino IDE v2.3.4, the ESP32 board package version 2.0.11, Arduino_GFX library v1.3.1, JPEGDEC library v1.2.7, and the TAMC_GT911 library v1.0.2 for the touch interface.

Q2: What is SquareLine Studio and why is it used in this project?

SquareLine Studio is a visual UI editor that allows you to design graphical user interfaces for embedded systems without writing complex code. We use it in this tutorial to easily design the layout, add fonts, and manage image assets for our ESP32-S3 display using the LVGL library.

Q3: Can the ESP32-S3 handle a large 800×480 touchscreen display?

Yes, absolutely. The ESP32-S3, especially the module used in the MaTouch display with 16MB Flash and 8MB PSRAM, is powerful enough to drive a high-resolution 800×480 display and render smooth graphics with the LVGL library.

Q4: Why did my project fail to upload after adding too many images?

This happens because the ESP32’s internal flash memory is limited. Storing large, high-resolution images directly in the project fills up this space quickly. For a project with many images, like a full digital photo album, you must store the images on an external SD card and load them from there.

Q5: How do I configure the Arduino IDE for the MaTouch ESP32-S3 display?

In the “Tools” menu, you must set the Board to “ESP32S3 Dev Module,” Flash Size to “16MB,” Partition Scheme to “16M Flash (3MB APP/9.9MB FATFS),” and enable PSRAM by selecting “OPI PSRAM.”


Discover more from Electronic Clinic

Subscribe to get the latest posts sent to your email.

Engr. Shahzada Fahad

Engr. Shahzada Fahad is an Electrical Engineer with over 15 years of hands-on experience in electronics design, programming, and PCB development. He specializes in microcontrollers (Arduino, ESP32, STM32, Raspberry Pi), robotics, and IoT systems. He is the founder and lead author at Electronic Clinic, dedicated to sharing practical knowledge.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button

Discover more from Electronic Clinic

Subscribe now to keep reading and get access to the full archive.

Continue reading

Electronic Clinic
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.