Repository navigation
Getting Started
sputlab edited this page Nov 13, 2026
·
1 revision
- Android 10 or later (
minSdk 29,targetSdk 35) with Bluetooth LE. - At least two phones: a mesh needs peers. Three are needed to test relaying.
- Android 10/11 only: location services must be switched on, otherwise the system returns no Bluetooth scan results.
NodeWave is built to be distributed through F-Droid. Until a signed release is published, build the APK yourself (see Building) and install it:
./gradlew installDebug # installs on every connected deviceOn Xiaomi/MIUI, "Install via USB" may require a Mi account and a SIM. Copy the APK to the phone and install it manually instead.
- Open the app and grant the requested permissions (see Permissions).
- Tap START RADIO. A notification appears: the radio runs in a foreground service.
- Repeat on the second phone. Each should list the other under NODES within a few seconds.
- Tap a node to select it, type a message and tap SEND (or ALL to send to everybody in range). You can also use PING (CIAO - 73).
- The other phone shows the message; the sender's chat marks it
DELIVERED.
Everything the radio does is logged with the tag MESH_RADIO, and shown in the on-screen log console:
adb logcat -s MESH_RADIO
adb -s <serial> logcat -s MESH_RADIO # with several devices connected- Install the same version on all three phones and start the radio on each.
- Wait a few seconds: each phone should list the other two (indirect nodes appear after the first neighbour announcement, HELLO).
- Phones in the same room all see each other, so force the relay: on the sender and the receiver switch on DEBUG: skip direct link (force relay), leaving the third phone as it is.
- Send from the sender to the receiver. The receiver shows the message with
1 relay, the sender showsDELIVERED · 1 relay. - Alternatively switch Bluetooth off on the relay phone and watch the indirect node disappear (a stale route can take up to a minute to expire).
- User Guide for contacts, groups, voice, photos and maps.
- Troubleshooting if the phones do not see each other.