Repository navigation
Features
sputlab edited this page Nov 13, 2026
·
1 revision
- 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_RADIOlog, also shown in the app.
- 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.
- 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.
- 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) orFAST(Wi-Fi Direct); a relay refuses what its next link cannot carry.
- 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).
INTERNETis used only to download maps on request. - LoRa board settings are prepared for USB boards planned for later.
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.