This is a list of AT commands, or actually Hayes commands. This is not a complete list of all commands, instead if focuses mostly on commands that are needed for GPRS/3G/UMTS/HSDPA and a few other more “exotic” commands that aren’t too well known. I wrote this mainly for myself, but I figure other might find it useful as well.

PIN

Command: AT+CPIN?
Response: +CPIN: <code>
Description: Check PIN status.

<code> can have several values, these are the more common ones

READY
Not waiting for PIN (no PIN or PIN already entered)
SIM PIN
Waiting for SIM PIN code.
SIM PUK
Waiting for SIM PUK code.

Command: AT+CPIN=<pin>[,<newpin>]
Response: OK | +CME ERROR: <error>
Description: Enter/change PIN.

Example

>AT+CPIN?
+CPIN: SIM PIN
OK

>AT+CPIN=”1234″
OK

>AT+CPIN?
+CPIN: READY
OK

Network registration

Command: AT+CREG?, AT+CREG=? , AT+CREG=<n>
Response: +CREG: <n>,<stat>,[,<lac>,<ci>[,<AcT>]] | +CME ERROR
Description: Get network registration status and controls unsolicited status callback, which when turned on will send a +CREG message with the new network status when something changes.

<n>

  1. Disable unsolicited status callback.
  2. Enable unsolicited status callback, +CREG: <stat>
  3. Enable unsolicited status callback, +CREG: <stat>,[,<lac>,<ci>[,<AcT>]]

<stat>

  1. Not registered, not searching
  2. Registered to home network
  3. Not registered, searching for network
  4. Registration denied
  5. Registered, roaming

<lac> Location area code
<ci> UTRAN/GERAN cell ID

<AcT> Network access type

  1. GSM
  2. Compact GSM
  3. UTRAN
  4. GSM with EGPRS
  5. UTRAN with HSDPA
  6. UTRAN with HSUPA
  7. UTRAN with HSDPA and HSUPA

UTRAN is a short for UMTS Terrestrial Radio Access Network

The following example shows that full unsolicited status callback is enabled, that the device is registered to its home network followed by an location area code followed by the UTRAN cell ID. Unfortunately this device does not show access type with this command.

Example:

>AT+CREG=2
OK
>AT+CREG?
+CREG: 2,1,”048A”,”58B2″

Command: AT+COPS?,
Response: +COPS: (<mode>,[<format>,<oper>[,<AcT>]]),…, (<modeN>,[<formatN>,<operN>[,<AcTN>]])

Command: AT+COPS=?
Response: +COPS: <stat>, long <oper>, short <oper>, numeric <oper>, <AcT>

Response: +CME ERROR:
Command: AT+COPS=<mode>,[<format>,<oper>[,<AcT>]]
Response: OK | +CME ERROR

Description: Get/set current GSM/UMTS network operator, list available operators. This can be used to change for example access type and switch network.

<mode>

  1. Automatic network selection (<oper> ignored)
  2. Manual network selection, <oper> must be present, <AcT> is optional.
  3. Deregister from network.
  4. Set <format only, no registration/deregistration.
  5. Manual selection with automatic fall back (enters automatic mode if manual selection fails).

<format>

  1. Long alphanumeric string
  2. Short alphanumeric string
  3. Numeric ID

<oper>
String (based on <format>) that identifies the operator.

<stat>

  1. Unknown
  2. Available
  3. Current
  4. Forbidden

<AcT> Network access type

  1. GSM
  2. Compact GSM
  3. UTRAN
  4. GSM with EGPRS
  5. UTRAN with HSDPA
  6. UTRAN with HSUPA
  7. UTRAN with HSDPA and HSUPA

The following example shows that the devices is connected to the operator called “3″ using UTRAN (which is UMTS, also called 3G). Listing available networks shows the current network, an additional UTMS network called Sweden3G that is forbidden and a GSM network called “3″ that is available.

Example:

>AT+COPS?
+COPS: 0,0,”3″,2

AT+COPS=?
+COPS: (2,”3″,”3″,”24004″,2),(1,”3″,”3″,”24008″,0),(3,”Sweden 3G”,”Sweden3G”,”2)

Command: AT+COPN
Response: +COPN: <numeric1>,<alpha1>, …, +COPN: <numericN>,<alphaN>
Description: Read operator names stored in device memory.

Example:

+COPN: “20408″,”NL KPN”
+COPN: “20412″,”NL Telfort”
+COPN: “20416″,”T-Mobile NL”
+COPN: “20420″,”Orange NL”

+COPN: “24002″,”3 SE”
+COPN: “24004″,”SWEDEN”
+COPN: “24005″,”Sweden 3G”
+COPN: “24008″,”Telenor SE”
+COPN: “24010″,”S COMVIQ”

Define PDP (Packet Data Protocol) context

Command: AT+CGDCONT=<cid> [,<pdptype> [,<apn>[,<pdpaddr> [,<dcomp>[,<hcomp]]]]]
Response: OK | ERROR

Command: AT+CGDCONT?
Response: +CGDCONT: <cid1>,<pdptype1>,<apn1>,<pdpaddr1><dcomp1>,<hcomp1>, …, <cidN>,<pdptypeN>,<apnN>,<pdpaddrN><dcompN>

Command: AT+CGDCONT=?
Response: +CGDCONT: (<cid_range>),<pdptype>,,,(<dcomp_range>),(<hcomp_range>)
Description: Allows configuration of one or several packet data protocol context which forms the base of a data connection.

<cid> PDP context ID, minimum value is 1, maximum value depends on device and can be found with the =? command.

<pdptype> String parameter identifying the protocol type
IP – Internet Protocol
IPV6 – Internet Protocol, version 6
PPP – Point to Point Protocol

<apn> String that identifies the Access Point Name in the packet data network.

<pdpaddr> Requested address, if null (0.0.0.0) an address is requested dynamically.

<dcomp> PDP data compression control, off by default.

<hcomp> PDP header compression control, off by default.

Example:

> AT+CGDCONT=1,”IP”,”bredband.tre.se”
OK

>AT+CGDCONT?
+CGDCONT: 1,”IP”,”bredband.tre.se”,”0.0.0.0″,0,0

>AT+CGDCONT=?
+CGDCONT: (1-16),”IP”,,,(0-2),(0-4)
+CGDCONT: (1-16),”PPP”,,,(0-2),(0-4)
+CGDCONT: (1-16),”IPV6″,,,(0-2),(0-4)

PDP Authentication

Command: AT$QCPDPP=<cid>,<auth_type>,<auth_name>,<auth_pwd>
Response: OK | ERROR
Description: A Qualcomm command, defines authentication parameters for the PDP context id <cid>.

<auth_type>

  1. None
  2. PAP
  3. CHAP

<auth_name> and <auth_pwd> are strings with the authentication information.

Signal quality

Command: AT+CSQ
Response: +CSQ: <rssi>,<ber>
Description: Returns signal quality.

<rssi> Received Signal Strength Indicator

0
-113 dBm or less
1
-111 dBm
2 to 30
-109 to -53 dBm
31
-51 dBm or greater
99
not known or not detectable

<ber> Bit Error Rate, in percent 0..7.
99 not known or not detectable

A note on the RSSI (received signal strength), dBm is a decibel (logarithmic) scale with a reference of 1 milliwatt thus 0 dBm equals a received signal of 1 mW.
Signal strength is usually lower than 1 mW and therefore below 0, so the larger (closer to 0) the better signal strength.
You can convert the RSSI to dBM with
dBm = (rssi \times 2) - 113

Example

>AT+CSQ=?
+CSQ: (0-31,99),(99)
OK

>AT+CSQ
+CSQ: 14,99

Manufacturer/model/revision identification

Command: AT+GMI
Response: Manufacturer Identification string

Command: AT+GMM
Response: Model Identification string

Command: AT+GMR
Response: Revision Identification string

Example:

>AT+GMI
Option N.V.
OK

>AT+GMM
GTM378
OK

>AT+GMR
2.4.6Hd (Date: Oct 04 2007, Time: 11:59:08)

Option N.V. proprietary AT-style commands

Command: AT_OWANCALL=<pdp context>,<enabled>[,<callback enabled>]
Response: OK
Description: Used to initiate UMTS/HSDPA connections.

<pdp context> – Existing, valid, PDP context that specifies the intended APN to connect to.
<enabled> – 1 = Enable connection, 0 = Disable connection (disconnect)
<callback enabled> – 1 = Asynchronous callback when connection is established, 0 = silent

Example:

>AT_OWANCALL=1,1,1
OK
_OWANCALL: 1, 1

>AT_OWANCALL=1,0
OK
_OWANCALL: 1, 0

Command: AT_OWANDATA=<pdp context>
Response: _OWANDATA: <pdp context>, <ip address>, <route?>, <nameserver 1>, <nameserver 2>, <unknown>, <unknown>, <speed>
Description: Retrieve IP configuration from an established connection previously created with AT_OWANCALL

Example:

>AT_OWANDATA=1
_OWANDATA: 1, 79.138.181.171, 0.0.0.0, 80.251.192.244, 80.251.192.245, 0.0.0.0, 0.0.0.0, 72000

References

3GPP TS 27.007 V8.3.0 (2008-03) – AT command set for User Equipment (UE)
Specification details at 3gpp.org

53 Responses to “List of AT commands”
  1. Thanks for your helpfully post!

    I was looking exactly for this. I’m writting a spanish howto for the Option GlobeSurfer Icon 7.2 under GNU/Linux and needed to get atcommands reference.

    http://xinug.org/jazztel/

    Maybe i’ll translate it into english. I’ll quote this post in the howto

  2. Binu says:

    Really nice information’s, but how can we get the cell info using at commands

  3. editor says:

    very useful, thanks…i’m using it for an openmoko freerunner device (smartphone linux)…thanks!

  4. Joe says:

    Thank you very much for your post.

    It is possible sending AT commands to the GlobeSurfer II 7.2 ? How? It has a wifi or ethernet connection…

    I need to send a SMS through this modem with an external application and I don’t know how.

    (excuse me for my poor english)

    thanks.

  5. fli says:

    @Joe

    Use one of the serial ports the device expose, they respond to AT commands.

  6. Joe says:

    Thank you Fli for your post.

    This is the problem! I can’t find a serial port linked to the device in order to send AT commands…. I think the device doesn’t expose Serial Ports.

    Someone has worked with the GlobeSurfer II 7.2 or similar?

    thanks!!

  7. fli says:

    @Joe

    Looks like GlobeSurfer II 7.2 is some sort of 3G-router, I didn’t realize that and assumed it was a simple dongle.
    I have no idea if it’s possible to send SMS with this one or if it’s possible to get access to a serial port.

  8. Joe says:

    Done! I know how to access to the AT commands of the GlobeSurfer II 7.2:

    You can send AT-commands to the GlobeSurfer II via Telnet.

    STEP 1: Open a telnet session
    Open a telnet session using ‘telnet 192.168.1.1′
    Login with username ‘admin’ and password ‘admin’

    STEP 2: Sending AT-commands
    To be able to send AT-Commands it is necessary to use the following structure:
    ‘modem_send_cmd ‘
    When the command is accepted the message ‘Returned 1′ will appear both for good and faulty commands that were sent.

    To see the answers for these commands, in the telnet window, change the Log level of the GlobeSurfer to 7. This can be done using this command:
    ‘log_lev_on 7′

    Thank you for your posts!!!!! :-)

  9. ashraf says:

    Hi,
    Can you please tell me how can I get the IP address of a 3g/gsm modem connected to the computer by using AT command?

    plz send a mail to akdalim@yahoo.com

    thanks.

  10. [...] Now lets start talking to the dongle. 3G support using the Huawei is working like a old fashioned modem, using commands like ATi to get the modem manufacture and so on. (A list of AT commands for Huawei can be found at here.) [...]

  11. Julian says:

    Hello i have a problem.

    Im trying to do this:

    First trying to set to network in manual mode
    Then trying to choose a network by manual selection.
    And i also like to see witch network that is available before i choose one of them

    I have tried some of this but i dont know really how to set it in manual mode only?
    And then i liek to choose the network AT+COPS? shows.
    In this case it shows only 0,0,”NAME”,2

    How can i solve this?

    br

  12. yONG says:

    Hi,

    Does anybody know that how to retrieve the network operator’s date time information using AT command? Or any command that once been issued will have the datetime info in return?

    Thanks,
    Yong.

    p/s: Pls email to yongse@ryobi-g.com

  13. yONG says:

    FYi,
    AT+CTZU/+CTZR is not workable to my testing modem.

    Yong.

  14. Eran says:

    I need to get SMS through GlobeSurfer II via Telnet with an external application. Is someone can help me???
    safrae@netvision.net.il
    Thank’s.

  15. Flo says:

    Thank you for this info. I’m using Huawei modems, and apparently “AT commands supported by our modems are Company trade secrets”.
    Doh.

  16. Yasir says:

    Great! It helped me a lot. Thanks.

  17. [...] les effacer ou consulter la liste de vos contacts stockés sur la puce SIM vous pouvez consulter le reste des commandes AT, je vous laisse y jeter un oeil sur ce [...]

  18. Cesar Yen says:

    Thanks a lot for your post, hit the spot. Informative and very helpful.

  19. Excellent composition, thank you very much for the work!

  20. Babu says:

    Great writing.

    I am using Asus T500 modem. From hyper terminal it doesn’t support some Basic AT command like AT+CMGF=1 for read SMS or send SMS in TEXT mode, AT+CMGL=”ALL” etc.

    Can you tell me why?

    Is this modem use different AT Command Set?

    To all of you, your cooperation will appreciable. Thanks.

  21. Marks says:

    Trying to select the priority of connection of the E160 modem e.g. UMTS first then GPRS. I have seen reference to AT_OPSYS=3,2 for this setting but this comes back as an error. does any one know how i can set the the connection preferences ?

  22. Zs says:

    In PDP Authentication command – AT$QCPDPP – the thrid parameter is the password and the fourth is the username. Modem: Globesurfer.

  23. feitingen says:

    I think the most useful AT command for me is AT+CLAC, it will return a list of at commands supported by the device, unfortunately it does not explain what the commands does, but it helps, and a bit of googling might turn up something useful (like this site)

  24. pedro says:

    hi,
    try to get a e226 on mipsel (drembox dm800) running – have compiled all wvdial and tools – get some response from the modem but can only execute basic commands as ATI, ATZ, ATX3 all others rsspond with ERROR
    the box is well running on a windows xp based system.
    ANY IDEA OR HELP ?

    example:
    ati responding with Manufacturer: Huawei, Modell: E226, Revision etc…….
    atz responding with OK
    but
    AT+GMR —> error or
    ATC1&D2Q0V1E1S0=0&+FCLASS=0 —> error but ATC1&D2Q0V1E1S0=0& is OK

  25. elektronik says:

    Nice command list, thanks man.

  26. Prem says:

    I am using Huawei Edge USB modem(EG162G). I am able to recieve and send sms from SIM. But not able to do that with Modem memory. I am selecting Phone Memory using AT commands then issueing follwing commands
    First selecting Phone memory, like this
    AT+CPMS=ME
    OK
    and then giving following command
    AT+CMGL=ALL
    OK

    But messages are not reading from GSM Memory

  27. macfallen siame says:

    Hi what is the AT+CNMI command values for huawei e160 gsm modem

  28. Qasim says:

    hi
    i am using simcom 300 gsm model and i want to connect it to the base stations manually can u please tell me how i can do that?

    thanks

  29. kiran says:

    how do i get the zte ac2767 signal strength ? the generic AT commnad AT+CSQ is not working for that particular device ? is there any other signal strength AT commands.

  30. Nadun says:

    Hi guys please give me to command for get all supported STK commands in a GSM (EDGE) modem. When I send AT+STSF? command it gave me an ERROR. My modem is Philips EDGE U3 . It’s manual says “SIM application toolkit”.Please help me to find how to access Sim Application via this modem.
    Thanks For All.

  31. Ta says:

    The AT+CACL command, give the whole list of commands supported by my moto device.

  32. Elijah Kamuyu says:

    Hi thanks for this post, Uv really helped me

  33. vinnie costante says:

    See this page for huawey specification :)
    http://www.atcommander.com/download/AT_Command_Specification/

  34. Mohican says:

    Hi,
    Sometimes, when it’s in a mixed coverage area, my UMTS equipement may be connected to an other UMTS carrier network in UMTS mode when my carrier (supplyong my SIM card) offers only GPRS one. If carriers don’t support roaming, and/or my SIM card doesn’t support it, APN is refused and IP level can’t be establised.
    So, does it exist a solution with AT commands (perharps +COPS one) to force modem to connect to my real carrier even in GPRS when other carriers offers UMTS.
    Tank for you help

  35. cellia says:

    hi,
    how to download Option GlobeSurfer iCON 7.2 (2.4.6Hd firmware) please show where ulr address. thanks

  36. Gabriel says:

    thanks, but I have some promeblems when I type AT+CREG? always the modem responses CREG: 0,2 and I wait for registration but It never registrates.

    Could you help me with this?

  37. Great info, thanks for this article, it helped me to learn basic abt at commands thanks again

  38. PDK says:

    thankyou for the nice article..

    i have a query, regarding AT command
    AT+CGDCONT=1,”IP”,”bredband.tre.se”,”0.0.0.0″,0,0

    lets say,i want to keep the default values for APN, PDPAdrress, and Data compression. But a RFC2507 for the header compression..is this command, acceptable ?
    AT+CGDCONT=1,IP,,,0,2

    i get error, when i type the above command..please let me know your inputs

  39. Ram says:

    Hello,
    I am using HSUPA Wireless 3G Modem and the problem i am facing is even if i set the modem to text mode (AT+CMGF=1). It is still showing results in PDU mode only(even if modem supports both text and PDU Modes).
    Here are the list of commands i executed in Hyperterminal.
    AT
    OK
    AT+CREG?
    +CREG: 0,1

    OK
    AT+CSQ
    +CSQ: 31,99

    OK
    AT+CMGF=1
    OK
    AT+CPMS=”ME”,”SM”,”MT”
    +CPMS: 1,23,0,25,1,23

    OK
    AT+CNMI=1,1,0,0
    OK
    AT+CMGL=”ALL”
    +CMGL: 0,”REC READ”,”+919676444741″,,”11/05/17,01:49:31+22″,145,27
    0031003A00340038000A002D000A00530065006E0074002000760069006100200057004100590032
    0053004D0053002E0043004F004D

    OK

    Any idea why it is not displaying in text mode?

    Thanks in advance

  40. Jdk says:

    Hello

    i have a samsung b2700

    every time i try AT+CMGL i get OK, but i don’t receive any messages.

    Does some one know how i can fix that or is that nog possible with that phone?

    Thnx

  41. fa838835 says:

    Hi
    I have a Huawei 3G dongle E1750
    Is there any way to enable voice feature with the AT command?
    Thanks

  42. Laura says:

    @GABRIEL: I have the same problem, CREG: 0,2 and I wait for registration but It never registrates.

    AT+COPS?
    +COPS: 0

    OK
    AT+CREG?
    +CREG: 0,2

    I guess, that my problem is the SIm card, because I am using a microSim, and the EVB Kit is for the Normal one, but sometimes the connection is good, “sometimes”.

    Another solution for the problem?

  43. funkman says:

    @ Ram

    hi,

    please check at+cscs (if exists in your modem).
    This is not pdu mode (your text). it seems to be UCS2.

    see:
    0031 – 1
    003A – :
    0034 – 4
    0038 – 8

    etc..

  44. Husam says:

    very useful thanks a lot ….

  45. Akash says:

    plz give me a micromax G4 Setting
    apn name
    uninor code

  46. alber says:

    Hola a todos. Quiero obtener LAC, LCID, RxL y RNC de mi modem 3g.
    Los tres primeros los obtengo con comandos at, con AT+CREG? y AT+ZRSSI pero el RNC no tengo ni idea.
    Alguien puede orientarme para leer el RNC(Radio Network Controller) de mi módem 3g.
    No importa que no sea con comandos AT, puede ser con cualquier lenguaje de programación.
    Gracias.

  47. Balachandran says:

    hi i am using gsm modem sim300_v7.02. i want to know how to access sim menu or i need at commands for easy recharge

  48. Balachandran says:

    hi i am using gsm modem sim300_v7.02. i need AT (ATtension) commands for easy recharge

  49. [...] Some less popular commands (CREG, COPS, COPN, etc) Share this:TwitterFacebookLike this:LikeBe the first to like this post. [...]

  50. Anonymous says:

    [...] Pour les débutants en AT commandes qui se débrouille en anglais je vous donne le lien d’un article trés bien expliquer que j’ai pu trouvé sur le sujet, je m’en suis du reste servit comme base pour le script : http://www.shapeshifter.se/2008/04/30/list-of-at-commands/ [...]

  51.  
Leave a Reply