AT Commands
We've provided details of some of the most important AT commands that you will encounter when using RockBLOCK. Much of this documentation is extracted directly from Iridium's own AT command reference.
The full AT command reference can be downloaded here: Iridium AT Command Guide, version 5
General Notes for RockBLOCK
Default Serial Settings:
Setting | Value |
---|---|
Baud Rate | 19200 |
Data Bits | 8 |
Parity | None (N) |
Stop Bits | 1 |
Communication Protocols
- AT Commands: All commands should start with the prefix
AT
and end with a carriage return (\r
). Using line feed (\n
) will not work. - Command Responses: Responses from the ISU (Iridium Subscriber Unit) typically conclude with an
OK
confirmation.
Command Limitations
- Character Limit: There is a maximum limit of 128 characters for any single AT command string.
- This restriction is particularly relevant when using commands to send text messages, such as
+SBDWT=<text message>
. For messages that exceed this limit, consider using the alternative+SBDWB
command or review other command options.
- This restriction is particularly relevant when using commands to send text messages, such as
Glossary of terms
Term | Meaning |
---|---|
ACK | Acknowledgment |
AT | Attention |
CR | Carriage Return (0x0D or \r ) |
ESS | ETC SBD Subsystem (synonymous with GSS) |
ETC | Earth Terminal Controller |
FA | Field Application |
GSS | Gateway SBD Subsystem (synonymous with ESS) |
IMEI | International Mobile Equipment Identity |
ISU | Iridium Subscriber Unit |
LF | Line Feed (0x0A or \n ) |
MO | Mobile Originated |
MOMSN | Mobile Originated Message Sequence Number |
MT | Mobile Terminated |
MTMSN | Mobile Terminated Message Sequence Number |
RI | Ring Indicate. This is a signal from the ISU which indicates an incoming MT SBD message is present at the ESS. |
RSSI | Received Signal Strength Indicator |
SBD | Short Burst Data |
Useful AT Commands
Disable Flow Control
AT&K0
This command is used to disable flow control. Disabling flow control is recommended for simpler serial communications setups where hardware flow control is unnecessary or when the connecting hardware does not support it.
Save configuration
AT&W0
This command is used to save the current configuration settings in the non-volatile memory of the ISU. Use this command after configuring settings such as baud rate or flow control to ensure that your settings persist after the device is powered down and restarted.
Ring Alerts
+SBDMTA[?]|[=0|1]
This command is used to configure the handling of Mobile Terminated Alert (MTA) messages. This command can be set to enable or disable the alert feature or queried to check the current setting.
Command options:
+SBDMTA?
This command will return the current setting indicating whether MTA messages will trigger an alert (1) or not (0).
Enable MTA Alerts: To enable the MTA alert feature, so the device generates an alert for incoming MT messages, set the command to 1:
+SBDMTA=1
When set to 1, the device will actively alert (e.g., through an indicator or a notification) when a Mobile Terminated message is received.
When SBD ring indication is enabled, the ISU asserts the RI line and issues the unsolicited result code SBDRING
when an SBD ring alert is received.
Disable MTA Alerts: To disable the MTA alert feature, preventing alerts on incoming MT messages, set the command to 0:
+SBDMTA=0
When set to 0, the device will not provide any alerts when a Mobile Terminated message is received.
📘 See the Ring Alerts section for more information.
+CGSN
Command returns the IMEI of the modem.
Command response (eg):
300434063490030
+CRIS
Query the ring indication status, returning the reason for the most recent assertion of the Ring Indicate signal.
The response contains separate indications for telephony and SBD ring indications.
Command response:
+CRIS:<tri>,<sri>
Where <tri>
indicates the telephony ring indication status:
Value | Description |
---|---|
000 | No telephony ring alert received |
001 | Incoming voice call |
002 | Incoming data call |
003 | Incoming fax call |
Where <sri>
indicates the SBD ring indication status:
Value | Description |
---|---|
000 | No SBD ring alert received |
001 | SBD ring alert received |
+CRISX
Query the ring indication status with a timestamp of most recent ring alert.
❗️ +CRISX supported on 9602 TA11002 and later models only.
Command response:
+CRISX:<tri>,<sri>,<timestamp>
<timestamp>
is only present in the extended form of the command (+CRISX
). It is the 32-bit L-band Frame Number (i.e. Iridium System Time)
of the most recent SBD Ring Alert message received from the network, presented in hexadecimal format (up to 8 characters).
The value is invalid (or may refer to an earlier Ring Alert) if sri = 000
.
+CSQ
Command returns the received signal strength indication from the ISU.
Command response:
+CSQ: <rssi>
where <rssi>
is:
Value | Description |
---|---|
0 | Equivalent to 0 bars displayed on the ISU signal strength indicator. |
1 | Equivalent to 1 bars displayed on the ISU signal strength indicator. |
2 | Equivalent to 2 bars displayed on the ISU signal strength indicator. |
3 | Equivalent to 3 bars displayed on the ISU signal strength indicator. |
4 | Equivalent to 4 bars displayed on the ISU signal strength indicator. |
5 | Equivalent to 5 bars displayed on the ISU signal strength indicator. |
These commands return the Relative Signal Strength Indicator value to the application. The commands return a value between 0 and 5. The value indicates strength of the signal relative to the noise floor. A value of 0 indicates no discernable signal and the communications will not work. A value of 1 is the minimum signal strength required to transmit. Every incremental value is an additional 2 dB of margin. For example; 2 is + 2 dB, 3 +4 dB, 5 +8 dB.
+CSQF
The +CSQ
results are not ‘instantaneous’ and the calculation may take seconds.
The +CSQF
command immediately returns the results of the last RSSI calculation to the user. The user must keep in mind this value may be ‘old’, perhaps 15 seconds.
+IPR
✅ Always use the RockBLOCK's default data rate.
❌ Do not set the baud rate to any other speed.
❌ Do not set automatic rate adjustment.
+SBDD
This command is used to clear the MO buffer, MT buffer, or both.
Command format:
+SBDD[]
The parameter identifies which buffers are cleared.
Value | Description |
---|---|
0 | Clear the MO buffer |
1 | Clear the MT buffer |
2 | Clear both MO and MT buffers |
- Using this command or power cycling the ISU are the only means by which both buffers are cleared.
- The mobile terminated (MT) buffer will be cleared when an SBD session is initiated.
- Sending a message from the ISU to the ESS does not clear the mobile originated (MO) buffer.
- Reading a message from the ISU does not clear the mobile terminated buffer.
+SBDIX
This command initiates an SBD session between the ISU and the GSS, setting the SBD Session Type according to the type of command +SBDIX
or +SBDIXA
, and the location according to whether the optional location value is provided +SBDIX=<location>
. If there is a message in the MO buffer it will be transferred to the GSS. Similarly, if there is one or more messages queued at the GSS the oldest will be transferred to the ISU and placed into the MT buffer.
Command format:
+SBDIX[A][=<location>]
- The message, if any, in the mobile originated buffer will be sent from the ISU to the GSS.
- If there is a message queued at the GSS it will be transferred to the ISU and placed into the mobile terminated buffer.
- This command will always attempt an SBD registration, consisting of attach and location update, during the SBD session in order to support SBD Ring Alert. If this is not desired, the
+SBDI
command should be used. - The FA should append an ‘A’ to the command, i.e.
+SBDIXA
, when the SBD session is in response to an SBD ring alert.
<location>
has the format: [+|-]DDMM.MMM,[+|-]dddmm.mmm
where:
DD | Degrees latitude (00-89) |
MM | Minutes latitude (00-59) |
MMM | Thousandths of minutes latitude (000-999) |
ddd | Degrees longitude (000-179) |
mm | Minutes longitude (00-59) |
mmm | Thousandths of minutes longitude (000-999) |
The optional sign indicators specify latitude North (+) or South (-), and longitude East (+) or West (-). If ommitted, the default is +.
Command response:
+SBDIX:<MO status>,<MOMSN>,<MT status>,<MTMSN>,<MT length>,<MT queued>
where:
<MO Status>
:
MO session status provides an indication of the disposition of the MO transaction. The field can take on the following values:
Code | Description |
---|---|
0 | MO message, if any, transferred successfully. |
1 | MO message, if any, transferred successfully, but the MT message in the queue was too big to be transferred. |
2 | MO message, if any, transferred successfully, but the requested Location Update was not accepted. |
3..4 | Reserved, but indicate MO session success if used. |
5..8 | Reserved, but indicate MO session failure if used. |
10 | GSS reported that the call did not complete in the allowed time. |
11 | MO message queue at the GSS is full. |
12 | MO message has too many segments. |
13 | GSS reported that the session did not complete. |
14 | Invalid segment size. |
15 | Access is denied. |
16 | ISU has been locked and may not make SBD calls (see +CULK command). |
17 | Gateway not responding (local session timeout). |
18 | Connection lost (RF drop). |
19 | Link failure (A protocol error caused termination of the call). |
20..31 | Reserved, but indicate failure if used. |
32 | No network service, unable to initiate call. |
33 | Antenna fault, unable to initiate call. |
34 | Radio is disabled, unable to initiate call (see *Rn command). |
35 | ISU is busy, unable to initiate call. |
36 | Try later, must wait 3 minutes since last registration. |
37 | SBD service is temporarily disabled. |
38 | Try later, traffic management period (see +SBDLOE command). |
39..63 | Reserved, but indicate failure if used. |
64 | Band violation (attempt to transmit outside permitted frequency band). |
65 | PLL lock failure; hardware error during attempted transmit. |
<MOMSN>
:
The Mobile Originated Message Sequence Number (MOMSN) is a value assigned by the ISU when sending a mobile-originated message to the GSS. This value is incremented each time an SBD session is successfully completed between the ISU to the GSS. This wrap around counter can range from 0 to 65535.
<MT status>
:
The MT status provides an indication of the disposition of the mobile terminated transaction. The field can take on the following values:
Code | Description |
---|---|
0 | No SBD message to receive from the GSS. |
1 | SBD message successfully received from the GSS. |
2 | An error occurred while attempting to perform a mailbox check or receive a message from the GSS. |
<MTMSN>
:
The Mobile Terminated Message Sequence Number (MTMSN) is assigned by the GSS when forwarding a message to the ISU. This value is indeterminate if the field <MT status>
is zero. This wrap around counter can range from 0 to 65535.
<MT length>
:
The MT length is the length in bytes of the mobile terminated SBD message received from the GSS. If no message was received, this field will be zero.
<MT queued>
:
MT queued is a count of mobile terminated SBD messages waiting at the GSS to be transferred to the ISU.
+SBDRB
This command is used to transfer a binary SBD message from the MT buffer in the ISU to the FA. The MT buffer can contain only one message at a time.
The SBD message is transferred formatted as follows:
{2-byte message length}
+ {binary SBD message}
+ {2-byte checksum}
- The
{2-byte message length}
field represents the length, in bytes, of the SBD message not including the length field or the mandatory two-byte checksum. The high order byte will be sent first. - The checksum is the least significant 2-bytes of the summation of the entire SBD message. The high order byte will be sent first. For example, if the ISU were to send "Hello World!” encoded in ASCII to the FA, the binary stream would be hex
000C48656C6C6F20576F726C6421043D
. - If there is no mobile terminated SBD message waiting to be retrieved from the ISU, the message length and checksum fields will be zero.
- The mobile terminated message buffer will be empty upon power-up.
+SBDRT
This command is used to transfer a text SBD message from the MO buffer in the ISU to the FA. This command is similar to +SBDRB
but does not provide a length indicator or checksum. The intent of this command is to provide a human friendly interface to SBD for demonstrations and application development. It is expected that most usage of SBD will be with binary messages.
Command response:
+SBDRT:<CR>{mobile terminated buffer}
+SBDWB
This command is used to transfer a binary SBD message from the FA to the MO buffer in the ISU. The MO buffer can contain only one message at a time.
Command format:
+SBDWB=<SBD message length>
- Once the command is entered, the ISU will indicate to the FA that it is prepared to receive the message by sending the ASCII encoded string
READY<CR><LF>
to the FA. - The
<SBD message length>
parameter represents the length, in bytes, of the SBD message not including the mandatory two-byte checksum. - The maximum mobile originated SBD message length is 340 bytes. The minimum mobile originated SBD message length is 1 byte.
- Once the FA receives the READY indication from the ISU, the SBD message must be sent from the FA formatted as follows:
{binary SBD message} + {2-byte checksum}
- The checksum is the least significant 2-bytes of the summation of the entire SBD message. The high order byte must be sent first.
For example if the FA were to send "Hello World!" (48656C6C6F20576F726C6421
) to the ISU the binary stream would be:
48656C6C6F20576F726C6421
+ 043D
Important Note:
- The mobile originated buffer will be empty upon power-up.
- If any data is currently in the mobile originated buffer, it will be overwritten.
Command response:
Value | Description |
---|---|
0 | SBD message successfully written to the ISU |
1 | SBD message write timeout. An insufficient number of bytes were transferred to ISU during the transfer period of 60 seconds |
2 | SBD message checksum sent from DTE does not match the checksum calculated at the ISU |
3 | SBD message size is not correct. |
🐛 Bug?
AT+SBDWB
returns one of the 4 responses above (0, 1, 2, 3) with 0 indicating success. In all cases except response 1, the response is followed by result codeOK
. This could be considered a bug, but has been present since the very first SBD release so has not been fixed for fear of breaking existing applications.
+SBDWT
This command is used to transfer a text SBD message from the FA to the MO buffer in the ISU. The MO buffer can contain only one message at a time.
Command format:
+SBDWT=<text message>
or +SBDWT
The text message may be entered on the command line:
- For example,
AT+SBDWT=hello
- The length of
<text message>
is limited to 120 bytes. This is due to the length limit on the AT command line interface. The message is terminated when a carriage return is entered.
Alternatively, the text message may be entered separately:
- Upon entering the command
AT+SBDWT
, the ISU will indicate to the FA that it is prepared to receive the message by sending the stringREADY<CR><LF>
to the FA. - Once the FA receives the READY indication, the text message must be sent, terminated by a carriage return,
- The length of the text message entered in this way is limited only by the maximum MO message length of 340 bytes.
Important Note:
- The mobile originated buffer will be empty upon power-up.
- If any data is currently in the mobile originated buffer, it will be overwritten.
Command response for the AT+SBDWT=<text message>
form:
Value | Description |
---|---|
0 | SBD message successfully stored in the MO buffer |
ERROR | An error occurred storing SBD message in the MO buffer |
Command response for the AT+SBDWT
form:
Value | Description |
---|---|
0 | SBD message successfully stored in the MO buffer |
1 | SBD message write timeout. No terminating carriage return was sent within the transfer period of 60 seconds. |
-MSSTM
Query the latest Iridium System Time received from the network.
Command response:
-MSSTM: <system_time>
<system_time>
can take one of the following forms:
Value | Description |
---|---|
no network service | The ISU has not yet received system time from the network |
XXXXXXXX | Where XXXXXXXX is the current Iridium system time available from the network. The system time as received through the Iridium Air Interface is an 32 bit integer count of the number of 90 millisecond intervals that have elapsed since the epoch. The return value is formatted as an ASCII hexadecimal number without leading zeros. The counter will rollover approximatelly every 12 years or be changed to prevent a rollover and as a result should not be used as a time source for user applications. |
At time of writing, the Iridium System Time epoch is May 11, 2014, at 14:23:55
Iridium system time source
The system time is available and valid only after the ISU has registered with the network and has received the Iridium system time from the network. Once the time is received, the ISU uses its internal clock to increment the counter. In addition, at least every 8 hours, or on location update or other event that requires re-registration, the ISU will obtain a new system time from the network.
Time localization
None. The system time value is always expressed in UTC time.
Resolution and accuracy
The resolution of the system time is one Iridium frame tick, or 90 ms. Accuracy as measured by the difference between the time reported and the actual time it is sent out the ISU’s serial port should not exceed 4 frame ticks (.36 seconds) and in most cases will be one frame tick (.09 seconds) or less.