GSM library – Standard Arduino Libraries

The GSM library is included with Arduino IDE 1.0.4 and later.

With the Arduino GSM Shield, this library enables an Arduino board to do most of the operations you can do with a GSM phone: place and receive voice calls, send and receive SMS, and connect to the internet over a GPRS network.

The GSM shield has a modem that transfers data from a serial port to the GSM network. The modem executes operations via a series of AT commands.

The library abstracts low level communications between the modem and SIM card. It relies on the Software Serial library for communication between the moden and Arduino.

Typically, each individual command is part of a larger series necessary to execute a particular function. The library can also receive information and return it to you when necessary.

To use this library
#include <GSM.h>

Library structure

As the library enables multiple types of functionality, there are a number of different classes.

  • The GSM class takes care of commands to the radio modem. This handles the connectivity aspects of the shield and registers your system in the GSM infrastructure. All of your GSM/GPRS programs will need to include an object of this class to handle the necessary low level communication.
  • Voice call handling, managed by the GSMVoiceCall class.
  • Send/receive SMS messages, managed by the GSM_SMS class.
  • The GPRSClass is for connecting to the internet.
  • GSMClient includes implementations for a client, similar to the Ethernet and WiFi libraries.
  • GSMServer includes implementations for a server, similar to the Ethernet and WiFi libraries. NB : A number of network operators do not allow for incoming connections from the public internet, but will allow them from inside their own. Check with your operator to see what restrictions there are on data use.
  • A number of utility classes such as GSMScanner and GSMModem

Ethernet library compatibility

The library tries to be as compatible as possible with the current Ethernet library. Porting a program from an Arduino Ethernet or WiFi library to an Arduino with the GSM Shield should be fairly easy.

While it is not possible to simply run Ethernet-compatible code on the GSM shield as-is, some minor, library specific, modifications will be necessary, like including the GSM and GPRS specific libraries and getting network configuration settings from your cellular network provider.


There are two groups of examples for the GSM shield. There are examples to illustrate the possibilities of the shield, like how to send SMS messages and connect to the internet. There is also set of example tools that you can use to debug the functionality of the library and the hardware at lower level.

  • Gsm Web Client: Download the content of a website to your Arduino board through GPRS.
  • Gsm Web Server: Create a wireless web server through GPRS.
  • Make Voice Call: Get your shield to make phone calls from the Serial Monitor.
  • Send SMS: Use the Serial Monitor to type in SMS messages to different phone numbers.
  • Receive Voice Call: Check the status of the modem while getting voice calls.
  • Receive SMS: Read SMS messages and prompt them to the Serial Monitor.

Also Checkout :

All Arduino Standard Libraries