AT Command Manual (Cellular)
Overview
AT command manual for cellular is a supplementary document on the main RUI3 AT command set. These set of AT commands only work on modules that have cellular capabilities.
Devices that support RUI3 AT Commands Cellular
RAK Modules |
---|
RAK5010 |
RAK5010-M |
AT Commands Format
RUI3 Standard Commands Format
The RUI3 standard AT commands has the standard format AT+XXX
, with XXX
denoting the command. However, LoRaWAN-related commands do not work on cellular modules. Only the general commands and miscellaneous commands work on cellular modules. These commands are related to information and overall configuration of the module like sleep mode, serial port lock, hardware model, etc.
RUI3 Cellular Commands Format
For cellular-related commands, the RUI3 is designed to work on the format ATCELL+XXX
where XXX
denotes the specific command for the cellular module. These commands are based on the specific documentation of the cellular module.
For example, the BG96 Cellular module supports AT+GMI
on its official command set. But in RUI3 AT Command Cellular implementation, this will be equivalent to ATCELL+GMI
. You are basically sending ATCELL+GMI
to the MCU of the board then the MCU with RUI3 firmware will send AT+GMI
to the BG96 Module. You have no direct interaction with the Cellular Module.
Here's a table of some commands showing comparison (only to illustrate).
Cellular Command Description | RUI3 Command | Actual Command in Cellular Module |
---|---|---|
Request Manufacturer Identificat | ATCELL+GMI | AT+GMI |
Operator Selection | ATCELL+COPS=? | AT+COPS=? |
In summary, AT+ on the cellular module original AT commands is replaced by ATCELL+ in RUI3 followed by the specific command/function.
There are commands in BG96 do not have AT+
in front of them like ATI
, AT&V
, and others. These commands still follow the RUI3 format of the ATCELL+
command. For example, ATI
is ATCELL+ATI
in RUI3 command format.
AT Commands Cellular
This section list the common AT Commands for Cellular modules. This includes device information, TCP/IP, HTTP, MQTT, GNSS, etc.
The commands in this list are not the complete commands of the BG96 module. Only the mostly used commands are listed in this document. The complete command set can be found on the Quectel BG96 webpage.
- Quectel_BG96_AT_Commands_Manual_V2.1
- Quectel_BG96_HTTP(S)_AT_Commands_Manual_V1.0
- Quectel_BG96_GNSS_AT_Commands_Manual_V1.1
- Quectel_BG96_TCP(IP)_AT_Commands_Manual_V1.0
- Quectel_BG96_MQTT_Application_Note_V1.0
ATCELL+ATI
Description: Display Product Identification Information
The command shows the product information.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+ATI ATCELL+ATI= | - | ATI Quectel BG96 Revision: BG96MAR02A07M1G | OK / ERROR |
ATCELL+AT&F
Description: Set All Current Parameters to Manufacturer Defaults
The command resets AT command settings to their factory default.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+AT&F0 ATCELL+AT&F0= | - | - | OK / ERROR |
ATCELL+QCFG
Description: Extended Configuration Settings
The command is used to query and configure various settings of UE. There are many configurations available like nwscanmode, nwscanseq, etc. It is highly recommended to see the BG96_AT_Commands_Manual_V2.1.pdf to get all possible configurations.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+QCFG=? | - | Returns all configurations settings available | OK / ERROR |
ATCELL+QCFG=<Input> | Input parameter depends on the specific configuration settings to modify. | - | OK / ERROR |
Examples:
Checking various configurations available in AT+QCFG
.
ATCELL+QCFG=?
AT+QCFG=?
+QCFG: "nwscanmode",(0,1,3),(0,1)
+QCFG: "nwscanseq",(00-010203),(0,1)
+QCFG: "servicedomain",(1,2),(0,1)
+QCFG: "roamservice",(1,2,255),(0,1)
+QCFG: "band",(0-F),(0-7FFFFFFFFFFFFFFF),(0-7FFFFFFFFFFFFFFF),(0,1)
+QCFG: "msc",(0-2)
+QCFG: "sgsn",(0-2)
+QCFG: "celevel",(0-2)
+QCFG: "pdp/duplicatechk",(0,1)
+QCFG: "iotopmode",(0-2)
+QCFG: "nb1/bandprior",<band_priority_seq>
+QCFG: "psm/urc",(0,1)
+QCFG: "ledmode",(0,1,3)
+QCFG: "gpio",<mode>,<pin>[,[<dir>,<pull>,<drv>]/[<val>][,<save>]]
+QCFG: "airplanecontrol",(0,1)
+QCFG: "urc/ri/ring",("off","pulse","always","auto","wave"),(1-2000),(1-10000),(1-10000),("off","on"),(1-5)
+QCFG: "urc/ri/smsincoming",("off","pulse","always"),(1-2000),(1-5)
+QCFG: "urc/ri/other",("off","pulse"),(1-2000),(1-5)
+QCFG: "risignaltype",("respective","physical")
+QCFG: "urc/delay",(0,1)
+QCFG: "cmux/urcport",(0-4)
+QCFG: "ims",(0-2)
+QCFG: "apready",(0,1),(0,1),(100-3000)
+QCFG: "nccconf",(0-1FF)
+QCFG: "psm/enter",(0,1)
+QCFG: "simeffect",(0,1)
+QCFG: "irat/timer",(5,300),(5,20)
+QCFG: "nasconfig",(0-7FFF)
+QCFG: "bip/auth",(0-3)
OK
Setting up nwscanmode parameters.
ATCELL+QCFG="nwscanseq",030201,1
AT+QCFG="nwscanseq",030201,1
OK
Checking specific mode parameters.
ATCELL+QCFG="nwscanseq"?
AT+QCFG="nwscanseq"?
+QCFG: "nwscanseq",030201
OK
ATCELL+CTZU
Description: Automatic Time Zone Update
The Write Command enables and disables automatic time zone updates via NITZ. The configuration is stored in NV automatically.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+CTZU? | - | +CTZU: < 0, 1 or 3 > | OK / ERROR |
ATCELL+CTZU=? | - | +CTZU: (0,1,3) | OK / ERROR |
+CTZU values:
0
= Disable automatic time zone update via NITZ.1
= Enable automatic time zone update via NITZ.3
= Enable the local time.
Examples:
ATCELL+CTZU?
AT+CTZU?
+CTZU: 1
OK
ATCELL+CTZU=?
AT+CTZU=?
+CTZU: (0,1,3)
OK
ATCELL+CTZU=3
AT+CTZU=3
OK
ATCELL+CTZR
Description: Time Zone Reporting
The command controls the time zone reporting of a changed event. If reporting is enabled, the MT returns the unsolicited result code +CTZV: <tz>
or +CTZE: <tz>,<dst>,<time>
whenever the time zone is changed. The configuration is stored in NV automatically.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+CTZR? | - | +CTZR: < 0, 1 or 2 > | OK / ERROR |
ATCELL+CTZR=? | - | +CTZU: (0-2) | OK / ERROR |
Reporting type:
0
= Disable time zone reporting of a changed event1
= Enable time zone reporting of changed event by unsolicited result code:+CTZV: <tz>
2
= Enable extended time zone reporting of changed event by unsolicited result code:+CTZE: <tz>,<dst>,<time>
Examples:
ATCELL+CTZR=?
AT+CTZR=?
+CTZR: (0-2)
OK
ATCELL+CTZR=2
AT+CTZR=2
OK
ATCELL+CTZR?
AT+CTZR?
+CTZR: 2
+CTZE: “+32”,0,“2013/08/23,06:51:13”
ATCELL+COPS
Description: Operator Selection
The command returns the current operators and their status and allows setting automatic or manual network selection.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+COPS? | - | +COPS: <mode, format, operator, act> | OK / ERROR |
ATCELL+COPS=? | - | Returns available network | OK / ERROR |
ATCELL+COPS=<Input Paramter> | <mode, format, operator, act> | Configures Connection ot the Network | OK / ERROR |
It is highly recommended to see the BG96_AT_Commands_Manual_V2.1.pdf to get complete details.
Mode:
0
= Automatic1
= Manual operator selection2
= Manual deregister from network
Format:
0
= Long format alphanumeric operator1
= Short format alphanumeric operator
Operator:
- Operator name
Act (Access Technology) of the network:
0
= GSM8
= LTE Cat M19
= LET Cat NB1
Examples:
ATCELL+COPS=?
AT+COPS=?
+COPS: (1,"SMART","SMART","51503",0),(3,"Globe Telecom-PH","GLOBE","51502",0),,(0,1,2,3,4),(0,1,2)
OK
ATCELL+COPS=0,0,"SMART",0
AT+COPS=0,0,"SMART",0
OK
ATCELL+COPS?
AT+COPS?
+COPS: 0,0,"SMART Prepaid",0
OK
ATCELL+QICSGP
Description: Configure Parameters of a TCP/IP Context
The command can be used to configure the <APN>
, <username>
, <password>
, and other parameters of a TCP/IP context.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+QICSGP? | - | +QICSGP: <context_type>,<APN>,<username>,<password>,<authentication> | OK |
ATCELL+QICSGP=? | - | +QICSGP: (1-16),(1-3),<APN>,<username>,<password>,(0-3) | OK |
ATCELL+QICSGP=<Input Parameter> | < context_type > | <context_type>,<APN>,<username>,<password>,<authentication> | OK / ERROR |
It is highly recommended to see the BG96_TCP/IP_AT_Commands_Manual_V1.0.pdf to get complete details.
<contextID>
Integer type. The context ID. The range is 1-16.
<context_type>
Integer type. The protocol type. 1
= IPV4 or 2
= IPV6
<APN>
String type. The access point name.
<username>
String type. The username.
<password>
String type. The password.
<authentication>
Integer type. The authentication methods = 0 = NONE
, 1 = PAP
, 2 = CHAP
or 3 = PAP or CHAP
Examples:
ATCELL+QICSGP=?
AT+QICSGP=?
+QICSGP: (1-16),(1-3),<APN>,<username>,<password>,(0-3)
OK
ATCELL+QICSGP=1,1,"internet","","",0
AT+QICSGP=1,1,"internet","","",0
OK
ATCELL+QICSGP=1
AT+QICSGP=1
+QICSGP: 1,"internet","","",0
OK
ATCELL+QICSGP=2
AT+QICSGP=2
+QICSGP: 0,"","","",0
OK
ATCELL+CREG
Description: Network Registration Status
The command checks the module registration status to the network via unsolicited result code.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+CREG? | - | +CREG: 0,1 | OK / ERROR |
ATCELL+CREG=? | - | +CREG: (0-2) | OK / ERROR |
ATCELL+CREG=<Input Paramter> | 0,1,2 | OK / ERROR |
It is highly recommended to see the BG96_AT_Commands_Manual_V2.1.pdf to get complete details.
Input parameter:
0
= Disable network registration unsolicited result code1
= Enable network registration unsolicited result code2
= Enable network registration and location information unsolicited result code
Examples:
ATCELL+CREG=?
AT+CREG=?
+CREG: (0-2)
OK
ATCELL+CREG?
AT+CREG?
+CREG: 0,1
OK
ATCELL+CREG=1
AT+CREG=1
OK
ATCELL+CPIN
Description: Enter PIN
The command is used to enter a password or query whether or not the module requires a password which is necessary before it can be operated. The password may be (U)SIM PIN, (U)SIM PUK, PH-SIM PIN, etc.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+CPIN? | - | +CPIN: <code> | OK / ERROR |
ATCELL+CPIN=? | - | - | OK / ERROR |
It is highly recommended to see the BG96_AT_Commands_Manual_V2.1.pdf to get complete CPIN code details and how to change the pin.
Code
READY
= MT is not pending for any passwordSIM PIN
= MT is waiting for (U)SIM PIN to be given
Examples:
ATCELL+CPIN=?
AT+CPIN=?
OK
ATCELL+CPIN?
AT+CPIN?
+CPIN: READY
OK
ATCELL+QNWINFO
Description: Query Network Information
The command indicates network information such as the access technology selected, the operator, and the band selected.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+QNWINFO | - | +QNWINFO: <service info> | OK / ERROR |
Examples:
ATCELL+QNWINFO
AT+QNWINFO
+QNWINFO: "EDGE","51503","GSM 1800",698
OK
ATCELL+QIDEACT
Description: Deactivate a PDP Context
The command is used to deactivate the specific context and close all TCP/IP connections set up in the context.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+QIDEACT=? | - | +QIDEACT: (1-16) | OK / ERROR |
ATCELL+QIDEACT=<Input Paramter> | <1-16> | - | OK / ERROR |
Examples:
ATCELL+QIDEACT=?
AT+QIDEACT=?
+QIDEACT: (1-16)
OK
ATCELL+QIDEACT=1
AT+QIDEACT=1
OK
ATCELL+QIACT
Description: Activate a PDP Context
Before activating a PDP context via AT+QIACT, the context should be configured by AT+QICSGP.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+QIACT? | - | Returns current available context +QIACT: <contextID>,<context_state>,<context_type>,<ipaddress> | OK |
ATCELL+QIACT=? | - | +QIACT: (1-16) | OK |
ATCELL+QIACT=<Input Parameter> | < contextID > | - | OK / ERROR |
It is highly recommended to see the BG96_TCP/IP_AT_Commands_Manual_V1.0.pdf to get complete details.
<contextID>
Integer type. The context ID. The range is 1-16.
<context_state>
Integer type. The context type. 0
= Deactivated or 1
= Activated
<context_type>
Integer type. The protocol type. 1
= IPV4 or 2
= IPV6
<ipaddress>
String type. The username.
Examples:
ATCELL+QIACT=?
AT+QIACT=?
+QIACT: (1-16)
OK
ATCELL+QIACT=1
AT+QIACT=1
ATCELL+QIACT?
OK
AT+QIACT?
+QIACT: 1,1,1,"10.100.32.119"
OK
ATCELL+QPING
Description: Ping a Remote Server
The command is used to test the Internet protocol reachability of a host.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+QPING=? | - | +QPING: (1-16),<host>,(1-255),(1-10) | OK |
ATCELL+QPING=<Input Parameter> | <contextID>,<host><timeout><pingnum> | - | OK / ERROR |
It is highly recommended to see the BG96_TCP/IP_AT_Commands_Manual_V1.0.pdf to get complete details.
Examples:
ATCELL+QPING=?
AT+QPING=?
+QPING: (1-16),<host>,(1-255),(1-10)
OK
ATCELL+QIOPEN
Description: Open a Socket Service
The command is used to open a socket service.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+QIOPEN=? | - | +QIOPEN: (1-16),(0-11),"TCP/UDP/TCP LISTENER/UDP SERVICE","<IP_address>/<domain_name>",<remote_port>,<local_port>,(0-2) | OK |
ATCELL+QIOPEN=<Input Parameter> | <contextID>,<connectID>,<service_type>,<IP_address>/<domain_name>,<remote_port>[,<local_port>[,<access_mode>]] | - | OK / ERROR |
It is highly recommended to see the BG96_TCP/IP_AT_Commands_Manual_V1.0.pdf to get complete details.
Examples:
ATCELL+QIOPEN=?
AT+QIOPEN=?
+QIOPEN: (1-16),(0-11),"TCP/UDP/TCP LISTENER/UDP SERVICE","<IP_address>/<domain_name>",<remote_port>,<local_port>,(0-2)
OK
ATCELL+QISENDEX
Description: Send Hex String
This command is used to send hex string data. It cannot be applied for “UDP SERVICE” and “TCP LISTENER” sockets.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+QISENDEX=? | - | +QISENDEX: (0-11),<hex_string>) | OK |
ATCELL+QISENDEX=<Input Parameter> | <connectID>,<hex_string> | - | SEND OK SEND FAIL ERROR |
It is highly recommended to see the BG96_TCP/IP_AT_Commands_Manual_V1.0.pdf to get complete details.
<connectID>
Integer type. The socket service index. The range is 0-11
<hex_string>
String type. Hex string. The max length is 512 bytes
Examples:
ATCELL+QISENDEX=?
AT+QISENDEX=?
+QISENDEX: (0-11),<hex_string>
OK
ATCELL+QISTATE
Description: Query Socket Service Status
The command is used to query the socket service status.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+QISTATE=? | - | - | OK |
ATCELL+QISTATE=<Input Parameter> | <query_type>,<contextID> or <query_type>,<connectID> | Returns the status of all existing connections | OK / ERROR |
It is highly recommended to see the BG96_TCP/IP_AT_Commands_Manual_V1.0.pdf to get complete details.
Examples:
ATCELL+QISTATE=?
AT+QISTATE=?
OK
ATCELL+QICLOSE
Description: Close a Socket Service
The command is used to close the specified socket service. Depending on the network, it will take at most 10 seconds (default value, can be modified by <timeout>
) to return “OK” or “ERROR” after executing AT+QICLOSE. Before the response is returned, other AT commands cannot be executed.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+QICLOSE=? | - | +QICLOSE: (0-11),(0-65535) | OK |
ATCELL+QICLOSE=<Input Parameter> | <connectID>,<timeout> | - | OK / ERROR |
It is highly recommended to see the BG96_TCP/IP_AT_Commands_Manual_V1.0.pdf to get complete details.
Examples:
ATCELL+QICLOSE=?
AT+QICLOSE=?
+QICLOSE: (0-11),(0-65535)
OK
ATCELL+QHTTPCFG
Description: Configure Parameters for HTTP(S) Server
The command is used to configure the parameters for HTTP(S) server, including configuring a PDP context ID, customizing HTTP(S) request header, outputting HTTP(S) response header, and querying SSL settings.
Command | Input Parameter | Return Value | Return Code |
---|---|---|---|
ATCELL+QHTTPCFG=? | - | +QHTTPCFG: "contextid",(1-16) +QHTTPCFG: "requestheader",(0,1) +QHTTPCFG: "responseheader",(0,1) +QHTTPCFG: "prefix",<ip_prefix>,<prefix_length> +QHTTPCFG: "sslctxid",(0-5) +QHTTPCFG: "contenttype",(0-3) | OK |
ATCELL+QHTTPCFG? | - | +QHTTPCFG: "contextid",1 +QHTTPCFG: "requestheader",0 +QHTTPCFG: "responseheader",0 +QHTTPCFG: "prefix","64:FF9B:0:0:0:0:0:0",96 +QHTTPCFG: "sslctxid",1 +QHTTPCFG: "contenttype",0 | OK / ERROR |
It is highly recommended to see the BG96_HTTP(S)_AT_Commands_Manual_V1.0.pdf to get complete details.
Examples:
ATCELL+QHTTPCFG?
AT+QHTTPCFG?
+QHTTPCFG: "contextid",1
+QHTTPCFG: "requestheader",0
+QHTTPCFG: "responseheader",0
+QHTTPCFG: "prefix","64:FF9B:0:0:0:0:0:0",96
+QHTTPCFG: "sslctxid",1
+QHTTPCFG: "contenttype",0
OK
ATCELL+QHTTPCFG=?
AT+QHTTPCFG=?
+QHTTPCFG: "contextid",(1-16)
+QHTTPCFG: "requestheader",(0,1)
+QHTTPCFG: "responseheader",(0,1)
+QHTTPCFG: "prefix",<ip_prefix>,<prefix_length>
+QHTTPCFG: "sslctxid",(0-5)
+QHTTPCFG: "contenttype",(0-3)
OK