ESP32 Projects

ESP32-S3 Real-Time IMU Dashboard Using LVGL & SquareLine Studio

Last Updated on September 10, 2026 by Engr. Shahzada Fahad

Description:

Real-time IMU dashboard:

This is NOT an SPI display.

What you are looking at is a parallel TFT, and that’s exactly why it’s so fast and buttery smooth. In this project, we build an ESP32-S3 IMU dashboard that displays real-time accelerometer, gyroscope, and temperature data using LVGL and SquareLine Studio.



ESP32-S3 real-time IMU dashboard using LVGL and SquareLine Studio
ESP32-S3 real-time IMU dashboard designed with LVGL and SquareLine Studio.

This is the Makerfabs MaTouch ESP32-S3 Parallel TFT 3.16-inch ST7701S development kit, and the UI you are seeing right now was not coded line by line.

Why use an Arduino with an MPU6050 and waste so much time on wiring and slow processing, when you can have an IMU, gyroscope, microphone, speaker, micro SD card slot, RTC chip, temperature sensor, a 3.16-inch display, and the powerful ESP32-S3 with WiFi and Bluetooth 5.0; all on a single board, and far better in almost every way than an Arduino?

Arduino is great! But let’s be honest.




Components needed for making a real-time Arduino-based IMU and gyroscope project
Components required for a real-time Arduino-based IMU and gyroscope project.

If you were to buy and wire all these modules separately with an Arduino or ESP32, it would cost more money and take a lot of time just to connect everything. So why waste time and money on something you already get on one board?



MaTouch ESP32-S3 Parallel TFT 3.16-inch ST7701S display
MaTouch ESP32-S3 Parallel TFT 3.16-inch ST7701S display.

Instead, you can spend that time experimenting, learning, and building new ideas.

This board is completely portable. It has a built-in lithium battery holder, and you don’t have to worry about safe charging because it comes with an onboard charging circuit that takes care of everything automatically. So many features packed into such a tiny board; it’s honestly incredible.

And when you compare the size, it’s much smaller than an Arduino setup with external modules.

It’s ready to use right out of the box and designed for the most advanced projects, like…

Gesture controlled Robotic Car.

Digital Spirit Level or Bubble level.

Gesture controlled MP3 Player.

Mini Photo Album.

Self Balancing Robot

Sensor Monitoring.

Home automation.

As a portable receiver for monitoring important processes.

Real-time digital clock

Vibration monitoring

Time controlled loads

Steps counter

Voice recorder

Dash board

Earth-quack monitoring

This can be a long list of projects, the possibilities with this development board are endless.

And the most amazing part is that you can create a completely mind-blowing UI in just a few minutes using SquareLine Studio and LVGL.



UI designing through code on an ESP32-S3 development board
Designing the user interface directly through code.

This is a built-in example, where you have to configure every single element through code. Implementing a custom design this way can easily take hours; or sometimes even days; just to get the exact look you want.

Now, when I did the same thing using SquareLine Studio and LVGL, I didn’t have to write a single line of code for the UI design.



UI designing using LVGL and SquareLine Studio
Designing an ESP32-S3 user interface using LVGL and SquareLine Studio.

Everything was done in one go. In SquareLine Studio, you can see the entire interface in advance, in real time, so there’s no guessing at all. You already know exactly how your final design is going to look.




UI designed in SquareLine Studio for an ESP32-S3 project
Custom UI designed in SquareLine Studio for the ESP32-S3.

So in this article, I am going to explain how to program this amazing development board using Arduino IDE, SquareLine Studio, and LVGL, step by step.

And if you want ready-to-use project folders, including all the UI files and other resources, you can visit my Patreon page. With just a $1 subscription, you will get access to all these amazing projects.

Software Setup and Libraries:

Before starting the project, I want to share my software setup and the libraries I am using. As you can see, I am currently working with Arduino IDE version 2.3.6 and the ESP32 boards package version 2.0.11. If you want, you can also try version 2.0.16.

Arduino IDE with ESP32 board package installed for ESP32-S3 development
Arduino IDE and ESP32 board package setup for ESP32-S3 development.

Now let’s talk about the libraries.

Arduino GFX Library and LVGL Library for ESP32-S3 development
Arduino GFX Library and LVGL Library setup for ESP32-S3.

First, you will need the Arduino_GFX_Library from Makerfabs. I have already explained how to use this library in the getting started video and article, so if you haven’t read that yet, make sure to check it out.

Next, you will also need the LVGL library. To install it, go to the Library Manager… search for LVGL  and install it… As you can see, I already have LVGL version 8.3.11 installed.

QMI8658 Arduino library for ESP32-S3 IMU and gyroscope projects
QMI8658 Arduino library setup for ESP32-S3 IMU and gyroscope projects.

You will also need to install the QMI8658 library, which is used for the IMU and gyroscope. As you can see, I have already installed version 1.0.1.

WHY SQUARELINE SAVES TIME:

The code you are seeing right now is the same code that I showed in the getting started video, and as you can see, it’s quite long.

Code from MakerFabs:



Just imagine how many times you would have to tweak and recompile it to create a UI design of your own choice, because everything has to be done entirely through programming. Let me show you its output one more time.



Hard-coded IMU dashboard on ESP32-S3 programmed using Arduino IDE
Hard-coded IMU interface on ESP32-S3 using Arduino IDE.

If you try to make changes to this design, it will take a lot of time. While programming, you can’t see the UI visually, so you keep adjusting values, uploading the code, and testing again and again; sometimes for hours; just to get the design right.

PROJECT STRUCTURE

I have already created a basic template folder, which you can download from my Patreon page.

SquareLine Studio and LVGL template folder for ESP32-S3 UI development
SquareLine Studio and LVGL template folder for ESP32-S3 projects.

Anyway, after downloading this basic template folder, inside this template folder you will find another folder named first_project. When you open this folder, you will see that all the required files are already generated for you.

Copying SquareLine Studio UI files and placing them with the Arduino main file
Copying the generated UI files and placing them with the Arduino main file.

Inside the “ui files” folder, we will place the UI files generated by SquareLine Studio, and in the “squareline project files” folder, we will save the SquareLine Studio project files.

I use the same structure in all my SquareLine-based projects to keep everything clean and organized.

Importing Project in SquareLine Studio:

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

SquareLine Studio Setup

I am currently using SquareLine Studio version 1.5.0.



Importing an ESP32-S3 UI project into SquareLine Studio
Importing the project into SquareLine Studio for UI design.

To import the project, click on the Import Project button, browse to the project location, select the project file, and then click Open.

Makerfabs 3.16-inch parallel TFT display settings in SquareLine Studio
Makerfabs 3.16-inch ST7701S parallel TFT display settings in SquareLine Studio.

As you can see, the project has now been successfully imported. On the right-hand side, you will find the Project Settings, where you can configure all the important options.

The display resolution is set to 320 by 820, which matches the display we are using. The rotation is set to 0 degrees, and there is no offset applied, so both X and Y offsets are set to zero. The shape is selected as Rectangle.

For color depth, I am using 16-bit swap, which works perfectly with this display and LVGL. The LVGL version is set to 8.3.11, and the theme is Dark, which gives a clean and modern look while designing the UI. I have also kept multilanguage disabled for this project, since it’s not required right now.

These settings are very important, so make sure they match your display and LVGL version before moving forward.

Go to the File menu and then open Project Settings.

SquareLine Studio project settings for the Makerfabs MaTouch 3.16-inch parallel TFT display
SquareLine Studio project settings for the Makerfabs MaTouch 3.16-inch parallel TFT display.

First, make sure the Project Properties are exactly the same as shown on the screen.

Also, confirm that the Board Properties are set correctly and match these settings.

Next, under Fi

After that, set the UI Files Export Path as well.le Export, set the Project Export Root to the folder where you want to save your SquareLine project files.

SquareLine Studio complete project settings for the Makerfabs MaTouch ESP32-S3 3.16-inch parallel TFT display
Complete SquareLine Studio project settings for the Makerfabs MaTouch ESP32-S3 3.16-inch parallel TFT display.

For the LVGL Include Path, simply type lvgl.h.

Now scroll down and make sure Flat Export (export all files into one folder) is checked. Finally, go ahead and click the Apply Changes button to save everything.




Basic UI design created in SquareLine Studio for an ESP32-S3 project
Basic UI design created in SquareLine Studio for the ESP32-S3.

For now, I have only placed “Electronic Clinic” on the display, because at the beginning, your main focus should be on successfully running the project, not on designing a complex UI.

Think of this as your foundation; once it works, you are free to experiment and build much more advanced UIs. you can start adding widgets and move on to building intermediate and advanced-level projects.

For now, let’s continue with this basic text, let’s generate the UI files.

For this go to the Export menu and click on the Export UI Files.

Then go to the ui files folder… copy all the generated files… and paste those files in the same folder where your Arduino main .ino file is located.

SquareLine Studio UI files and project files for an ESP32-S3 project
SquareLine Studio UI files and project files organized for the ESP32-S3 project.

Then open the Arduino main file.

You can see all the generated files are automatically loaded.

LV_COLOR_16_SWAP setting in LVGL configuration for ESP32-S3 display
Configuring LV_COLOR_16_SWAP for the ESP32-S3 TFT display.

Before you upload the program, go to the ui.c file and change  LV_COLOR_16_SWAP from 1 to 0.

LV_COLOR_16_SWAP !=1 into  LV_COLOR_16_SWAP !=0

Then go to the ui.h file and make sure its lvgl.h, once all these changes are made. Then you can go ahead and upload the program.

Uploading the Code:

First, go to the Tools menu > Board > ESP32, and select ESP32S3 Dev Module.

Go back to the Tools Menu > Port, and choose the correct communication port.

Again to the tools menu > Flash Size, and select 16MB.

Again go to the Tools menu > Partition Scheme and select 16M Flash

And one last time, go to Tools Menu > PSRAM, and select OPI PSRAM.

Once these settings are done, you can simply click the Upload button.

Note: if you see any error, simply unplug your board, press and hold the Flash button and then plug your board again, make sure you keep the Flash button pressed; upload the code.

Practical Demo:



Simple basic UI designed in SquareLine Studio using Arduino IDE and LVGL
Simple basic UI designed with SquareLine Studio, Arduino IDE, and LVGL.

And there it is; Electronic Clinic in red on the display. This is your starting point. Once you reach this stage, you are ready to move on to more advanced UI designs.

Let me show you how quickly we can make changes without writing a single line of code. For this watch the video tutorial.

After changes:



UI designing in SquareLine Studio using Arduino IDE and LVGL
Designing an ESP32-S3 UI with SquareLine Studio, Arduino IDE, and LVGL.

As you can see, it only takes a few seconds to change the entire design. That’s the real power of this workflow. I have really come to like this Makerfabs development kit, and you will be seeing it in many more projects on this website and my YouTube Channel “Electronic Clinic”.

Final Design:

Now, this is my final UI design, and I will quickly walk you through what you are seeing on the screen.

Real-time IMU dashboard designed in SquareLine Studio for ESP32-S3
Designing a real-time IMU dashboard in SquareLine Studio for ESP32-S3.

At the top, I have a single screen called Screen1, and on this screen, I am displaying real-time sensor data from the IMU. The first section shows the accelerometer values.

Just below that, I have added the gyroscope section. This gives us real-time rotational information from the IMU.

Next, I am displaying the temperature reading, labeled TEMP (°C). Along with the numeric value, I have also added a temperature bar, which gives a quick visual indication of the temperature level.

At the bottom, there is a direction or orientation indicator, which currently displays FLAT. This label changes based on the orientation of the board, giving instant feedback about its position.

All of these elements are created using labels, panels, and a bar widget, and each widget has its own clearly defined label name making it very easy to locate them later in the Arduino code.

I am not explaining each widget in detail here, because I have already covered every single widget used in this project in my SquareLine Studio getting started articles and vidoes. You will

I have already generated the UI files from SquareLine Studio, and this is the Arduino code that I have already uploaded to the board.

Final UI Code:

LVGL SquareLine Studio Arduino IDE interface on MaTouch ESP32-S3 display
LVGL and SquareLine Studio UI on the MaTouch ESP32-S3 display using Arduino IDE.

You can download this entire project folder from my patreon page. It includes all the UI files. So now that everything is ready, let’s go ahead and see this project in action.

Practical Demo:

Alright, now I am holding the board in my hand, and you can see the UI is running live on the display.



Real-time IMU and gyroscope data displayed on ESP32-S3 dashboard
Real-time IMU and gyroscope data monitoring on ESP32-S3.

All the values you are seeing are updating in real time.

As I gently move the board, notice how smoothly and quickly the accelerometer and gyroscope values change. There’s no lag, no delay; everything feels very responsive. This is where the ESP32-S3 really shines. Compared to Arduino, the processing is much faster, and handling graphics, sensors, and UI at the same time feels effortless.

Now, let me tilt the board towards the left…

Left tilt detection using IMU and gyroscope on ESP32-S3
Left tilt detected using the IMU and gyroscope on ESP32-S3.

You can see the values changing instantly, and the direction updates accordingly.

If I tilt it towards the right, the readings update just as smoothly.

Right tilt detection using IMU sensor on ESP32-S3
Right tilt detected using the IMU sensor on ESP32-S3.

There’s no freezing, no stuttering; the UI keeps running perfectly while the sensor data is being processed in the background.

And now, I will place the board flat on the table…

Flat position detection using IMU and gyroscope on ESP32-S3
Flat position detected using the IMU and gyroscope on ESP32-S3.

As you can see, the direction changes to FLAT. This confirms that both the IMU data and the logic behind it are working correctly.

What I really like here is how fluid the entire experience feels. The UI updates, the sensor readings, and the orientation changes all happen smoothly, without any visible delay.

Doing something like this on a traditional Arduino setup would be much more difficult; especially with a graphical interface and multiple sensors running at the same time.

This is exactly why the ESP32-S3 is such a powerful choice. You get fast processing, smooth graphics, and real-time sensor handling; all on a single, compact board.

And this is just the beginning. Once you have this foundation working, you can easily expand it into more advanced, interactive, and professional-level projects.

So, that’s all for now.

Support me on Patreon:

If you enjoy my work and find these projects helpful, please consider supporting me on Patreon. With just $1, you can get access to all project source codes, schematics, and extra resources that I share with my supporters. Your support helps me continue creating new electronics tutorials, experiments, and open projects for the community. Thank you so much for being part of this journey and for supporting my work!

Watch Video Tutorial:

 

ESP32 S3 + LVGL + SquareLine Studio | Real Time IMU Dashboard using Parallel TFT 3.16 inch Display

 

 

 

 

 

 

 

 


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.