Skip to main content

R7 Serial: Send Data

📘 Outbound message behaviour

As of January 2020 software updates, multiple API messages can be sent in a single session. Either a manual or routine transmission will trigger all queued outbound messages to be sent.

Transmit Hex Encoded Data​

Serial CommandFunction
R7+WH=Sends user defined hexadecimal data.
Hexadecimal data must be preceded by checksum.
R7+WHP=Sends user defined hexadecimal data and GPS position data.
Hexadecimal data must be preceded by checksum.
R7+WHNC=Sends user defined hexadecimal data.
No Checksum used.
R7+WHNCP=Sends user defined hexadecimal data and GPS position data.
No Checksum used.

🚧 Important

Payload Size

The maximum packet size for transmission is 340 bytes.

The maximum user-definable payload size is 338 bytes or 321 bytes when also requesting GPS data (WHP, WHNCP etc.)

Checksum
When sending data with a checksum, the required checksum type is CRC-CCITT (XModem). Example: the ASCII string "123456789" produces checksum 0x31C3

R7+WH=​

This command instructs the device to send user-supplied data.
The device will respond with a message ID, which can be used later to query status.

/* Transmit "Hello World" (Hex: 48656c6c6f20576f726c64, Checksum: 992a)

R7+WH=992a48656c6c6f20576f726c64\r

/* Receive Response */

<Outbound MessageID>\r
OK\r

Result when data pushed as JSON/HTTP:
For more information please check the PUSH API documentation

{
"txAt": "2019-08-05T16:27:10Z",
"temp": 0,
"userData": "48656c6c6f20576f726c64",
"iridium_latitude": 50.8997,
"JWT": "...",
"device_type": "GRIFFIN",
"transport": "IRIDIUM",
"source": "IRIDIUM",
"trigger": "SERIAL_RAW",
"iridium_longitude": -1.024,
"battery": 0,
"cep": 684,
"momsn": 194,
"at": "2019-08-05T16:27:12Z",
"serial": 100015,
"imei": "300434062929540",
"id": "lNGxekOvAKmanjRpPPrknRdpyLgXjMbV",
"power": true,
"transmit_time": "2019-08-05T16:27:10Z"
}
"imei=300434062929540&device_type=GRIFFIN&serial=100015&momsn=197&transmit_time=2019-08-06T08%3A35%3A36Z&id=rLzVjdQqPgkaElgpkMerWpRyKbJZONAG&transport=IRIDIUM&txAt=2019-08-06T08%3A35%3A36Z&at=2019-08-06T08%3A35%3A38Z&iridium_latitude=50.8981&iridium_longitude=-1.1947&cep=2&source=IRIDIUM&temp=0.0&battery=0&power=true&trigger=SERIAL_RAW&userData=48656c6c6f20576f726c64"

R7+WHP=​

This command instructs the device to send user-supplied data and GPS position data.
The device will respond with a message ID, which can be used later to query status.

/* Transmit "Hello World" (Hex: 48656c6c6f20576f726c64, Checksum: 992a)

R7+WHP=992a48656c6c6f20576f726c64\r

/* Receive Response */

<Outbound MessageID>\r
OK\r

Result when data pushed as JSON/HTTP:
For more information please check the PUSH API documentation

{
"averageCog": 327,
"userData": "48656c6c6f20576f726c64",
"iridium_latitude": 50.9007,
"device_type": "GRIFFIN",
"lon": -1.25216,
"sog": 0.1,
"source": "GPS",
"battery": 100,
"cep": 684,
"momsn": 193,
"id": "NAKwlzdYZQrbELblLLdqnjaoLkJqpevR",
"power": true,
"transmit_time": "2019-08-05T16:26:38Z",
"lat": 50.87766,
"txAt": "2019-08-05T16:26:38Z",
"pdop": 1,
"temp": 28,
"JWT": "...",
"alt": 31,
"transport": "IRIDIUM",
"trigger": "SERIAL_RAW",
"iridium_longitude": -0.9103,
"averageSog": 0,
"at": "2019-08-05T16:26:29Z",
"serial": 100015,
"imei": "300434062929540",
"cog": 0
}
"imei=300434062929540&device_type=GRIFFIN&serial=100015&momsn=198&transmit_time=2019-08-06T08%3A45%3A11Z&id=AlRXzwrdjymbnKlawxwZWKLNxvPkMeqg&transport=IRIDIUM&txAt=2019-08-06T08%3A45%3A11Z&at=2019-08-06T08%3A45%3A01Z&iridium_latitude=50.8975&iridium_longitude=-1.2515&cep=2&lat=50.87766&lon=-1.25211&source=GPS&sog=0.0&cog=0&averageSog=0.0&averageCog=180&alt=34&pdop=1.25&temp=27.0&battery=99&power=true&trigger=SERIAL_RAW&userData=48656c6c6f20576f726c64"

R7+WHNC=​

This command instructs the device to send user-supplied data.
The device will respond with a message ID, which can be used later to query status.

/* Transmit "Hello World" (Hex: 48656c6c6f20576f726c64)

R7+WHNC=48656c6c6f20576f726c64\r

/* Receive Response */

<Outbound MessageID>\r
OK\r

R7+WHNCP=​

This command instructs the device to send user-supplied data and GPS position data.
The device will respond with a message ID, which can be used later to query status.

/* Transmit "Hello World" (Hex: 48656c6c6f20576f726c64)

R7+WHNCP=48656c6c6f20576f726c64\r

/* Receive Response */

<Outbound MessageID>\r
OK\r

Transmit Binary Encoded Data​

Serial CommandFunction
R7+WB=Sends user defined binary data with checksum.
R7+WBP=Sends user defined binary data with checksum and GPS position data.
R7+WBNC=Sends user defined binary data.
R7+WBNCP=Sends user defined binary data and GPS position data.

🚧 Important

Payload Size
The maximum payload size is 268 bytes or 250 bytes when also requesting GPS data (WBP, WBNCP etc.)

Checksum
When sending data with a checksum, the required checksum type is CRC-CCITT (XModem). Example: the ASCII string "123456789" produces checksum 0x31C3

R7+WB=​

This command instructs the device to send user-supplied data.
The device will respond with a message ID, which can be used later to query status.

/* Prepare device to receive binary data */
/* Length = byte size of binary payload */

R7+WB=[length]\r

/* Receive response */

OK\r

/* Device is now listening for binary data */

<binary data>\r

/* Receive response */

<Outbound MessageID>\r
OK\r

R7+WBP=​

This command instructs the device to send user-supplied data and GPS position data.
The device will respond with a message ID, which can be used later to query status.

/* Prepare device to receive binary data */
/* Length = byte size of binary payload */

R7+WBP=[length]\r

/* Receive response */

OK\r

/* Device is now listening for binary data */

<binary data>\r

/* Receive response */

<Outbound MessageID>\r
OK\r

R7+WBNC=​

This command instructs the device to send user-supplied data.
The device will respond with a message ID, which can be used later to query status.

/* Prepare device to receive binary data */
/* Length = byte size of binary payload */

R7+WBNC=[length]\r

/* Receive response */

OK\r

/* Device is now listening for binary data */

<binary data>\r

/* Receive response */

<Outbound MessageID>\r
OK\r

R7+WBNCP=​

This command instructs the device to send user-supplied data.
The device will respond with a message ID, which can be used later to query status.

/* Prepare device to receive binary data */
/* Length = byte size of binary payload */

R7+WBNCP=[length]\r

/* Receive response */

OK\r

/* Device is now listening for binary data */

<binary data>\r

/* Receive response */

<Outbound message ID>\r
OK\r

Additional Commands​

R7+[WH|WHNC|WHP|WHNCP|WB|WBNC|WBP|WBNCP],ID=n​

Sets outbound message ID. Used in combination with send hex or binary data commands.

/* Transmit "Hello World" (Hex: 48656c6c6f20576f726c64)*/
/* Set the Outbound Message ID to '1234' */

R7+WHNCP=48656c6c6f20576f726c64,ID=1234\r

/* Receive response */

1234\r
OK\r

📘 ERROR 3

This error will be returned to indicate rejection of a message command when the submitted ID is a duplicate of one already in the DB and not yet sent.

R7+STAT​

This command requests the transmission status of a specific outbound message.
The device will respond with a status number

/* Check message status */

R7+STAT=<Outbound Message ID>\r

/* Receive response */

<Status #>\r
OK\r
ResponseMeaning
0Message not sent
1Message sent