Mesh services

Traceroute, position, neighbors

Chat proves the mesh works; these tools show you how. All of them ride Meshtastic's request/response machinery — Coop sends a probe with your packet id, then correlates the reply (ignoring the routing ACK that arrives first).

Traceroute

In the node drawer, or POST /api/traceroute {"dest":"!a2ebdaac"}. The mesh records each relay the request visits and — on modern firmware — the SNR of every link, in both directions:

towards: RoostOS Dev → !6910bd44 5.5dB → !dc9b6d5f -0.2dB → 4A24 -11.8dB → Lighthouse -7.0dB
back:    Lighthouse → !6910bd44 0.0dB → RoostOS Dev 5.8dB

Reading it: each SNR belongs to the link into that hop; routes are often asymmetric (different relays each way) — that's normal mesh routing, not an error. An unknown relay entry means a relay identified itself only partially (firmware reports node 0). If the destination is unreachable you get the routing error (NO_ROUTE, MAX_RETRANSMIT…) instead of silence.

Patience is physical. A multi-hop round trip on LongFast is tens of seconds — 30–60s is healthy, not broken. Perch shows progress and the round-trip time.

Position requests

POST /api/request_position {"dest":"!id"} asks a node for a fresh fix. The reply updates the node and map through the normal pipeline, and returns {"position":{latitude,longitude,altitude}}. Nodes without GPS (or with position sharing off) reply "no fix" or not at all — that's their owner's choice.

Neighbor topology

Nodes that broadcast NEIGHBORINFO announce which nodes they hear directly and at what SNR — the actual edges of the mesh graph. Perch shows a node's neighbor list in the drawer as reports arrive; over hours the who-hears-whom picture of your area fills in. Passive, zero airtime cost to you. Many nodes have the broadcast disabled and intervals are long (tens of minutes) — an empty list means "hasn't said," not "hears nothing."

Waypoints

Mesh-shared map markers (name, description, expiry) — a rally point, a hazard, where the coffee is. Any app on the channel can drop one; Perch draws them on the map live and expires them on schedule. They arrive in bootstrap and the waypoints SSE event.

Airtime etiquette

Traceroute and position requests transmit on a shared, duty-cycle-limited band. Probing a route you're curious about is exactly what the tools are for; scripting probes in a loop is how you become the person your mesh talks about. Passive tools (neighbors, capture, MQTT observing) cost the mesh nothing.