BLE Call System for Motorcycles Using ESP32-S3 & Touch Display
How to Build a Custom BLE Call System for Motorcycles Step-by-Step Tutorial using ESP32-S3
Last Updated on August 6, 2025 by Engr. Shahzada Fahad
Table of Contents
Description:
BLE Call System for Motorcycles Using ESP32-S3 & Touch Display- You won’t believe what I just built with this tiny display!
It looks simple; but wait till you see what it can do.
Looking for a BLE call system for motorcycles? In this article, I will show you how I used the ESP32-S3 AMOLED Touch Display to build a smart BLE-connected call management system designed specifically for motorcycles.
This is my fourth article on the MaTouch ESP32-S3 AMOLED with a 1.8” FT3168 touch display. But this time… I have taken things to the next level.
How I Built This BLE Call System for Motorcycles
I connected this display to my custom BLE Android application, and guess what? Whenever I get a call, the caller’s name pops up right there. One tap to answer, one tap to reject.
Not just that… if I reject the call, the system automatically sends a message back to the caller.
You can also pre-write different messages for different situations.
Now, we all know this exists in smart cars. But one of my Patreon followers had a simple yet brilliant request:
“Can you make this for bikes?”
And here it is; a fully functional, BLE call system for motorcycles!
But that’s not all…
If I swipe left on the screen, it takes me to Screen2, where I have added a switch.
Using this switch, I can turn the motorcycle engine ON and OFF.
And just like that, you can add more switches to control things like motorcycle lights and other components.
Now imagine using this display in a car; you could control the doors, AC, lights, and so much more…
This system can literally give you smart car or smart bike-level control; all from a small touchscreen display.
For demonstration purposes, I have connected a white LED.
This display is extremely user-friendly, and it even comes with a GPIO connector ribbon cable.
You can easily connect it to any custom PCB to not only control various devices but also monitor sensors.
In Part 3, I used it with a DS18B20 waterproof one-wire digital temperature sensor.
And yes, the entire UI you are seeing here is designed in SquareLine Studio.
Throughout this whole series, I have been using SquareLine Studio and LVGL.
Before building this project, I highly recommend reading my previous three articles, where I have explained everything step by step.
So, in this article, I won’t repeat those steps; otherwise, it will get too long and boring.
And since this is an advanced-level project, it’s important that you are already familiar with SquareLine Studio and LVGL.
Anyway, I also implemented the same idea on my Smartwatch, and it worked exceptionally well.
So first, I will give you a quick overview of the design and programming for this project; and then I will fully demonstrate how it works.
Bluetooth Related Projects:
Android app development to control Arduino over Bluetooth using Android
How to Create Android App for Arduino Sensor Monitoring over Bluetooth
Arduino Bluetooth controlled Robot using L298n Motor Driver Android App
Amazon Links:
Other Tools and Components:
ESP32 WiFi + Bluetooth Module (Recommended)
Arduino Nano USB C type (Recommended)
*Please Note: These are affiliate links. I may make a commission if you buy the components through these links. I would appreciate your support in this way!
Before you start the interfacing, make sure to download this pinout diagram; it will save you a lot of time and confusion later.
BLE Call System for Motorcycles Interfacing:
Connect the Anode leg of the LED to the GPIO21 and connect the GND wire of the LED to the GND pin on the GPIO Connector Ribbon Cable.
You can replace the LED with a MOSFET or a relay to control high-current and high-voltage loads.
I really like this display because it has so many GPIO pins; I can not only monitor multiple sensors but also control multiple loads with ease.
SquareLine Studio Project Setup:
This is my project folder. Inside this folder, you will find the main Arduino .ino file, and two additional folders; one for the SquareLine Studio project files and another for the UI files.
You can download this entire folder from my Patreon page.
Now if I open the “SquareLine Studio project files” folder, you will see that I have already saved the project in it.
So let’s quickly go ahead and import this project into SquareLine Studio.
I have used a total of two screens, but of course, you can add more screens if you like; I have already explained how to do that in my previous videos.
To switch between the two screens, I have added change screen events.
While Screen1 is selected, if I go to the Inspector tab and scroll down, you can see that I have added an event. The Trigger type is set to GESTURE_LEFT, the Action type is set to CHANGE SCREEN, and the Target screen is set to Screen2.
Now, if I select Screen2, the Trigger type is set to GESTURE_RIGHT, the Action type is again set to CHANGE SCREEN, and the Target screen is set to Screen1.
On Screen1, I have added a label and two buttons.
This label will display the caller’s name. I have named it lblCaller, and for the text, I have simply written “Caller…”.
If I scroll down, go to Style settings, and click on Text, you will see that I have set the font size to 26.
You can also use a custom font here. In Part 2, I used a seven-segment font for a digital watch. In that same article, I also showed how to create an analog watch.
Anyway, I have kept the text very simple; but if you want, you can style the caller text beautifully. You can even add animations to make it more visually appealing.
Now, let me tell you about the buttons.
If I click on the Accept button, you will see that I have named it btnAccept.
Now if I scroll down,…
you can see I have added an event, when this button is clicked, it calls a function named acceptcallfun. This function sends a control signal over Bluetooth to the phone to accept the call. Also, don’t forget to check the “Do not export function” option.
Now, if I select the Reject button,…
It sends a control signal over Bluetooth to reject the call and also sends a message to the caller.
I have named this button btnReject.
On Screen2, I have added a single switch; and as I mentioned earlier, you can add multiple switches to control multiple loads.
I have named this switch; SwitchLoad.
This switch calls a function named Load1Fun, which turns the LED ON or OFF based on the switch state.
After designing the UI in SquareLine Studio, you already know what to do next; simply save the project, and then export the UI files.
Next, go to the UI files folder, copy all the generated files, and paste them into the same folder where your main Arduino .ino file is located.
Now, let’s open the Arduino file.
BLE Call System for Motorcycles Programming:
Next, you will need to upload this code; which you can download from my Patreon page.
To accept or reject a call, you will also need the BLE application that I designed.
It’s available in my Patreon shop at a super affordable price.
Once you download the source code of the BLE app, you can totally make it your own; just add whatever custom features you need.
As you can see, the BLE application is connected to the display.
Now, let me practically demonstrate how it accepts and rejects a call.
The BLE application is running in the background on my mobile phone. As you can see in the image below, when I make a call to my own phone, the BLE application on my phone sends the caller’s name to the MaTouch ESP32-S3 Touch Display.
“Farrukh” is the caller name. On the display, I have two buttons; I can either accept the call or reject it.
I have tested it, when I press the Accept button, the call is attend, and;
After rejecting the call, it even automatically sent a message to the caller.
This is crazy!
Now, if I switch over to Screen2;… using this switch, we can control almost anything.
For demonstration purposes, I have connected a white LED, but you can easily replace this with a MOSFET or a relay to control high-voltage or high-amperage loads.
This is a complete two-way communication system, and you can fully customize it based on your needs.
You can tweak the system in minutes; add new buttons, change actions; anything you want. It’s that user-friendly.
As you can see, I have even implemented the same idea on my smartwatch; just to show you that this application can be used with any display and any controller.
Download the source codes and start building your own futuristic interactive displays.
And if you ever need help, I am right there on Patreon to support you.
So, that’s all for now.
Watch Video Tutorial:
Discover more from Electronic Clinic
Subscribe to get the latest posts sent to your email.






























