Skip to content

MeshSat Android ​

MeshSat Android turns an ordinary Android phone into a MeshSat gateway. Paired with a MeshSat node, a pocket-sized box with a Meshtastic LoRa radio and a RockBLOCK 9603 Iridium modem, one phone sends and receives over the mesh and by satellite. The full APK edition also sends and receives SMS; the Google Play edition has no SMS. It reports to the MeshSat Hub whenever there is any link to it, and it keeps working when the mobile network and the internet are gone.

It also works with any plain Meshtastic radio, for the mesh only.

Prototype

MeshSat Android is a prototype under active development. It has never been deployed to a real user and has never been used in an actual emergency. Do not rely on it when lives are at risk.

Home: "Messages can go out by satellite, mesh, SMS and the Hub", with a line for each way out and three messages on their way by satellite Home: every way out on one screen. Solid means it works, dotted means it is not available, and the orange dot is a message on its way.

The phone does the thinking and the node does the radio. The app reaches both of the node's radios over one Bluetooth connection, so there is no special phone to buy and nothing to wire.

Source: meshsat/meshsat-android, GPLv3. Download: the signed APK from the latest release is the full app. The edition on Google Play is the same app without SMS; Set up says how the two differ.

Start here ​

PageWhat it covers
Set upInstall, pair the node, connect the Hub, allow SMS
SatelliteThe queue, what a message costs, pass prediction
SafetySOS, the check-in timer and zones

What it does ​

  • Mesh. Meshtastic over Bluetooth LE with the official protobufs: text, positions, telemetry, waypoints, node info and traceroute. A reply to a node goes to that node, not to the whole channel. People lists the nodes you hear, with a button to message one or show it on the map. Region, channels and transmit power are under Setup > Mesh radio settings.
  • Satellite. Iridium SBD through the node's RockBLOCK 9603, up to 340 bytes out and 270 bytes in. Messages wait in a queue until they go out. See Satellite.
  • SMS through the phone's own SIM, optionally encrypted per conversation with AES-256-GCM. The carrier still sees the numbers and the time, only the text is encrypted. Not in the Google Play edition.
  • Hub. The phone joins the Hub's fleet like a field kit over MQTT with a client certificate: it reports health and positions and takes remote commands. When a field kit cannot be reached directly, the app can reach it through the Hub.
  • APRS through a KISS TNC over TCP (Direwolf, for example) or directly to APRS-IS.
  • TAK. What the Hub delivers of your team's TAK picture appears on the map: the phones on your TAK server. With Enable TAK on, the phone also sends its own position (once a minute, moving or not), an SOS, a missed check-in and its chat to the Hub as TAK, and the Hub passes them on to your TAK server. The phone needs no TAK server address of its own. Since 2.19.6; see Hub > TAK.
  • Reticulum. The phone runs as a Reticulum transport node and relays between the mesh, the Iridium modems, MQTT and TCP peers.
  • Routing rules (Setup > Advanced > Routing rules) decide what is forwarded between links by itself, for example mesh messages out by satellite.

Mesh and SMS messages are compressed with MSVQ-SC by default. It is lossy: what arrives means the same, but may not be word for word what was sent. The map works without internet down to country level, from a world overview built into the app. The gateway runs as a foreground service, so the phone keeps relaying with the screen off.

What works, and what does not ​

WhatState
Mesh through a MeshSat node over BluetoothVerified 19 September 2026 on a Pixel 9a
Satellite messages out through the node, landing at the HubVerified 19 September 2026
A satellite message in, picked up by the appVerified 19 September 2026
A message that arrives while the app is sending by satelliteStored straight away since 2.12.0; in 2.11.1 it could be lost
Reconnecting to the node after an app restartVerified 19 September 2026
Pass prediction with no internetVerified 19 September 2026
The phone connected to the Hub as a bridgeVerified 19 September 2026
Recovery when the node drops out mid-sessionVerified 20 September 2026: after a node restart, the phone marked the link down and reclaimed the modem in 8 seconds
SOS: hold to send, SMS to an emergency contact, cancel, and the cancellation after itVerified 19 September 2026 on the Android 11 emulator (2.13.0)
SOS by satellite to the HubThe frame matches the kits' byte for byte in tests; not sent through the Hub yet, because it would page the on-call chain
SOS over the mesh and to the Hub online, and Test the alarm on the phoneNot exercised yet
SMS on Android 8 to 12Fixed in 2.13.0; verified on the Android 11 emulator
SMS on the Google Play editionNot included, by Google Play's SMS policy. Setup, Home and the SOS screen say so; an SOS goes by satellite, the mesh and the Hub
Starting after a phone restart (option)Verified on the Android 11 emulator
A second tick when the Hub confirms a satellite message arrivedVerified 20 September 2026 on four messages, with receipts back within seconds
Contact cards swapped by QR codeShown, read and stored on one phone; not yet swapped between two phones
RockBLOCK 9704 behind a MeshSat nodeBench, 8 October 2026, on a T-Beam Supreme with a 9704: the app picked the 9704 from the node's own word, brought it up in under 2 seconds, had it back by itself 65 seconds after the node restarted, and handed it a message, which it cancelled cleanly when no satellite was in view. No message through a satellite yet
RockBLOCK 9704 over an HC-05/06 adapterNot tested on hardware
Deployment to a real end userNever
Use in an actual emergencyNever

Hardware ​

KindDeviceConnectionState
PhoneAndroid 8.0 or later; tested on a Google Pixel 9aMain test phone
MeshSat nodev0: XIAO ESP32-S3, Wio-SX1262, RockBLOCK 9603Bluetooth LETested, mesh and satellite
MeshSat nodev1: LILYGO T-Beam Supreme, RockBLOCK 9603Bluetooth LEBeing built
MeshSat nodecompact v2 prototype: LILYGO T-Beam Supreme, RockBLOCK 9704Bluetooth LEBench tested, no satellite message yet
Meshtastic radioAny Meshtastic device, for example a T-Echo, T-Deck or Heltec LoRa V4Bluetooth LEShould work, mesh only
SatelliteRockBLOCK 9704HC-05/06 Bluetooth serialNot tested
APRSAny KISS TNC reachable over TCPKISS over TCPShould work

Before 2.9 the app reached a RockBLOCK 9603 through an HC-05 Bluetooth serial adapter. Since 2.9.0 the 9603 goes through the node. Since 2.19.9 the node can carry a RockBLOCK 9704 instead, and the app follows what the node says it has. A 9704 on an HC-05 or HC-06 adapter is still not tested on hardware.