The global system for mobile communication (GSM) is a popular wireless network used worldwide. Various GSM modems are available in the market that can be interfaced with microcontrollers to learn and understand the general architecture of this network as well as apply it in various projects to communicate with a mobile.AT commands are the instructions which are used to control the GSM module.AT Commands for GSM Module are categorized into the test, read, set and execution commands.


Setting up the hardware is very simple. The GSM modem requires a SIM card to send and receive data. The modem works like a mobile phone and has an IMEI number, mostly printed on top of the chip. To communicate with the microcontroller, the modem consists of a serial interface. Make sure of the power requirements of the GSM module before powering it. Some modems may work at voltages between 2.8v and 3v. Most of the microcontroller’s USART interface gives out 5v. So a level-shifter will be required to convert the microcontroller output to the required voltage level. Data is transmitted and received through radio waves. Hence, the GSM modem requires an antenna. Connectors will be provided on the modem to connect the antenna. Once all these are set up, the hardware assembly is complete.

AT Commands for GSM Module

There are a set of attention commands a.k.a.The AT commands are a special type of commands that are used to control machine to machine (M2M) communication. A GSM module functions under the same principle as a mobile station. A mobile station is your mobile phone with a SIM inserted. The module inside your handset is designed to send the AT commands and communicate with the mobile network. Or in other terms, it is a dedicated hardware for mobile network interface.

There are four types of AT commands that make up the GSM command set.

Test command 

Not all manufacturers implement the same AT commands and command parameters. Sometimes, the behavior of the implemented AT commands may vary from the standard AT commands. So a test command is useful to verify the commands.

Syntax: AT<command name>=?

Eg: To test the ATtention Dial command: ATD=?

Read command

This type of commands is used to get the basic information about the mobile phone or the modem such as its settings to perform an operation.

Syntax: AT<command name>?

eg: AT+CGMI to get the name of the manufacturer or AT+CGMM to get the model number or AT+CGSN to get the IMEI number.

Set command

During particular operations, certain configurations must be modified. These commands are used to set or change the configurations of the mobile phone or the modem.

Syntax: AT<command name>=value1,value2,…valueN

Eg: AT+COPS to change the GSM network or AT+CBST to change bearer service type or AT+CSCA to change SMS center address.

Execution command

These commands are simply used to perform an operation.

Syntax:AT<command name>=parameter1,parameter2,…parameterN

Eg: AT+CMGS to send or AT+CMGW to write or AT+CMGD delete.

Take a look at a list of the most commonly used AT commands in the GSM module.


AT Checking the communication between the module and the computer.
Call Control
ATA Answer command
ATD Dial command
ATH Hang up call
SMS Text Mode
AT+CMGL List Messages
AT+CMGR Read Message
AT+CMGS Send Message
AT+CMGW Write message to memory
AT+CMSS Send message from storage
AT+CMGD Delete message
AT+CRES Restore settings




Spread the love, share this