

The ROCKBLOCK, manufactured by Adafruit, is a compact satellite communication device designed for two-way messaging and tracking. It operates via the Iridium satellite network, making it an ideal solution for communication in remote areas where traditional cellular networks are unavailable. This device is widely used in applications such as remote monitoring, emergency communication, asset tracking, and IoT deployments in isolated locations.
The ROCKBLOCK is particularly valued for its small form factor, low power consumption, and reliable global coverage, making it a versatile tool for developers and engineers working on satellite-based communication systems.








Below are the key technical details of the ROCKBLOCK:
| Specification | Value |
|---|---|
| Dimensions | 45 x 45 x 15 mm |
| Weight | 40 grams |
| Operating Voltage | 5V (via USB) or 3.7V to 5V (via external power supply) |
| Power Consumption | Idle: ~20mA, Transmit: ~190mA (average), Peak: ~1.5A |
| Communication Protocol | Serial UART (3.3V logic) |
| Satellite Network | Iridium |
| Data Rate | 2.4 kbps |
| Operating Temperature | -40°C to +85°C |
| Antenna | External patch antenna (included) |
| Interface | 0.1" pitch header pins for power, UART, and control signals |
The ROCKBLOCK features a 10-pin header for interfacing with external devices. Below is the pinout and description:
| Pin | Name | Description |
|---|---|---|
| 1 | GND | Ground connection |
| 2 | 5V | 5V power input (can also accept 3.7V to 5V) |
| 3 | TX | Transmit data (UART output, 3.3V logic) |
| 4 | RX | Receive data (UART input, 3.3V logic) |
| 5 | CTS | Clear to Send (flow control, optional) |
| 6 | RTS | Request to Send (flow control, optional) |
| 7 | NET | Network status indicator (active high when connected to the Iridium network) |
| 8 | RST | Reset pin (active low, optional) |
| 9 | SLEEP | Sleep mode control (active high, optional) |
| 10 | ANT | Antenna connection (external patch antenna required) |
Below is an example of how to interface the ROCKBLOCK with an Arduino UNO for sending a simple message:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial rockblockSerial(10, 11); // RX = pin 10, TX = pin 11
void setup() {
// Initialize serial communication
Serial.begin(9600); // For debugging
rockblockSerial.begin(19200); // For ROCKBLOCK communication
Serial.println("Initializing ROCKBLOCK...");
// Send an AT command to check communication
rockblockSerial.println("AT");
delay(1000);
// Read and print the response
while (rockblockSerial.available()) {
Serial.write(rockblockSerial.read());
}
}
void loop() {
// Example: Send a message
Serial.println("Sending message...");
rockblockSerial.println("AT+SBDWT=Hello, World!"); // Write message to buffer
delay(1000);
rockblockSerial.println("AT+SBDIX"); // Initiate message transmission
delay(5000);
// Read and print the response
while (rockblockSerial.available()) {
Serial.write(rockblockSerial.read());
}
delay(10000); // Wait before sending the next message
}
10 and 11 in SoftwareSerial with the pins you are using for RX and TX on the Arduino UNO.Issue: The ROCKBLOCK does not connect to the satellite network.
Issue: No response to AT commands.
Issue: Unexpected resets during transmission.
Issue: Messages are not being sent or received.
Q: Can the ROCKBLOCK be used indoors?
A: The ROCKBLOCK requires a clear view of the sky for reliable satellite communication. It may not work indoors or in obstructed environments.
Q: What is the maximum message size?
A: The ROCKBLOCK supports messages up to 340 bytes for transmission and 270 bytes for reception.
Q: Can I use the ROCKBLOCK with a 5V microcontroller?
A: Yes, but you must use a level shifter to convert the 5V logic levels to 3.3V for the ROCKBLOCK's UART interface.
Q: How do I reset the ROCKBLOCK?
A: Pull the RST pin low for at least 100ms to reset the device.
By following this documentation, you can effectively integrate the ROCKBLOCK into your projects and leverage its satellite communication capabilities.