RockREMOTE Mini REST API — Command Response
The RockREMOTE Mini Command Response API is an HTTP REST API for querying device status and sending the commands described below.
Minimum version v0.12.1
Connection Status
Local devices attached to the LAN may need to check when the RockREMOTE Mini is ready to receive data to for the WAN. For example, when using the sleep pin to wake up the RockREMOTE Mini from low-power mode, it can take around a minute to fully start and establish a WAN connection.
Devices can make a HTTP GET request on port 80 to the local IP address of the RockREMOTE Mini
(default 192.168.250.1), as follows:
http://<rockremote ip>/api/public/connection
The response will be one of the following plain text strings:
disconnectediridium
Any response code other than 200 should be treated as disconnected.
Signal Strength
http://<rockremote ip>/api/public/signal-strength
Response will be the current Iridium signal level(negative integer representing dBm -126 to -100) and signal bars(integer 0 to 5).
example -113,4
The Iridium Certus 9704 and 9770 transceivers in RockBLOCK and RockREMOTE products are configured in firmware to transmit only when signal strength is at least 1 bar. Do not duplicate this check in your application. Do not delay, block or skip a transmission based on a signal reading; send the data and the transceiver will transmit it when conditions allow.
Signal readings remain useful for diagnostics, installation checks and monitoring.
PPP Status
http://<rockremote ip>/api/public/ppp-status
Responses:
updown
Iridium services
http://<rockremote ip>/api/public/iridium-services
Response is a comma separated list of the services by name:
example Messaging, Packet Data
IMT topics
Will return the list of IMT topics that are provisioned to the Iridium Modem.
http://<rockremote ip>/api/public/imt-topics
Still in development. Response:
Unknown
Trigger Reboot
Local devices can make a HTTP reboot request on port 80 to the local IP address of the RockREMOTE Mini
(default 192.168.250.1), as follows:
http://<rockremote ip>/api/public/reboot
Current Time
Local devices attached to the LAN may need to synchronise their time with the RockREMOTE Mini. When the RockREMOTE Mini has synchronised its time with a GNSS fix or NTP Server it can report the Unix time, which is the number of seconds that have elapsed since 00:00:00 UTC on 1 January 1970.
Devices can make a HTTP GET request on port 80 to the local IP address of the RockREMOTE Mini (default 192.168.250.1), as follows:
http://<rockremote ip>/api/public/current-time
The response to this request will either be an empty string or the Unix Epoch time. An empty string response indicates that the RockREMOTE Mini has not successfully synchronised with a valid time source.
Free Memory
(Available from v0.18)
Returns the free heap memory.
192.168.250.1/api/public/free-memory
Device Temperature
(Available from v0.18)
Returns the temperature from the surface of the main PCBA (Centre edge)
192.168.250.1/api/public/device-temperature
Microcontroller Temperature
(Available from v0.18)
Returns the temperature reported by the MCU.
192.168.250.1/api/public/mcu-temperature
Location
(Available from v0.28)
Returns the current GNSS location fix.
192.168.250.1/api/public/location
Response is a JSON object:
fix-trueif a valid GNSS fix has been acquired, otherwisefalselatitude- latitude in decimal degreeslongitude- longitude in decimal degreesaltitude- altitude in metrestime- Unix Epoch time of the fixsatellites- number of satellites used in the fixquality- fix quality indicatorhdop- horizontal dilution of precisionspeed- speed over groundheading- heading/course over ground
example:
{
"fix": true,
"latitude": 50.123456,
"longitude": -4.123456,
"altitude": 12.3,
"time": 1700000000,
"satellites": 8,
"quality": 1,
"hdop": 0.9,
"speed": 0.0,
"heading": 0.0
}
Set Location
(Available from v0.29)
Sets the current location and time on the RockREMOTE Mini from a device on the LAN. This is the REST equivalent of the
AT+GNSS= serial command, and accepts the same arguments.
192.168.250.1/api/public/set-location=<epoch>,<latitude>,<longitude>,<altitude>
This endpoint is only accepted when the internal GNSS receiver is disabled ("GNSS": { "Enabled": false } in the
User Configuration).
Arguments (all four are required):
epoch- Unix Epoch time of the fix, in seconds (must be non-zero)latitude- latitude in decimal degrees, -90 to 90 (positive values are north)longitude- longitude in decimal degrees, -180 to 180 (positive values are east)altitude- altitude in metres, minimum -450
Setting the location also sets the RockREMOTE Mini's clock to the supplied epoch time. The new position is then reported by the Location endpoint and used for position reports.
example:
192.168.250.1/api/public/set-location=1713445252,51.8644,-2.48603,140.5
Response is a JSON object. On success:
{"status":"OK"}
On failure, status is ERROR and the response includes an error code and message:
| Code | Message | Cause |
|---|---|---|
1 | GNSS must be disabled before setting a manual fix | The internal GNSS receiver is enabled |
2 | Expected /set-location=<epoch>,<lat>,<long>,<alt> | The = and arguments are missing |
2 | Expected 4 comma-separated fields: epoch,lat,long,alt | Fewer than four arguments were supplied |
3 | Value out of range | The epoch is zero, or the latitude, longitude or altitude is out of range |
example:
{"status":"ERROR","code":1,"message":"GNSS must be disabled before setting a manual fix"}
System Information
(Available from v0.28)
Returns detailed system, firmware and Iridium modem information.
192.168.250.1/api/public/system-information
Response is a JSON object:
serial- device serial numberproductType- device product typeappVersion- application firmware versioniridiumVersion- Iridium modem firmware versionbleVersion- Bluetooth module firmware versionbootloaderVersion- bootloader versionubloxVersion- u-blox GNSS receiver firmware versionuptime- time in seconds since the device last startedtime- current Unix Epoch timepcbTemperature- temperature from the surface of the main PCBAmcuTemperature- temperature reported by the MCUsupplyCurrent_mA- supply current in mApowerConsumption_mW- power consumption in mWfreeHeap- free heap memorylastResetCause- cause of the last device resetimei- Iridium modem IMEImodemSerial- Iridium modem serial numbericcid- SIM ICCIDmodel- Iridium modem modelsignalBars- current Iridium signal bars (0 to 5)signalStrength- current Iridium signal level in dBmmessagingProvisioned-trueif Iridium messaging services are provisioneddataProvisioned-trueif Iridium packet data services are provisionedpppUp-trueif the PPP link is uppppPacketsSent- number of PPP packets sentpppPacketsReceived- number of PPP packets receivedethUp-trueif the Ethernet link is upethPacketsSent- number of Ethernet packets sentethPacketsReceived- number of Ethernet packets received
example:
{
"serial": "word1.word2.word3",
"productType": "PRODUCT_TYPE_MINI",
"appVersion": "00.28.00",
"iridiumVersion": "1.2.3",
"bleVersion": "00.01.00",
"bootloaderVersion": "00.01.00",
"ubloxVersion": "EXT 02.01",
"uptime": 12345,
"time": "1700000000",
"pcbTemperature": 25,
"mcuTemperature": 27,
"supplyCurrent_mA": 120.5,
"powerConsumption_mW": 600,
"freeHeap": 102400,
"lastResetCause": "RESET_CAUSE_POWER_ON_POWER_DOWN_RESET",
"imei": "300434065234570",
"modemSerial": "MB12345",
"iccid": "89882280666000000000",
"model": "9770",
"signalBars": 4,
"signalStrength": -113,
"messagingProvisioned": true,
"dataProvisioned": true,
"pppUp": true,
"pppPacketsSent": 100,
"pppPacketsReceived": 98,
"ethUp": true,
"ethPacketsSent": 50,
"ethPacketsReceived": 45
}