PhillyMesh : Preset Feasibility Report

Generated 2026-06-19 14:30 UTC  ·  Analysis window: 2026-06-01 00:06 UTC → 2026-06-16 19:45 UTC (last 30 days)  ·  Transient node filter: ≥10 packets & ≥3 active days

What this is: PhillyMesh runs on LongFast. This report uses SNR data collected from traceroutes in the Malla database to evaluate whether the mesh can support a faster preset, and if so, which one.

How it works: Upgrade presets have smaller link budgets and generally higher SNR floors than LongFast, meaning each hop needs more signal to decode reliably. For each hop pair observed on LongFast, the analysis reduces the observed SNR by the link budget difference between LongFast and the target preset, then checks whether the result still clears the target preset's decode floor. It then traces paths through the surviving hop graph up to Meshtastic's default 7-hop limit to count how many nodes can still reach at least one other node, which is the actual question that matters, not whether every individual hop survives.

The recommendation: The fastest preset where ≥ 90% of nodes remain reachable within 7 hops. Nodes with multiple paths can afford to lose a weak hop. Only nodes that lose all their paths show up as isolated.

1203
Total nodes in DB
892
Stable nodes analyzed
311
Transient nodes excluded
534
Unique links analyzed
34,574
Hop SNR samples
MediumSlow
Best preset (≥ 90% connected)
90% nodes connected
Best option with ≥ 90% node connectivity: MediumSlow
1.95 kbps (1.8× LongFast) : 365/406 nodes remain connected (90%). See node connectivity table for full breakdown.
Based on traceroute per-hop SNR and gateway-observed direct-hop SNR.

RF link map

Links colour-coded by best achievable preset. Hover a line for details.

Node connectivity by preset

After the preset change, how many nodes can still reach any other node within 7 hops? This is the key question : individual weak hops don't matter if alternate paths exist.

Preset vs LongFast Nodes reachable % connected Edges surviving Isolated nodes
LongModerate -3.0 dB gain ✓ 406/406 100% 1582/1582 (100%) 0
LongFast baseline ✓ 397/406 98% 1350/1582 (85%) 9
LongTurbo +3.0 dB ⚠ 358/406 88% 858/1582 (54%) 48
MediumSlow +2.5 dB ✓ 365/406 90% 904/1582 (57%) 41
MediumFast +5.0 dB ⚠ 304/406 75% 531/1582 (34%) 102
ShortSlow +7.5 dB ✗ 280/406 69% 433/1582 (27%) 126
ShortFast +10.0 dB ✗ 200/406 49% 222/1582 (14%) 206
ShortTurbo +13.0 dB ✗ 24/406 6% 17/1582 (1%) 382

A node is isolated if all its observed hop edges fail under the new preset. A node is connected if it can reach at least one other node within 7 hops on surviving edges. Edges are derived from traceroute SNR data; each entry represents the best observed SNR for that node pair. If the best observed SNR for a hop still fails, the hop is considered lost.

Hop feasibility by preset

Each observed node pair ranked by best hop SNR. Shows which individual hops survive the preset change : but remember, a node only needs one viable path, not all hops. See the connectivity table for the node-level picture. Source: traceroute per-hop SNR

LongModerate SF11 / 125 kHz / CR 4/8 / 0.34 kbps
✓ 406/406 nodes connected (100%)

Margin = observed hop SNR + 3.0 dB budget gain, then subtract the -17.5 dB decode floor. Positive margin means this hop survives on the new preset; negative means it doesn't : but a node only needs one surviving path to remain connected.

LongFast SF11 / 250 kHz / CR 4/5 / 1.07 kbps
✓ 397/406 nodes connected (98%)

Margin = observed hop SNR − 0.0 dB budget loss, then subtract the -17.5 dB decode floor. Positive margin means this hop survives on the new preset; negative means it doesn't : but a node only needs one surviving path to remain connected.

LongTurbo SF11 / 500 kHz / CR 4/8 / 1.34 kbps
⚠ 358/406 nodes connected (88%)

Margin = observed hop SNR − 3.0 dB budget loss, then subtract the -15.0 dB decode floor. Positive margin means this hop survives on the new preset; negative means it doesn't : but a node only needs one surviving path to remain connected.

MediumSlow SF10 / 250 kHz / CR 4/5 / 1.95 kbps
✓ 365/406 nodes connected (90%)

Margin = observed hop SNR − 2.5 dB budget loss, then subtract the -15.0 dB decode floor. Positive margin means this hop survives on the new preset; negative means it doesn't : but a node only needs one surviving path to remain connected.

MediumFast SF9 / 250 kHz / CR 4/5 / 3.52 kbps
⚠ 304/406 nodes connected (75%)

Margin = observed hop SNR − 5.0 dB budget loss, then subtract the -12.0 dB decode floor. Positive margin means this hop survives on the new preset; negative means it doesn't : but a node only needs one surviving path to remain connected.

ShortSlow SF8 / 250 kHz / CR 4/5 / 6.25 kbps
✗ 280/406 nodes connected (69%)

Margin = observed hop SNR − 7.5 dB budget loss, then subtract the -12.5 dB decode floor. Positive margin means this hop survives on the new preset; negative means it doesn't : but a node only needs one surviving path to remain connected.

ShortFast SF7 / 250 kHz / CR 4/5 / 10.94 kbps
✗ 200/406 nodes connected (49%)

Margin = observed hop SNR − 10.0 dB budget loss, then subtract the -7.5 dB decode floor. Positive margin means this hop survives on the new preset; negative means it doesn't : but a node only needs one surviving path to remain connected.

ShortTurbo SF7 / 500 kHz / CR 4/5 / 21.88 kbps
✗ 24/406 nodes connected (6%)

Margin = observed hop SNR − 13.0 dB budget loss, then subtract the -4.5 dB decode floor. Positive margin means this hop survives on the new preset; negative means it doesn't : but a node only needs one surviving path to remain connected.

Methodology & caveats

How this report was generated.

Data sourceMalla SQLite DB : MQTT-observed packets only
SNR sources14,706 from traceroute payloads + 19,868 from direct-hop packets
Decision metricBest upgrade preset where ≥ 90% of nodes can still reach at least one other node within 7 hops.
Budget mathEffective SNR = observed SNR − (LongFast budget − target budget). Must exceed target decode floor.
Connectivity analysisPaths are traced through surviving hop edges up to the 7-hop limit. A node is isolated if no path to any other node exists within that limit.
Transient node filter≥10 packets & ≥3 active days (311 nodes excluded)
LimitationOnly hops visible to an MQTT gateway are included. Remote mesh segments without gateway coverage are not represented.
Traceroutes analyzed3303 (of 41,245 total in DB)
DB date range2026-06-01 00:06 UTC → 2026-06-16 19:45 UTC
Analysis window2026-06-01 00:06 UTC → 2026-06-16 19:45 UTC (last 30 days)
Generated byphillymesh_preset_analysis.py