AT Command Handbook-V2.0
Last revision 2025/12/30
The AT Command Handbook is a detailed guide for utilizing AT Commands, covering topics such as communication set protocols, dialing and answering calls, sending and receiving SMS messages, GPS positioning, and power-saving modes. This resource is designed to help users effectively control and optimize their modules.
Common AT Information Command Set
| Command | Meaning | Return Value |
|---|---|---|
| AT | AT Testing Commands | OK |
| ATE | ATE1 for enabling echo, ATE0 for disabling echo | OK |
| AT+CGMI | Query module manufacturer | OK |
| AT+CGMM | Query module model | OK |
| AT+CGSN | Query product serial number | OK |
| AT+CSUB | Query module version and chip | OK |
| AT+CGMR | Query firmware version serial number | OK |
| AT+IPREX | Set module hardware serial port baud rate | +IPREX: OK |
| AT+CRESET | Reset module (the module will restart and automatically register on the network) | OK |
| AT+CSQ | Query network signal quality, returns signal value | +CSQ: 14,99 OK |
| AT+CPIN? | Query SIM card status, returns READY to indicate the SIM card is properly recognized | +CPIN: READY |
| AT+COPS? | Query current operator, returns operator information after successful network connection | +COPS: OK |
| AT+CREG? | Query network registration status | +CREG: OK |
Note: This AT command is case-insensitive.
Dialing and Answering Calls
| Command | Meaning | Return Value |
|---|---|---|
| AT+CNUM | Query Local Number (not all SIM cards support this command) | +CNUM OK |
| AT+CSDVC | AT+CSDVC=1: Switch to headphone output AT+CSDVC=3: Switch to speaker output | OK |
| AT+CLVL=? | Query volume range | OK |
| AT+CLVL=2 | Set volume to 2 | OK |
| ATD<phone_number>; | Dial the specified mobile number | OK |
| AT+CHUP | Hang up the call | OK |
| AT+CLIP=1 | Set caller ID display | OK |
| ATA | Answer the call | OK |
Demonstration of Making and Receiving Phone Calls
Send the command ATD138xxxxxxxx; to dial the target user's phone number. Note: The command should end with a semicolon.
After answering the call, the conversation begins. Upon hanging up, the message VOICE CALL END:xxxxx and NO CARRIER appear, indicating the end of the call.
When you hear the phone ringing, it means there is an incoming call. Use the command ATA to answer the call.
The message VOICE CALL BEGIN indicates that the call has been connected.
To end the call during the conversation, input the command AT+CHUP to hang up.
Sending and Receiving Short Messages
| Command | Meaning | Response |
|---|---|---|
| AT+CMGF=1 | Set SMS mode to TEXT | OK |
| AT+CMGS="phone number" | Set the recipient's phone number | Return ">", then send the desired content |
| AT+CMGR=SM number | Read the Nth message | Read message |
| AT+CMGD=SM number | Delete the Nth message | OK |
| AT+CPMS? | Check message storage and count | "SM", number of messages, 50 |
Demonstration of Sending English SMS
Send AT+CMGF=1 (set SMS mode to TEXT mode).

Then use the command AT+CMGS="187xxxxxxxx" to send a message to the target phone number. When it returns the symbol ">", immediately input the message you want to send.

Enter the message you want to send, Note: Do not include line breaks when sending.

After completing the message, press "SendHEX" to send the message in hexadecimal format. Send 1A (to instruct the module to perform the sending operation). It will return +CMGS: ok, indicating successful sending.

The receiving end successfully receives the message.

Demonstration of Receiving English SMS and Querying Message Limit
When a message is received, the serial port will print +CMTI: "SM", X, where X represents there are X+1 messages in SM. Send AT+CMGR=X to read the X+1th message, and the content of the SMS will be printed via the serial port.
Send AT+CPMS? to query the number of existing messages and the message limit.


GNSS Positioning
To use GNSS positioning, first connect the GPS antenna and place the module outdoors. Power on and wait for 1 minute before starting the positioning function.
| Command | Meaning | Response |
|---|---|---|
| AT+CGPS=1 | Turn on GPS | OK |
| AT+CGPSINFO | Print GPS information to the serial port | |
| AT+CGPS=0 | Turn off GPS | OK |
AT serial port display
To display GPS information on the screen, use the following command:

The GPS positioning data printed via the serial port is as follows:

Note: The latitude and longitude information printed via the serial port cannot be directly used for positioning. It needs to be converted using a formula.
Assuming the data read is +CGPSINFO:1234.567891,N,12345.678912,E,141023,012523.0,455.1,0.0,
Conversion formula:
Latitude (North) 1234.567891
(1) 1234.567891÷100 = 12 (rounded)
(2) 34567891÷60 = 576.13152
The latitude coordinate in degrees is N 12.57613152°
Longitude (East) 12345.678912
(1) 12345.678912÷100 = 123 (rounded)
(2) 45678912÷60 = 761.3152
The longitude coordinate in degrees is E 123.7613152°
Open a latitude and longitude lookup website and enter the calculated latitude and longitude data one by one to obtain the location.
Obtaining detailed positioning data information via NMEA serial port
- Open two SSCOM windows, one port connected to Simcom HS-USB AT PORT 9001, and the other port connected to Simcom HS-USB NMEA 9001. Use the port connected to AT PORT 9001 to send the AT+CGPS=1 command, and the port connected to NMEA 9001 will automatically print all the detailed positioning data.
- Regarding NMEA, NMEA stands for National Marine Electronics Association, which is the abbreviation of the association responsible for GPS navigation devices' unified RTCM standard protocol.
For detailed data analysis, refer to the NMEA Encyclopedia.
Power Saving Mode
| Command | Meaning | Return Value |
|---|---|---|
| AT+CFUN=0 | In minimum function mode, the serial port can still be used, but functions related to RF, SIM card, and some AT commands cannot be used. | OK |
| AT+CFUN=1 | Full function mode, full power | OK |
| AT+CFUN=4 | Flight mode, the module can still use the serial port, but RF-related and some AT commands cannot be used. | OK |
Use the AT+CFUN=0 command to set the module to the minimum function mode.

Send ATD10086; to dial 10086, and receive the error response "ERROR." Unable to make calls to the mobile company, and the network card function cannot be used.


Sleep Mode
| Command | Meaning | Return Value |
|---|---|---|
| AT+CSCLK=0 | UART remains active | OK |
| AT+CSCLK=1 | When DTR is high, UART enters sleep mode; when DTR is low, UART exits sleep mode. | OK |
| AT+CSCLK? | Check the current sleep status of UART. | +CSCLK: status OK |
In sleep mode, it is still possible to receive paging, messages, and voice calls from the network.
Querying Return Values and Meanings
| Detailed Result Code | Meaning |
|---|---|
| OK | Command executed, no errors |
| CONNECT | Connection successful |
| RING | Ring detected (incoming call received) |
| NO CARRIER | Connection not established or disconnected |
| ERROR | Invalid command or command failed |
| NO DIALTONE | No dial tone, unable to dial, incorrect mode |
| BUSY | Busy on call or server busy |
| NO ANSWER | Connection timeout |
Was this article helpful?
