AT Commands Reference

Created: 󰃭 2016-11-26
Updated: 󰃭 2016-11-26

The Hayes command set, also called the AT command set, is a specific command language originally developed by Dennis Hayes[1] for the Hayes Smartmodem 300 baud modem in 1981.

The command set consists of a series of short text strings which can be combined to produce commands for operations such as dialing, hanging up, and changing the parameters of the connection. The vast majority of dial-up modems use the Hayes command set in numerous variations.

Every Hayes command starts with the “AT” characters.

The Hayes command set can subdivide into four groups:

  • Basic command set. A capital character followed by a digit.
  • Extended command set. An “&” and a capital character followed by a digit.
  • Proprietary command set. Usually starting either with a backslash ("") or with a percent sign ("%").
  • Register commands. S= where is the number of the register to be changed, and is the new value that is assigned.

Conventions

> AT<cmd>[?]
[response]
  • : actual AT command.
  • : modem response (optional).
  • ? : for some commands the question mark is used to get the current value(s).

Generic Commands

ATZ - Reset to Default Configuration

Set the modem to default values.

> ATZ

AT&F - Reset to Factory-Defined Configuration

Set modem parameters to the factory defalts.

> AT&F

ATE - Command Echo

Determines whether or not the modem echoes characters received from the DTE during command state.

> ATE?
E: <value>

Enable/Disable echo

> ATE<value>

value:

  • 0 : characters are not echoed
  • 1 : characters are echoed

AT&V - Read the Configuration

Displays the stored and active modem profile settings

> AT&V
<settings>

AT+ICF - DTE to DCE Character Framing

This command determines the local serial port start-stop (asynchronous) character framing used by the DCE.

Get possible values

> AT+ICF=?

Get current values

> AT+ICF?

Set new values

> AT+ICF=[<format>[,<parity>]]

format:

  • 0 : auto detect
  • 1 : 8 data bits, 0 parity bit, 2 stop bits (8N2)
  • 3 : 8 data bits, 0 parity bit, 1 stop bit (8N1)
  • 4 : 7 data bits, 0 parity bit, 2 stop bits (7N2)
  • 5 : 7 data bits, 1 parity bit, 1 stop bit (7P1)

parity:

  • 0 : odd
  • 1 : even
  • 2 : space (0)

AT+IPR - Boud Rate

Set the data rate on the GSM Data Module’s serial interface

> AT+IPR=<rate>

Default rate is 9600

AT+IFC - Flow Control

This command controls the operation of local flow control between the DTE and DCE. Used when the modem is in Data Mode.

> AT+ICF=[<dce2dte>[,<dte2dce>]]

dce2dte/dte2dce:

  • 0 : none
  • 1 : XON/XOFF
  • 2 : line 133

Mobile Equipment Control

AT+CFUN - Set Phone Functionality

List of supported functionalities

> AT+CFUN=?
CFUN: (list of supported <fun>s)

Get current functionalities

> AT+CFUN?
CFUN: <fun>

Set new functinalities

> AT+CFUN=[<fun>]

fun:

  • 0 : set minimum functionalities
  • 1 : set full functionality

AT+CPIN - Enter PIN

Used to query and enter a password which is necessary before the modem will operate.

Get current protection types

> AT+CPIN?
+CPIN: <code>

code:

  • READY : no password required
  • SIM PIN : pin code needs to be entered
  • SIM PUK : puk code needs to be entered

Enter/Change PIN code

> AT+CPIN=<pin>[,<newpin>]
+CPIN: SIM PIN

PIN disable

Using the “Facility Lock” command.

> AT+CLCK="SC",0,"1234"

Generic DCE Control Commands

+++ - Changes from Online Data mode to Online Command mode

> <wait-for-0.5-second>+++<wait-for-0.5-second>

ATO - Back to data mode (after +++)

> ATO

ATH - Hang-up

Instructs the modem to disconnect from the line, terminating any call in progress.

> ATH

Used by the application to disconnect the remote use

ATD - Dial Command

To start a call to a destination number.

> ATD<number>
<result>

Result:

  • OK : command executed, no error
  • CONNECT : connection set up
  • RING : ringing tone is present
  • NO CARRIER : call failed to connect or disconnected
  • ERROR : invalind command or too long
  • BUSY : the called party is currently in another call
  • NO ANSWER : connection failed up to time out

AT+CREG - Network Registration

List of supported s

> AT+CREG=?
+CREG: (list of supported <n>s)

> AT+CREG?
+CREG: <n>,<stat>

n:

  • 0 : disable network registration unsolicited result code
  • 1 : enable network registration unsolicited result code

stat:

  • 0 : not registered operator to registered and not searching
  • 1 : registered, home network
  • 2 : not registered, currently searching a new operator to register with
  • 3 : registration denied
  • 4 : unknown
  • 5 : registered, roaming

AT+COPS - Operator Selection

Registers/displays network operators available

> AT+COPS=?

> AT+COPS?

> AT+COPS=[<mode>[,<format>[,<oper>]]]

AT+CBST - Bearer type selection

Selects the bearer service for mobile originated calls.

List available options

> AT+CBST=?
+CBST: (list of supported <speed>s),(list of supported <name>s),
       (listed of supported <ce>s)

Get current values

> AT+CBST?
+CBST: <speed>,<name>,<ce>

Set new values

> AT+CBST=[<speed>[,<name>[,<ce>]]]

ce:

  • 0 : transparent
  • 1 : non-transparent

Select message service

AT+CSMS

0: SMS AT commands are compatible with GSM 07.05 Phase 2 version 4.7.0. 1: SMS AT commands are compatible with GSM 07.05 Phase 2 + version .

Response

+CSMS: 1,1,1

AT+CMGF - SMS Format

Controls the presentation format of shot messages, from the modem.

List supported modes

> AT+CMGF=?
+CMGF: (list of supported <mode>s)

Get current mode

> AT+CMGF?
+CMGF: <mode>

Set new mode

> AT+CMGF=<mode>

mode:

  • 0 : PDU Mode
  • 1 : Text Mode

AT+CMGS - Send SMS

Send a short message from the modem to the network.

> AT+CMGS=<number><CR><message><CTRL-Z>
+CMGS: <mr>

ATS0 - Automatic Answer

List of supported values

> ATS0=?
S0(list of supported <values>)

Get current value

> ATS0?
<value>

Set new value

> ATS0=<value>

value:

  • 0 : disable auto answer
  • 1-255 : auto answer on the ring number specified