Skip to content

Features

sputlab edited this page Nov 13, 2026 · 1 revision

Features (v0.12.3)

Radio and mesh

  • Every node is at once a GATT server, advertiser, scanner and on-demand GATT client, over pure Bluetooth LE.
  • Multi-hop relay with TTL (default 5) and duplicate suppression; delivery ACKs travel back across the relays.
  • Neighbour announcements (HELLO) build a routing table; indirect nodes appear as via <neighbour>.
  • Live node list: direct nodes with signal strength (RSSI, dBm).
  • Foreground service: the radio keeps working with the screen off or the app closed (notification with a Stop radio action).
  • Reliable links: replies travel back on the connection that carried the request (GATT notifications), unacknowledged messages are resent, and a watchdog restarts a scan or advertisement that silently died.
  • Unified MESH_RADIO log, also shown in the app.

Identity and security

  • An identity key pair per install; the node ID is derived from the public key, so peers are recognised even when BLE addresses rotate.
  • End-to-end encryption with forward secrecy (signed ephemeral ECDH P-256, HKDF-SHA256, AES-256-GCM). Session keys live in memory only and rotate after one hour or 500 messages.
  • Verified contacts by scanning a QR code in person; the key is then pinned.
  • Chat text encrypted at rest with the Android Keystore.
  • Details and limits: Security.

Messaging

  • Chat to a selected node or to everyone in range, with delivery status (sent / DELIVERED / FAILED) and the number of relays crossed.
  • Text up to 180 bytes per message.
  • Group chat for up to 8 people, encrypted per member (no shared group key), with an admin who manages the member list.
  • Persistent history, with a CLEAR button.
  • Per-node ping and the "CIAO - 73" broadcast.

Media

  • Voice messages up to 15 s in one-to-one chats: Opus over Bluetooth, Codec2 (700-3200 bit/s) for slow links; chunked, resent and acknowledged.
  • Photos: from camera, photo library or files; EXIF is stripped; about 35-55 KB over Bluetooth, up to 1600 px / 120-600 KB over a fast link; refused on slow links.
  • Wi-Fi Direct fast link: Bluetooth finds the peer and sets the link up (sealed), the photo then crosses at Wi-Fi speed. The link closes by itself after 40 s without traffic.
  • Links are classed SLOW (LoRa-like), MEDIUM (BLE) or FAST (Wi-Fi Direct); a relay refuses what its next link cannot carry.

Position and maps

  • Share your position with nobody, with your verified contacts, or with everyone in range.
  • Offline map (osmdroid with Mapsforge vector files; one file per country, downloadable in the app). INTERNET is used only to download maps on request.
  • LoRa board settings are prepared for USB boards planned for later.

UI

Jetpack Compose (Material 3) with five tabs: chats, network, map, nodes, settings. Diagnostics (bench tests for link speed, Wi-Fi and photo) live under Settings.

Clone this wiki locally