Skip to content

meshsat 1.0.0

Choose a tag to compare

@papadopouloskyriakos papadopouloskyriakos released this 29 Sep 15:45
· 3 commits to main since this release

meshsat 1.0.0: every screen of MeshSat Android, proven on the phone

Every screen, dialog and sentence of MeshSat Android 2.19.4 that a Linux phone can show is here, in Android's words, and every one is tested on the bench phone. What Linux does differently, and why, is listed in docs/PARITY.md. What the bench cannot prove is named there too: a satellite session in the air, SMS without a SIM, and the satellite modem of a node over Bluetooth.

New since 0.12.0

  • The SOS and the alarm test follow every route through the Bridge's queue, in MeshSat Android's words. Each route shows:

    • "Waiting to send", "Sending now", "Sent", or "Trying again: …" with the reason;
    • "Sent, and the Hub has it" once the Hub confirms a satellite route;
    • "Delivered to their phone" once the carrier confirms an SMS;
    • "Could not be queued" when the Bridge would not take it;
    • "Stopped before the Hub could be reached" for a test stopped early.

    A confirmation that comes late still shows, for half an hour.

  • The alarm test's satellite route is a position report to the Hub, as on Android: the phone's position in Android's 31-byte frame, one credit, and nothing the Hub treats as an SOS. Without a position fix, the test text goes by satellite as before. A second tap while a test waits does not queue a second one, and a test that has not gone out after 30 minutes is dropped rather than sent later.

  • An SOS by satellite is never held back by the satellite credit budget. The Bridge's own SOS burst and its SOS frame to the Hub were refused once a daily or monthly budget was used up (MESHSAT-1431). Ordinary messages, the periodic position reports and the alarm test stay under the budget.

  • The Bridge answers this device only, unless you share it.

    • The Bridge (TCP 6050), the node's API (4403) and Meshtastic's web client (9443) used to answer anyone on the same network, without a password.
    • Now only the device itself reaches them.
    • Setup > Advanced > Diagnostics has "Share the Bridge on this network". It asks for the phone's password, warns that anyone on that network can then send, start an SOS, change every setting and spend satellite credit, and names the address to open.
    • Shared, the Bridge answers only private addresses on Wi-Fi or Ethernet, never the mobile data connection. The node's ports stay local.
    • An upgrade closes the Bridge to the network until the switch is used.
  • The node page, the notifications, the tray, the quick-settings tile and the lock-screen widget are now tested like every other screen: the node card in Android's words (battery with its voltage, every mesh node on its own row), the PIN dialog of a node over Bluetooth, the alarm test's notification kept up to date in place, a failed message's notification in its lane's words, the satellite signal's notification, and the tile and the widget following the Bridge.

  • The Bridge underneath (MeshSat Bridge 427531ee, MESHSAT-1430 and MESHSAT-1431): the alarm test's position report, its lifetime and its idempotency; an SOS that cancels a test still waiting; the credit budget. An independent review found four faults in the first version before release, all fixed and tested first; a second review checked the fixes.

  • Tested: 406 unit tests, among them the port of Android's SosRunTest cases and the firewall rules loaded in a private network namespace. On the bench phone, the whole suite against the installed package, 215 cases, all passed: 191 against a scripted Bridge, 17 against a second, real Bridge, 7 live (the T-Deck heard the alarm test's text and a live text; a radio setting written on the T-Deck over Bluetooth and set back). From the laptop, the Bridge and the node's ports refused by default, the Bridge reachable once shared, refused again once the switch was off.

    Not proven on the bench:

    • a satellite session: the position report is proven against the Bridge's queue, not in the air;
    • an SMS: no SIM;
    • the Hub's receipt: no Hub link on the bench.

Install on a Mobian phone: wget https://github.com/meshsat/meshsat-linux/releases/download/v0.13.0/meshsat_0.13.0_arm64.deb && sudo apt install ./meshsat_0.13.0_arm64.deb (docs/INSTALL.md).