Saturday, October 5, 2024

World’s Smallest Programable IndusPhone Design (Part 1)

Smartphones have become a necessity in daily life. Smartwatches also help in staying connected with phones and receiving notifications. Call access is available directly through smartwatches. Such designs have been published in EFY. A DIY article on world’s smallest phone with e-paper was previously published in EFY (https://www.electronicsforu.com/electronics-projects/e-ink-phone-diy-project). A smartwatch DIY article was also published (https://www.electronicsforu.com/electronics-projects/super-innovative-projects/smartwatch-with-indusboard).

Fig. 1: IndusPhone smartphone calling screen

In continuation of these designs, the world’s smallest phone design has now been developed. This smartphone, just 3cm in length, is somewhat the size of a smartwatch. Since the design is somewhat complex and lengthy, it will be published in multiple parts, allowing step-by-step guidance for better understanding.

Designing

As this is to be the world’s smallest smartphone, the components must be selected carefully to fit within its small frame. The IndusBoard coin was chosen due to its compact size (around 3cm) and because it includes many I/Os required for this device. It also integrates inbuilt sensors, such as a magnetometer, accelerometer, temperature sensor, and Wi-Fi, all within a 3cm size, helping to keep the device compact. A display of the same size with a touchscreen is also required.

Before proceeding with the design, the smartphone’s functions need to be outlined. It supports 2G and 4G SIM cards, Wi-Fi, and a touchscreen display. The basic phone functions include calls, messaging, contacts, dialling, and loudspeaker mode.

Additional features, such as games, a calculator, Wi-Fi contact sharing, Wi-Fi-based calling, and a phone finder were added after completing the design. The smartphone can be programmed with more functions, if needed. This first part of the multi-part article focuses on designing the basic UI and testing the GSM module.

- Advertisement -

EFY note. Before proceeding with the UI code, install ESP32 on Arduino IDE. Then, install the libraries for TFT_eSPI display, GSMSim for interfacing the SIM card module, and CTS816 for using touch on the display.

Bill of materials
IDNameDesignatorFootprintQuantityManufacturer PartManufacturer
1CST816 Touch Round Display GlassCN1CST8161CST816
2GSM ModuleM1SIM800LMODULE_SIM800LMODULE1800ISIM Com
3MIC14M2micro-usb-smd-kh-micro0.8cb-5pj1

4SMD SpeakerSP1Speaker1gspk151035pn-8r0.5w-l35-1.25tINGHAi
5IndusBoard CoinU1Indusboard_coin2IndusBoard CoinIndusBoard
6GC9A01U3GC9A011Waveshare
7SMC-204-ARP6U4SIM-SMD_SIM-SMD_MICROSIM_SMC-2041SMC-204-ARP6XUNPU

Designing UI

The basic UI will cover functions such as displaying numbers, attending calls, typing messages, and sending messages. The calling UI for the incoming call screen will be designed first. The incoming call number will be displayed, and two UI touch buttons will be added for attending or cancelling the call. The UI design will include code to display the number and two buttons with functions to detect touchpoints on the buttons displayed on the screen. Fig. 2 shows the incoming call screen UI design. Fig. 3 shows the code snippet for the calling screen UI design.

Fig. 2: Incoming call screen UI design
Fig. 3: Code snippet for calling screen UI design

Dial pad UI

The next step is designing the dial screen UI. Various touch buttons for different numbers will be added. The code will check the touchpoints for each number and determine whether the touchpoint matches the range of the buttons displayed on the screen. A function will store the number as a string and display it as the dialled number. Fig. 4 shows the dial pad UI. Fig. 5 shows the code snippet for the dial pad UI design for the smallest phone.

- Advertisement -
Fig. 4: Dial pad UI
Fig. 5: Code snippet for dial pad UI design for the smallest phone

Message typing UI

The keyboard UI will be designed to input alphanumeric characters and symbols for typing and sending messages. This process is similar to the dial pad but with more touch keys on the display. A special key will be added to switch between alphabets, symbols, special characters, and to toggle capitalisation. Fig. 6 shows the UI for the message and keypad.

Fig. 6: UI for message and keypad

The basic UI is now ready for functions such as sending messages, dialling numbers, and checking incoming calls. The remaining UI will be covered in the next part. Now, let us turn our attention to integrating the GSM SIM card.

GSM integration

The GSM module operates through the serial peripheral and connects to the IndusBoard coin using the serial port. The flexible I/O of IndusBoard allows the addition of many serial peripheral devices. Defining pins in the code will enable them to function as serial pins. Most GSM modules communicate with the IndusBoard coin using AT commands, and most AT commands are standard across modules. Functions such as adjusting volume, making calls, checking signal strength, network provider status, message storage, and more can be handled via AT commands. Libraries simplify access to these functions, and for this device, the GSMSIM library is utilised. The code can be uploaded to make calls and check signal strength, and functions can be tested as required. Fig. 7 shows the code snippet for testing GSM and making calls or sending messages. Fig. 8 shows the 4G GSM module.

Fig. 7: Code snippet for testing GSM, making calls, and messages
Fig. 8: 4G GSM module

EFY note. Any 3G, 2G, or 4G GSM module can be used for the SIM card. To enable 4G functionality, the A7670C module is recommended. Alternatively, a 2G module, such as the SIM800L, can be used if 4G support is not required.

Circuit diagram

The circuit diagram for the smallest phone is shown in Fig. 9. It is built around IndusBoard coin, a GSM module, a round touchscreen display, a round LCD, and a few other components.

Fig. 9: IndusPhone circuit diagram

Construction and testing

After gathering the components, solder them according to the circuit diagram. The display has a touch driver that operates on I2C, while the display itself works on SPI, and the GSM SIM card module functions on serial. On the IndusBoard coin, any I/O pin can be designated for peripheral functions by defining the pin in the code. In this case, pins 8 and 9 are used for I2C (for the display), pins 1-7 for SPI, and pins 44 and 43 for serial (for the GSM SIM module). After connecting and soldering all the components, fit them behind the IndusBoard coin, as shown in Fig. 10. Fig. 10 shows the IndusPhone components’ placement and soldering.

Fig. 10: IndusPhone components placement and soldering
Fig. 11: Typing message and dialling number

Once the device is assembled, it can be powered and tested. Each function, including the GSM SIM and the UI for typing messages, dialling numbers, and attending calls, should be tested. Fig. 11 shows the process of typing a message and dialling a number.

EFY note. This is the first part of designing the world’s smallest phone. Further parts will be published in a series, as the design is extensive and advanced.

Bonus. You can watch the video of the tutorial of this DIY project at https://www.electronicsforu.com/videos-slideshows/creating-smallest-wearable-phone-with-4g-volte-support-part-1


Ashwini Kumar Sinha, an IoT and AI enthusiast, is a Tech Journalist at EFY.

Ashwini Sinha
Ashwini Sinha
A tech journalist at EFY, with hands-on expertise in electronics DIY. He has an extraordinary passion for AI, IoT, and electronics. Holder of two design records and two times winner of US-China Makers Award.

SHARE YOUR THOUGHTS & COMMENTS

EFY Prime

Unique DIY Projects

Electronics News

Truly Innovative Electronics

Latest DIY Videos

Electronics Components

Electronics Jobs

Calculators For Electronics

×