Smartphones have become an integral part of daily life, offering a wide range of functions beyond traditional communication. Complementing this, smartwatches have emerged as essential devices that help users stay connected by providing seamless access to notifications and even direct call functionality.
In line with these technological advancements, Electronics For You (EFY) has featured several innovative DIY projects. One notable example is an article on building the world’s smallest phone with an e-paper display, offering a unique take on minimalist mobile technology. Additionally, EFY has also published a comprehensive DIY guide on creating a smartwatch, further highlighting the growing trend of wearable technology that enhances convenience and connectivity.
Designing
To create the world’s smallest smartphone, careful selection of components is crucial to fit within the compact frame. The IndusBoard coin, measuring just around 3cm, was chosen for its small size and ability to integrate essential I/O ports required for the device.
This board also includes built-in sensors, such as a magnetometer, accelerometer, temperature sensor, and Wi-Fi capabilities, all within its tiny 3cm form factor, keeping the device sleek and compact. A display of the same size, with touchscreen functionality, is also necessary.
Before diving into the design, it’s important to outline the core functionalities of the smartphone. It supports 2G and 4G SIM cards, Wi-Fi connectivity, and a touchscreen interface. Basic functions will include calls, messaging, contacts, dialing, and speakerphone mode.
Additional features, including games, a calculator, Wi-Fi-based contact sharing, Wi-Fi calling, and a phone locator, were added once the primary design was complete. The smartphone can also be programmed with more advanced features as required.
This first part of the multi-part article focuses on designing the basic user interface (UI) and testing the GSM module.
EFY Note: Before starting with the UI code, ensure that you’ve installed the ESP32 board in the Arduino IDE. Additionally, install the necessary libraries for the TFT_eSPI display, GSMSim for SIM card module interfacing, and CTS816 for touchscreen functionality.
Bill of Materials | ||||||
ID | Name | Designator | Footprint | Quantity | Manufacturer Part | Manufacturer |
1 | CST816 Touch Round Display Glass | CN1 | CST816 | 1 | CST816 | |
2 | GSM Module | M1 | SIM800LMODULE_SIM800LMODULE | 1 | 800I | SIM Com |
3 | MIC14 | M2 | micro-usb-smd-kh-micro0.8cb-5pj | 1 | ||
4 | SMD Speaker | SP1 | Speaker | 1 | gspk151035pn-8r0.5w-l35-1.25t | INGHAi |
5 | IndusBoard Coin | U1 | Indusboard_coin | 2 | IndusBoard Coin | IndusBoard |
6 | GC9A01 | U3 | GC9A01 | 1 | Waveshare | |
7 | SMC-204-ARP6 | U4 | SIM-SMD_SIM-SMD_MICROSIM_SMC-204 | 1 | SMC-204-ARP6 | XUNPU |
Designing UI
The basic user interface (UI) will encompass essential functions, such as displaying numbers, managing incoming calls, composing messages, and sending them.
The first UI element to be designed is the Incoming Call screen. This screen will display the incoming caller’s number, accompanied by two touch-sensitive buttons that allow the user to either answer or decline the call.
The UI design will include code that not only shows the caller’s number but also integrates touch detection for the two buttons, enabling user interaction. Figure 2 illustrates the design of the Incoming Call screen.
Figure 3 provides a code snippet that demonstrates the implementation of the calling screen UI, showcasing how the incoming call screen is structured and how touch events are managed for the buttons.


Dialpad UI
The next step involves designing the Dial Pad screen UI. This screen will feature multiple touch-sensitive buttons corresponding to the digits 0-9, allowing the user to dial numbers directly.
The code will monitor touch input to detect the touchpoints for each button and verify whether the touch falls within the defined range of each button. Once a valid touch is detected, the corresponding digit will be added to a string variable, which will then be displayed as the dialed number on the screen.
Figure 4 illustrates the design of the Dial Pad UI, while Figure 5 presents the corresponding code snippet that implements the functionality of the dial pad on the smallest phone.
Message Typing UI
The next phase involves designing the Keyboard UI, which will allow the input of alphanumeric characters and symbols for composing and sending messages. This process is similar to the dial pad design, but with additional touch keys to accommodate the wider range of inputs.
A special key will be included to toggle between different input modes, such as alphabets, symbols, and special characters, as well as to switch between lowercase and uppercase letters.
Figure 6 shows the design of the message input screen and the virtual keyboard layout.
With the basic UI now in place, the device is ready to perform essential functions such as dialing numbers, sending messages, and handling incoming calls. The remaining UI elements will be addressed in the next part of the series. For now, let’s shift focus to integrating the GSM SIM card module.
May you also like it:
GPS Based Dot-Matrix Display Clock
Micro Sized ChatGPT Cheating Device
IT based Entry and Exit Monitoring System
Reprioritizing The Employee Experience In Consumer-goods And Retail Companies
GSM Integration
The GSM module interfaces with the IndusBoard coin via the serial peripheral, utilizing the serial port for communication. The flexible I/O capabilities of the IndusBoard coin allow for the integration of multiple serial peripheral devices, enabling expanded functionality.
By defining specific pins in the code, these can be configured to function as serial communication pins, establishing a connection between the GSM module and the IndusBoard coin. Most GSM modules rely on AT commands for communication, and these commands are generally standardized across different modules.
AT commands facilitate a range of essential functions, including adjusting volume, making calls, checking signal strength, monitoring network provider status, managing message storage, and more.
To simplify interaction with the GSM module, libraries like GSMSIM are utilized. This library streamlines access to various GSM functions, allowing for tasks such as making calls and checking signal strength to be easily implemented and tested.
Figure 7 presents a code snippet for testing GSM functionality, including making calls and sending messages. Figure 8 shows the 4G GSM module used in the device.

Circuit Diagram
Figure 9 illustrates the circuit diagram for the world’s smallest smartphone, the IndusPhone. The design is centered around the IndusBoard coin, which serves as the main processing unit, and is complemented by key components such as a GSM module, a round touchscreen display, a round LCD, and several additional supporting components.

Construction and Testing
Once all the components have been gathered, proceed to solder them according to the circuit diagram. The display incorporates a touch driver that operates via I2C, while the display itself uses SPI for communication. The GSM SIM card module, on the other hand, communicates through a serial interface.
On the IndusBoard coin, any I/O pin can be assigned to peripheral functions by defining the corresponding pin in the code.
For this configuration, pins 8 and 9 are designated for I2C communication with the display, pins 1-7 are allocated for SPI, and pins 44 and 43 are used for serial communication with the GSM SIM module.
Once all components are properly connected and soldered, they can be positioned behind the IndusBoard coin, as shown in Figure 10.
Figure 11 provides a detailed view of the IndusPhone components’ placement and soldering process.

Once the device is fully assembled, it can be powered on and tested. Each function, including the GSM SIM module, as well as the user interface for typing messages, dialing numbers, and handling incoming calls, should be thoroughly tested. Figure 11 demonstrates the process of typing a message and dialing a number on the device.
EFY Note: This is the first installment in the series on designing the world’s smallest phone. Due to the complexity and advanced nature of the design, subsequent parts will be published to cover further stages of development.
Frequently Asked Questions
What is the IndusPhone?
The IndusPhone is designed to be the world’s smallest smartphone, built around the IndusBoard coin. It integrates various components such as a GSM module, a touchscreen display, and other essential features, all within an incredibly compact form factor.
How does the GSM module communicate with the IndusBoard coin?
The GSM module communicates with the IndusBoard coin through a serial connection. AT commands control functions such as making calls, sending SMS, checking signal strength, and managing network provider status.
What programming language is used to code the IndusPhone?
The IndusPhone is programmed using the Arduino IDE, which supports coding in C/C++. The code handles tasks like interfacing with the GSM module, controlling the touchscreen, and managing calls, messages, and other features.
How is the touchscreen connected to the IndusBoard coin?
The touchscreen display uses both I2C (for the touch driver) and SPI (for the display itself). Pins 8 and 9 on the IndusBoard coin are used for I2C, while pins 1-7 are used for SPI communication.
Can the IndusPhone support 4G networks?
Yes, the IndusPhone is equipped with a 4G GSM module, allowing it to support 4G network connectivity in addition to 2G for calls and messages.
How does the device handle different input modes (e.g., typing messages)?
The device includes a keyboard UI that allows the user to switch between alphabets, numbers, symbols, and special characters. The code provides the functionality to toggle between these modes and enter text in both uppercase and lowercase.
Is it easy to modify or upgrade the IndusPhone?
Yes, the IndusPhone can be reprogrammed with new features or upgrades, as the device’s design supports additional functions through the use of Arduino libraries. More complex functions can be added or adjusted as needed.
What is the significance of the I/O pin configuration on the IndusBoard coin?
The IndusBoard coin provides flexibility in assigning I/O pins for various peripherals. By configuring these pins in the code, you can adapt the hardware to different components, such as the touchscreen, GSM module, and other devices.
Conclusion
The IndusPhone represents a remarkable achievement in miniaturization, combining advanced technology and innovative design to create the world’s smallest functional smartphone. Despite its compact size, it incorporates a range of essential features, including GSM connectivity for calls and messaging, a touchscreen interface, and the flexibility to add more functions as needed.
By leveraging the powerful capabilities of the IndusBoard coin, this design demonstrates how cutting-edge components like the GSM module, display, and sensors can be seamlessly integrated into a small form factor without sacrificing usability. The flexible I/O options of the IndusBoard coin further enhance the device’s adaptability, allowing for efficient handling of both input and output processes.