Skip to main content

Mini Serial Interface

The AT commands implemented in this document are a subset of general AT modem commands and proprietary commands which follow the implementation for RAW IMT via REST API for the RockREMOTE.

Refer to: RAW IMT

danger

These documents are intended to provide early access information to interested parties during the development process. Whilst we strive to maintain accuracy, any part of the specification or design of these products may change without notice.

This page was last reviewed for accuracy on September 4th 2024.

important

Please Note that many of the AT commands will require the 9770 to be correctly provisioned. In order for this to happen the Iridium antenna will need to be positioned in an area with a good view of the sky and the Mini powered for at least 10mins. This will allow the modem to register and collect it's provisioning information including the available IMT topics.

important

Please Note the v0.3 (BETA) FW release has a limit of 30kB for each individual message in both MO and MT directions for both binary and text. Message sizes beyond this may suffer from corruption, we are working to resolve this issue.

Definitions

MO - Mobile Originated - A message sent from the device to the Iridium network. MT - Mobile Terminated - A message recieved at the device from the Iridium network.

General information

The Mini and Mini OEM will not provide any response to strings or characters that are not defined within this document.

All commands MUST be prefixed with "AT" in order to be recognised

NOTE that characters are NOT echoed back by the Mini

MO and MT buffer limitations.

Due to limitations in memory availability within the Mini and Mini OEM products the buffer between the serial AT interface and the Iridium 9770 modem has the following limitations. The maximum total number of individual messages in both MO and MT directions is 10. i.e 10 can exist in the MO queue at the same time as 10 in the MT queue. The total sum of message sizes in both directions must be less than 190kB. i.e. Less than 100kB in the MO queue at the same time as 90kB in the MT queue would meet this requirement. See note above on message size limit of 30kB for the v0.3 BETA.

Default settings for v0.3 (Beta)

Serial - Speed 115.2kBd, 8 data bits, No parity, No flow control. RS232 Only.

Future feature (not implemented in v0.3 (Beta) will be to enable these settings to be changed in the user config.

AT Boot-Up

When the RockREMOTE is powered up the AT serial command will display a message of the day. This message will include the Rock Three Words (serial number) of the device and the model.

Future feature (not implemented in v0.3 (Beta) will be for this message to also indicate the cause of the last reboot.

AT Syntax

Command Syntax: All command will be issued as follows:

AT+CMD<CR>

Where AT is the AT command prefix, +CMD will be proprietary AT commands for RAW IMT and <CR> is carriage return which will indicate the end of a line.

Response Syntax: All responses will have the following syntax:

+CMD: <Response Context><CR>
OK<CR>

'

If the response requires a contextual response it will return it with a prefix of the command followed by the response context and a carriage return.
All responses will end with an OK<CR>.

Error Syntax: A contextual error from the command will have the following syntax:

+CMD ERROR: <Error Num><CR>

Where <Error Num> will be an unsigned integer defined in by the command followed by a carriage return.

Unsolicited Syntax: +CMD: <Unsolicited Context><CR>

If a command can come in unsolicited it will be prefixed with the command followed by the unsolicited context and a carriage return. This can be enabled and disabled with +UNS command, it is enabled by default.

Indicate queue full notification - particularly for MT

Add Queue status request - lists the message ID’s - useful after waking up from sleep. Include remaining buffer space.

General AT Commands

Get manufacturer string

+CGMI
AT+CGMIReturns the device manufacturer string.
ExampleAT+CGMI
+CGMI: "Ground Control"
OK

Get model string

+CGMM
AT+CGMMReturns the model string.
ExampleAT+CGMM
+CGMM: "RockREMOTE Mini"
OK
NotesReturns the “Variant” key from the device.cfg file

Get Rock 3 Words

+CRTW
AT+CRTWReturns the Rock 3 Words - device serial number.
ExampleAT+CRTW
+CRTW: "mini.mini.me"
OK
Notes

Get Power Consumption - from V0.5

CommandDescription
+CPOW
AT+CPOWReturns the average device power consumption in mW over the last second.
ExampleAT+CPOW
+CPOW: 285
OK
Notes

Reboot - from V0.5

CommandDescription
+CTOK and +CRBT
AT+CTOK
AT+CRBT=<TOK>
Returns a token number that is used to validate a subsequent reboot request.
Request reboot
ExampleAT+CTOK
+CTOK: 123456
OK

AT+CRBT=123456
NotesA successful reboot command (AT+CBRT=<TOK>)is executed immediately - there is no feedback
Errors+CRBT ERROR: <Error Num>

Error Nums:
1: Invalid token

Ethernet enable - from V0.5

CommandDescription
+CETH
AT+CETH
AT+CETH=0|1
Returns whether the Ethernet interface is currently enabled in the configuration.

Disables or enables the Ethernet interface in the configuration. Returns the configured state. Takes effect at next device restart.
ExampleAT+CETH
+CETH: 0
OK
AT+CETH=1
+CETH: 1
OK
Notes
Errors+CETH ERROR:

Setting not written

User configuration read - from V0.6

CommandDescription
+CFGR
AT+CFGRReturns current contents of the user configuration
ExampleAT+CFGR
{<JSON>}
OK
Notes

User configuration write - from V0.6

CommandDescription
+CFGW
AT+CFGWWrites a JSON string into file user.cfg
ExampleAT+CFGW = {<JSON>}
+CFGW: 0
OK
NotesJSON has to be formatted as a single line
Errors+CFGW ERROR: <Error Num>

Error Nums:
1: Invalid Command format
2: Illegal message length
3: Bad JSON

Get the RR-mini firmware version - from V0.6

CommandDescription
+CGCV
AT+CGCVReturns the version number of the firmware running on RR-mini.
ExampleAT+CGCV
+CGCV: 0.6.1
OK
Notes

Get the Iridium modem firmware version - from V0.6

CommandDescription
+CIRV
AT+CIRVReturns the version number of the Iridium firmware running on RR-mini.
ExampleAT+CIRV
+CIRV: 1.3.4
OK
Notes

Device firmware update - capability added in V0.6

CommandDescription
+CTOK and +CDFU
AT+CTOK

AT+CDFU = <TOK>
Returns a token number that is used to validate a subsequent reboot request.

Start kermit session to transfer the new device firmware file.
ExampleAT+CTOK
+CTOK: 123456
OK
AT+CDFU = 123456
Errors+CDFU ERROR: <Error Num>

Error Nums:
1: Invalid token

Get serial number string

+CGSN
AT+CGSN
ExampleAT+CGSN
+CGSN: "300058060009380"
OK
Notes

Get the SIM ICCID string

+CCID
AT+CCIDReturns the Iridium SIM ICCID
ExampleAT+CCID
+CCID: "8988169771000172669"
OK
NotesIf no SIM is present the response will be empty +CCID: ""

Get the signal level

+CSQ
AT+CSQReturns the Iridium Signal Level.
ExampleReturn signal in dBm and Signal Bars (0-5).
+CSQ: <dBm>,<Signal Bars>
AT+CSQ
+CSQ: -125,0
OK
NotesResponse of +CSQ: 0,0 is given when the modem has not provided a “signal_level” - ie when “constellation_visible” is ‘false’

Configure unsolicited messages

When unsolicited messages are disabled the Mini/OEM unit will only store 2 IMT MT messages at any time irrespective of their size.

If a new IMT MT message arrives when the buffer already contains 2 messages then the oldest stored message will be replaced with the one that has just arrived.

Configure unsolicited messages

+UNS=<Enable/Disable>
AT+UNS=Enable and disable unsolicited messages. When unsolicited messages are enabled, the AT interface will send unsolicited AT messages defined in the document. When disabled, it will not send any AT messages unsolicited.

<Enable>: 1 (Default)

<Disabled>: 0
ExampleAT+UNS=1
OK
NotesState is not persisted across power cycle.

AT+UNS with a payload that evaluates to 0 or 1 responds with OK and state is changed - additional input is ignored.
AT+UNS with a payload that evaluates to a number other than 0 or 1 responds with ERROR - additional input is ignored.
AT+UNS with a non-numeric value will disable unsolicited messages.

AT+UNS without a value will respond with current state:
AT+UNS
Response:
+UNS:1
OK
or
+UNS:0
OK

Correctly interprets values that start 0x and 0X.
Treats values in quotes as invalid.

GNSS AT Commands

Get the current GNSS location - Extended in v0.5

+GNSS
AT+GNSSGets the current location of RockREMOTE.
Returns a comma-separated string of the following:
Source:
0: None
1: GPS
2: Galileo
3: Glonass
4: GNSS
5: BeiDou
6: NavIC
Epoch: A UNIX timestamp of when the fix was achieved.
Latitude
Longitude
Fix:
0: None
1: Standard
2: DGPS
Number of Satellites: Number of satellites used for the fix.
HDOP: Horizontal Dilution of Precision
Altitude: In metres
Geoidal Separation: In metres
DGPS Ages: In Seconds
DGPS ID: DGPS station ID
Speed: Speed in knots
Heading: Heading/Track made good in degrees True
ExampleAT+GNSS
+GNSS: 1,1713445252,51.8644,-2.48603,1,6,0.9,140,47,-1,"",0,0
OK
AT+GNSS=\<EPOCH>,\<LATITUDE>,\<LONGITUDE>,\<ALTITUDE>Sets the current location and time from the host to the RockREMOTE.
This function is only available when the internal GNSS is disabled. Positive values for latitude are North. Positive values for longitude are East.
ExampleAT+GNSS=1713445252,51.8644,-2.48603,140.5
OK
Errors+GNSS ERROR: \<Error Num>

Error Numbers:
1: Can't set GNSS with internal GNSS enabled
2: Invalid parameters
3: Invalid position
NotesIf there is no location fix all zeros and empty strings will be returned.
AT+GNSS
+GNSS: 0,0,0.000000,0.000000,0,0,0.0,0.0,0.0,0,"",0.0,0.0
OK
The response will be the stored value - even if the timestamp was some time in the past, i.e. it will give the ‘last good fix’.
v0.3 (Beta) reports DGPS as a fix quality but doesn’t provide age or station ID.

RAW IMT AT Commands

+IMTT
AT+IMTTList all the provisioned RAW IMT Topics known to RockREMOTE devices.
ExampleAT+IMTT
+IMTT: 244,"RAW"
OK
NotesIf no IMT topics are provisioned then no topics will be listed as follows:
AT+IMTT
OK

Commanding RAW IMT

+IMTC[<n>]=<Topic OR Message ID>
AT+IMTC11|2|3=[<Topic OR Message ID>]
ExampleFor v0.3 (Beta), clearing a specific message from the MO queue will not be possible.

Clear IMT MO Queue for Topic 244:
AT+IMTC2=244
OK

Cancel MO message with ID 256:
AT+IMTC3=256
OK
Errors+IMTC[<n>] ERROR: <Error Num>

Error Numbers:
1 Failed to cancel MO operation
2 Invalid Message ID
3 Topic not provisioned
4 Illegal [<n>] provided
5 Command format not currently supported.

Example of an invalid Message ID:
AT+IMTC3=13232
+IMTC3 ERROR: 2
OK
NotesCurrent implementation v0.3 (Beta) only allows all messages in a specified queue to be deleted.
AT+IMTC1 deletes the MT messages destined to the serial port (CDM MT messages are unaffected) and cancels any associated RING events.

AT+IMTC2 deletes all MO messages.

Responses:
+IMTC1
OK
+IMTC2
OK

Queue Status of the IMT

+IMTQ
AT+IMTQReturns the queue status of IMT MO and MT. This is broken down into MO and MT:

+IMTQ: MO,<Count>,<Total Bytes>
+IMTQ: MT,<Count>,<Total Bytes>
ExampleAT+IMTQ
+IMTQ: MO,2,200
+IMTQ: MT,5,600
OK
ErrorsNone
Notes

IMT Statistics

+IMTS
AT+IMTSReturns the IMT statistics:

+IMTS: <Topic Name>,<MO Count>,<MT Count>,<MO DROP Count>,<MT Drop Count>

MO Count: The number of MO IMTs messages sent.

MT Count: The number of MT IMTs received.

MT/MO Drop Count: Dropped messages due to error in reception or transmission, transmission retry, or TTL exceeding.
ExampleAT+IMTS
+IMTS: "Reflector_400465",1,2,0,0
OK
ErrorsNone
Notes

Sending MO IMT in Text Mode with no CRC

+IMTWT=<Topic ID>,<Text>
AT+IMTWT=<Topic ID>:
The IMT Topic ID. This is optional; if a Topic ID is not specified, the configured default Topic ID will be used.

<Text>:
ASCII String to send, limited to 5 kB. The text can be but doesn't have to be encapsulated in quotations.
ExampleThis example will send “Hello World!” on Topic 244; once accepted, a message ID of 1 was returned.
AT+IMTWT=244,"Hello World!"
+IMTWT: 1
OK

This example will send “Hello World!” on the default topic; once accepted, a message ID of 2 was returned.
AT+IMTWT="Hello World!"
+IMTWT: 2
OK
Errors+IMTWT ERROR: <Error Num>

Error Numbers:
1 Topic not provisioned
2 Payload is too large
3 Buffer is full

Example of an invalid Message ID:
AT+IMTWT=55,"A Invalid Topic"
+IMTWT ERROR: 1
OK
NotesWhen the command gets a response, it doesn’t mean the IMT message has been sent; it simply means it has been acknowledged by the device.

Sending MO IMT in Binary Mode with CRC

+IMTWB=<Topic ID>,<Length>
AT+IMTWB=<Topic ID>:
The IMT Topic ID. This is optional; if a Topic ID is not specified, the configured default Topic ID will be used.

<Length>:
The length of the binary data to be sent in binary mode minus the CRC, but the CRC should be included in the transmission. Currently, the maximum length for a single transfer is 100kB.

Once in binary mode, the connected device must send binary data equal to the length specified plus the CRC within 60 seconds.

The CRC is a 16-bit and is appended MSB. The CRC definition is:
width=16
poly=0x1021
init=0x0000
refin=false
refout=false
xorout=0x0000
check=0x31c3
residue=0x0000
ExampleExample of writing 10 bytes on topic 244; once 10 bytes have been received by the device and accepted, a message ID of 1 is returned.
AT+IMTWB=244,10

+IMTWB: 1
OK

denotes the binary mode of the connected device sending binary data.

Example of writing 200 bytes on the default topic; once 200 bytes have been received by the device and accepted, a message ID of 2 is returned.
AT+IMTWB=200

+IMTWB: 2
OK
Errors+IMTWB ERROR: <Error Num>

Error Numbers:
1 Topic not provisioned (Immediately reported after CR)
2 Payload too large (Immediately reported after CR)
3 Insufficient space in buffer (Immediately reported after CR)
4 Timeout (60s) (Asynchronously during binary transmission)
5 CRC failed (After reception of binary data)

Example of a timeout of receiving binary data:
AT+IMTWB=55,10
+IMTWB ERROR: 4
OK
NotesWhen the command gets a response, it doesn’t mean the IMT message has been sent; it simply means it has been accepted by the device. The sending device must send binary data within 60 seconds.

Sending MO IMT in Binary Mode without CRC - from V0.6

+IMTWU=<Topic ID>,<Length>
AT+IMTWU=<Topic ID>:
The IMT Topic ID. This is optional; if a Topic ID is not specified, the configured default Topic ID will be used.

<Length>:
The length of the binary data to be sent in binary mode.

Once in binary mode, the connected device must send binary data equal to the length specified.
ExampleExample of writing 10 bytes on topic 80; once 10 bytes have been received by the device and accepted, a message ID of 1 is returned.
AT+IMTWU=80,10

+IMTWU: 1
OK

denotes the binary mode of the connected device sending binary data.

Example of writing 200 bytes on the default topic; once 200 bytes have been received by the device and accepted, a message ID of 2 is returned.
AT+IMTWU=200

+IMTWU: 2
OK
Errors+IMTWU ERROR: <Error Num>

Error Numbers:
1 Topic not provisioned (Immediately reported after CR)
2 Payload too large (Immediately reported after CR)
3 Insufficient space in buffer (Immediately reported after CR)
4 Timeout (60s) (Asynchronously during binary transmission)

Example of a timeout of receiving binary data:
AT+IMTWU=55,10
+IMTWU ERROR: 4
OK
NotesWhen the command gets a response, it doesn’t mean the IMT message has been sent; it simply means it has been accepted by the device. The sending device must send binary data within 60 seconds.

Sending MO IMT of a JSON object with no CRC - from V0.6

+IMTWJ=<Topic ID>,<JSON>
AT+IMTWJ=<Topic ID>:
The IMT Topic ID. This is optional; if a Topic ID is not specified, the configured default Topic ID will be used.

<JSON>:
A JSON object formatted as a string with on carriage returns. Other white-space will be accepted.
ExampleThis example sends a JSON object that contains a 'key' of type boolean called status with a value of false on topic 80, once accepted a message ID of 1 was returned.
AT+IMTWJ=80,{"status":false}
+IMTWJ: 1
OK
Errors+IMTWJ ERROR: <Error Num>

Error Numbers:
1 Topic not provisioned.
2 Payload too large.
3 Buffer is full.

Example of an invalid message ID:
AT+IMTWJ=55,"A Invalid Topic"
+IMTWJ ERROR: 1
OK
NotesWhen the command gets a response it doesn’t mean the IMT message has been sent it simply means it has been acknowledged by the device.

Receive MT IMT Message containing JSON object without CRC - from V0.6

+IMTRJ=<Topic ID>
AT+IMTRJ=When a IMT MT is available indicated by the +IMTMTRING
It can be requested in text mode, non-printable characters will be denoted with a . character.
ExampleRequesting IMT MT on topic 55 after +IMTMTRING

+IMTMTRING=55,2,100

AT+IMTRJ=55
...
OK

... denotes JSON encoded message.

Request IMT MT on the default topic:

AT+IMTRJ
...
OK
Errors+IMTRJ ERROR: <Error Num>

Error Numbers:
1 No IMT.

Example:
No IMT MT when requesting message
AT+IMTRJ=55
+IMTRJ ERROR: 1
OK
Notes

Status of MO IMT Message

+IMTMOS=<Message ID>
AT+IMTMOS=<Message ID>:
The message ID of the IMT MO message which was returned by +IMTWT or +IMTWB.
ExampleAT+IMTMOS=1
+IMTMOS: <Topic ID>,<State>,<Epoch>
OK

<Topic ID>:
This will be the Topic ID which message is for.

<State>:
1: Queued, waiting to be sent.
2: Sending, been sent to the Iridium Modem
3: Dropped, failed to send
4: Cancelled, it was cancelled using +IMTC3
5: Sent

<Epoch>:
A UNIX timestamp of when the state was last changed. This timestamp may be inaccurate as it depends if the RockREMOTE device has synced with a reliable time source like GNSS.
Errors+IMTMOS ERROR: <Error Num>

Error Numbers:
1 Invalid message ID
5 Command format not currently supported.

Example:
Timeout of receiving binary data.
AT+IMTMOS=1106
+IMTMOS ERROR: 1
OK
NotesFor v0.3 (BETA) the +IMTMOS= command is not supported.

Status of MT IMT

+IMTMTS
AT+IMTMTSThis command will return the head of the MT queue similar to the +IMTMTRING unsolicited message.

+IMTMTS: <Topic ID>,<Message ID>,<Message Length>
ExampleAT+IMTMTS
+IMTMTS: <Topic ID>,<Message ID>,<Message Length>

<Topic ID>:
The IMT Topic ID, this will be the Topic ID of received MT IMT.

<Message ID>:
A unique Message ID for this MT. This ID should be used to acknowledge the message.

<Message Length>:
This will be the message length of the MT IMT. This will be from 1 to 100 kbytes. This doesn’t include the CRC.
ErrorsNone
Notes

MT IMT Ring

+IMTMTRING
AT+IMTMTRINGThis will come in unsolicited to indicate a message has arrived. It can be commanded and is explained below.

If the message hasn’t been acknowledged within 5 minutes this unsolicited messages will be repeated.
ExampleAn unsolicited ring:
+IMTMTRING: <Topic ID>,<Message ID>,<Message Length>

<Topic ID>:
The IMT Topic ID, this will be the Topic ID of received MT IMT.

<Message ID>:
A unique Message ID for this MT. This ID should be used to acknowledge the message.

<Message Length>:
This will be the message length of the MT IMT. This will be from 1 to 100 kbytes. This doesn’t include the CRC.
ErrorsNone
NotesRefer to +UNS to enable and disable unsolicited messages.

Receive MT IMT Message in binary mode with CRC

+IMTRB=<Topic ID>
AT+IMTRB=When an IMT MT is available indicated by the +IMTMTRING.

It can be requested in binary mode.

<Topic ID>:
The IMT Topic ID, this is optional; if a Topic ID is not specified, the configured default Topic ID will be used.
ExampleRequesting IMT MT on topic 55 after +IMTMTRING:
+IMTMTRING=55,1,100
AT+IMTRB=55

OK

denotes binary reception of the 100 bytes plus 2 bytes for the CRC.

Request IMT MT on the default topic:
AT+IMTRB

OK
Errors+IMTRB ERROR: <Error Num>

Error Numbers:
1 No IMT
2 Queued message does not match the specified topic.

Example:
No IMT MT when requesting binary data:
AT+IMTRB=55
+IMTRB ERROR: 1
OK
NotesTo clear this MT IMT so more can be received it must be acknowledged with +IMTA.

Current implementation v0.3 (BETA) returns ERROR: 2 if the 1 pending MT message is not for the specified topic.

Receive MT IMT Message in text mode without CRC

+IMTRT=<Topic ID>
AT+IMTRT=When an IMT MT is available indicated by the +IMTMTRING.

It can be requested in text mode, non-printable characters will be denoted with a . character.

<Message ID>:
A unique Message ID for this MT. This ID should be used to acknowledge the message.
ExampleRequesting IMT MT on topic 55 after +IMTMTRING:
+IMTMTRING=55,2,100
AT+IMTRT=55

OK

denotes text encoded message.

Request IMT MT on the default topic:
AT+IMTRT

OK
Errors+IMTRT ERROR: <Error Num>

Error Numbers:
1 No IMT

Example:
No IMT MT when requesting base64 data:
AT+IMTRT=55
+IMTRTERROR: 1
OK
NotesWill leave off the last two characters as they are the CRC. Unprintable characters are replaced with commas.
The source message is irreversibly altered so if IMTRB is requested the binary will be the converted message without the CRC.

Acknowledge MT IMT Message

+IMTA=<Message ID>
AT+IMTA=When an IMT MT is available indicated by the +IMTMTRING.

<Message ID>:
A unique Message ID for this MT. This ID should be used to acknowledge the message. This is returned in the +IMTMTRING command.
ExampleAcknowledging an IMT MT with message ID 1:
AT+IMTA=1
OK
Errors+IMTA= ERROR: <Error Num>

Error Numbers:
1 Message ID unknown.

Example:
An invalid or unknown message ID:
AT+IMTA=5
+IMTA ERROR: 1
OK
Notes

RAW IMT AT Sequence Diagrams

Typical IMT MO Sequence

Typical IMT MO Sequence

Typical IMT MT Sequence

Typical IMT MT Sequence