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>
- Disable unsolicited status callback.
- Enable unsolicited status callback, +CREG: <stat>
- Enable unsolicited status callback, +CREG: <stat>,[,<lac>,<ci>[,<AcT>]]
<stat>
- Not registered, not searching
- Registered to home network
- Not registered, searching for network
- Registration denied
- Registered, roaming
<lac> Location area code
<ci> UTRAN/GERAN cell ID
<AcT> Network access type
- GSM
- Compact GSM
- UTRAN
- GSM with EGPRS
- UTRAN with HSDPA
- UTRAN with HSUPA
- 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>
- Automatic network selection (<oper> ignored)
- Manual network selection, <oper> must be present, <AcT> is optional.
- Deregister from network.
- Set <format only, no registration/deregistration.
- Manual selection with automatic fall back (enters automatic mode if manual selection fails).
<format>
- Long alphanumeric string
- Short alphanumeric string
- Numeric ID
<oper>
String (based on <format>) that identifies the operator.
<stat>
- Unknown
- Available
- Current
- Forbidden
<AcT> Network access type
- GSM
- Compact GSM
- UTRAN
- GSM with EGPRS
- UTRAN with HSDPA
- UTRAN with HSUPA
- 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>
- None
- PAP
- 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

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
This entry was posted on Wednesday, April 30th, 2008 at 2:22 pm and is filed under General. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
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
Really nice information’s, but how can we get the cell info using at commands
very useful, thanks…i’m using it for an openmoko freerunner device (smartphone linux)…thanks!
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.
@Joe
Use one of the serial ports the device expose, they respond to AT commands.
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!!
@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.
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!!!!!
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.
[...] 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.) [...]
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
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
FYi,
AT+CTZU/+CTZR is not workable to my testing modem.
Yong.
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.
Thank you for this info. I’m using Huawei modems, and apparently “AT commands supported by our modems are Company trade secrets”.
Doh.
Great! It helped me a lot. Thanks.
[...] 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 [...]
Thanks a lot for your post, hit the spot. Informative and very helpful.
Excellent composition, thank you very much for the work!
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.
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 ?
In PDP Authentication command – AT$QCPDPP – the thrid parameter is the password and the fourth is the username. Modem: Globesurfer.
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)
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
Nice command list, thanks man.
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
Hi what is the AT+CNMI command values for huawei e160 gsm modem
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
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.
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.
The AT+CACL command, give the whole list of commands supported by my moto device.
Hi thanks for this post, Uv really helped me
See this page for huawey specification
http://www.atcommander.com/download/AT_Command_Specification/
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
hi,
how to download Option GlobeSurfer iCON 7.2 (2.4.6Hd firmware) please show where ulr address. thanks
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?
Great info, thanks for this article, it helped me to learn basic abt at commands thanks again
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
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
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
Hi
I have a Huawei 3G dongle E1750
Is there any way to enable voice feature with the AT command?
Thanks
@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?
@ 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..
very useful thanks a lot ….
plz give me a micromax G4 Setting
apn name
uninor code
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.
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
hi i am using gsm modem sim300_v7.02. i need AT (ATtension) commands for easy recharge
[...] Some less popular commands (CREG, COPS, COPN, etc) Share this:TwitterFacebookLike this:LikeBe the first to like this post. [...]
[...] 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/ [...]