MENTIFABERThe workshop · drawn at night
Sheet
05 / 41
Grid
MF-01·04
Drawn
Anders
Date
28.10.2026
Fig. 1 · Hopline, on the bench: power it on to run it hereMF-01·04

01Why it exists

No node is load-bearing

A Meshtastic mesh has no router and no tower. Each radio rebroadcasts what it hears once, and a packet keeps spreading until its hop limit runs out. Hop count is the whole cost model: there's only a few hundred bits per second, so everything is built around text, position and telemetry.

Hopline started as a Python and Flask dashboard over an MQTT bridge. The live console below goes further: it talks to the radio straight from the browser, over Bluetooth or a USB cable, with no server in the path at all.

02Parts list

  1. Plug in a real radioMeshtastic over Bluetooth or USB, and MeshCore (beta), using the same driver as NULLSPACE. Your node reports the mesh it knows.
  2. The mesh, drawnNodes on a map when they share positions, otherwise in rings by how many hops away they are, with every packet flashing in as it arrives.
  3. Channel chatRead and send on every channel your radio has, with hop count and signal-to-noise on each message and a byte counter for the 228-byte packet limit.
  4. A valley to breakNo radio? Fourteen simulated nodes flood packets the way Meshtastic does. Kill relays and watch the route get longer until there isn't one.

03Construction

The bug

Nodes that existed but would not appear. The handhelds showed a healthy mesh; the web dashboard showed nothing. Two faults stacked in the MQTT path: the subscription never included msh/US/2/json/e/#, and packets that did arrive were unwrapped wrongly and dropped.

When the radios and the dashboard disagree, the radios are right. Debug the bridge, not the mesh.

Built on

The original: Python, Flask, the Meshtastic library and an MQTT bridge, launched with a uv-managed install. The console here: Web Bluetooth, Web Serial and Meshtastic protobufs written from scratch.

MeshtasticLoRa 915 MHzMQTTWeb BluetoothWeb Serial

04Tolerances

LoRa reaches a few miles per hop, further with height, for about $30 a node with no licence. It's the short-range sibling of Skipline's HF radio. Radio support in the browser follows the published protocols but hasn't been tested on real hardware yet. iPhone browsers can't reach radios, so the simulator is the way in there.

what it is not, said plainly

05Inscription

Nothing in the path may require the internet to be up. MQTT is a convenience, never a dependency.

06The same room