Simple Homemade Phone: Call & SMS using GSM Module & Arduino

Call SMS GSM Arduino (Last Updated On: June 1, 2019)

Call & SMS using GSM Module & Arduino

In this post, we will learn how to make a Call & SMS using GSM Module & Arduino. This is a Simple Homemade Phone using GSM Module and Arduino. This simple phone is capable of calling to another number as well as receiving an incoming call. Similarly, it can also be used to send an SMS as well as read a received SMS.

So we have interfaced GSM Module SIM800/SIM900 with Arduino UNO Board. A 16×2 LCD is used for displaying the operations that are happening like displaying signal strength, carrier name, incoming or outgoing call, SMS sent received status and also time elapsed. The 4×4 Keypad is used to enter the number or type an SMS text using the alphanumeric keyboard. The mic is used to transmit the spoken sound and a speaker is used for ringing and listening incoming call/voice.

This simple homemade phone can be useful for final year projects and also for understanding the functioning of the GSM module using some AT Commands functions. The components can be purchased from the link given below. All the circuit diagram connections, as well as every explanation, is included below.

You can check one of our earlier project based on GSM Module: Gas Leakage Detector with SMS Alert using GSM Module & Arduino

Components Required:

Following are the list of components required for the project: Simple Homemade Phone- Call & SMS using GSM Module & Arduino

Components Needed for Simple Phone

1. Arduino UNO Board (Buy Online from Amazon)
2. SIM800/SIM900 GSM Module (Buy Online from Amazon)
3. 4x4 Keypad (Buy Online from Amazon)
4. 16x2 LCD Display (Buy Online from Amazon)
5. 8 ohm 0.2 watt Speaker (Buy Online from Amazon)
6. Mic (Buy Online from Amazon)
7. 10K Potentiometer (Buy Online from Amazon)
8. 5V DC Adapter for Arduino (Buy Online from Amazon)
9. 12V DC Adapter for GSM Module (Buy Online from Amazon)
10. Connecting Wires
11. Breadboard

SIM800 GSM Module


SIM800 is a quad-band GSM/GPRS module designed for the global market. It works on frequencies GSM 850MHz, EGSM 900MHz, DCS 1800MHz and PCS 1900MHz. SIM800 features GPRS multi-slot class 12/ class 10 (optional) and supports the GPRS coding schemes CS-1, CS-2, CS-3 and CS-4. With a tiny configuration of 24*24*3mm, SIM800 can meet almost all the space requirements in users’ applications, such as M2M, smart phone, PDA and other mobile devices.

Sim800 GSM Module

SIM800 has 68 SMT pads and provides all hardware interfaces between the module and customers’ boards. SIM800 is designed with a power saving technique so that the current consumption is as low as 1.2mA in sleep mode. SIM800 integrates TCP/IP protocol and extended TCP/IP AT commands which are very useful for data transfer applications.


• Support up to 5*5*2 Keypads.
• One full function UART port, and can be configured to two independent serial ports.
• One USB port can be used as debugging and firmware upgrading.
• Audio channels which include a microphone input and a receiver output.
• Programmable general purpose input and output.
• One SIM card interface.
• Support Bluetooth function.
• Support one PWM.
• PCM/SPI/SD card interface, only one function can be accessed synchronously.
• Power supply 3.4V ~ 4.4V
• Typical power consumption in sleep mode is 1.2mA
• Frequency bands GPRS multi-slot class 12
• Support SIM card: 1.8V, 3V
• Serial Port: Can be used for AT commands for data stream
• USB Port: Can be used as debugging and firmware upgrading

Circuit Diagram & Connections:

Circuit Diagram for Call SMS using GSM & Arduino

Assemble the circuit as shown in the figure above. Connect SIM800/SIM900 Module to Arduino digital pin 2 & 3. Similarly connect the 16×2 LCD to Arduino analog pins A0, A1, A2, A3, A4, A5. Similarly connect 4×4 Keypad to Arduino digital pins 11, 10, 9, 8, 7, 6, 5, 4. The speaker and microphone need to be connected to GSM Module.

Circuit Operations & Working:

Arduino uno with a GSM shield is used to perform four cellular operations. These are
1. Make calls
2. Receive calls
3. Send SMS
4. Recieve SMS

We interface Arduino with GSM shield using AT commands. So, take an overview of some commonly used AT commands:

1. AT: Test weather GSM shield respond
2. AT+CIMI: Request International Mobile Subscriber Identity
3. ATD+91XXXXXXXXXX: Dial the specified number ( replace x with the number)
4. AT+CMG=1: Switch on the messaging mode of gsm
5. AT+CNMI=2,2,0,0, 0: Turn on the message indicator
6. ATH: Halt call
7. ATA: Pick up an incoming call
8. AT+COPS: Get the service provider name
9. AT+CSQ: Get the signal strength

How to Send/Receive Call & SMS?

To Send Call

By pressing button ‘A’ you will be in Send call mode. LCD will prompt you to enter a number to call.

These buttons are used in send call mode

‘D’:used to cancel calling operation
‘*’:used to delete a printed digit
‘#’: Call on the dialed number

To Send SMS

Press ‘B’ key for configuring shield in send message mode. ‘Enter number’ will be prompted your LCD. You need to enter a 10 digit number

These buttons are also used in Send message mode.
‘D’: Used to cancel the sending operation
‘*’: Used to delete a printed digit
‘#’: Send SMS on the dialed number

To Receive Call & SMS

Module configures itself in receiving mode when it starts and the LCD will show a response as soon as a call or SMS is received. The program uses only two buttons for user interaction in case of response received.

‘*’: used to show the received SMS/ Pick up Call.
‘#: used to halt or terminate message / terminate incoming Call

Source Code/Program:

The code for making Call & SMS using GSM Module & Arduino is given below. The code is developed by Agam Tyagi. The full code credit goes to him and Mr. Devvrat Arya as well as Mr. Harsha Deva boley Shetty.

Video Tutorial & Explanation:

Recommended For You

Ask A Question .......