Simple Phone: Call & SMS using GSM Module & Arduino

Call SMS GSM 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 to incoming calls/voice.

You can check the advance version of this project here: Nextion Display Based Mobile Phone using GSM Arduino

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

Bill of Materials

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

GSM Arduino Phone

S.N. Components Name Description Quantity
1 Arduino Board Arduino UNO R3 Development Board 1
2 GSM Module SIM800/900 UART GSM Module 1
3 LCD Display JHD162A 16×2 LCD Display 1
4 Potentiometer 10K 1
5 Keypad 4X4 Keypad 1
6 Speaker 8 ohm 0.2 watt Speaker 1
7 Mic Condenser Phone Mic 1
8 Arduino Power Supply 5V DC Adapter 1
9 GSM Power Supply 12V DC Adapter 1
10 Connecting Wires Jumper Wires 20
11 Breadboard 1

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 24243mm, SIM800 can meet almost all the space requirements in users’ applications, such as M2M, smartphone, 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 552 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

• 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 Call SMS 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 the 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. Receive SMS

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

1. AT: Test whether 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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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.