Sal W6SAL - Updated on: 2026-03-20
Let me tell you something about mesh networking. Actually, let me tell you something about people first, because that’s what this is really about.
People love to hide the ball. Engineers, bureaucrats, firmware developers — they all do it. They take something that could be explained in two sentences and bury it in a parameter table with a note that says “DO NOT USE” next to one of the options. No explanation. Just: don’t. Like a warning label on a hair dryer that says “Do not use while sleeping.” Thanks. Very helpful.
Anyway. The ball they’re hiding this time is called path.hash.mode.
Here’s the thing about mesh networks — and pay attention, because this is actually interesting. When your node sends out an advertisement saying “Hey! I exist! I’m here! Talk to me!”, it stamps that packet with a little ID. A hash. A fingerprint. And every other node in the network uses that fingerprint to figure out: have I already seen this packet? If yes, drop it. If no, forward it along.
That’s flooding. That’s how the mesh works. Elegant, really — in a chaotic, everyone-shouting-at-once kind of way.
Now, the question is: how big should that fingerprint be?
And the answer, like most answers in radio, is: it depends, and nobody agrees.
Here’s what you’re actually choosing between:
Mode 0 — 1 Byte Hash 256 possible unique IDs. Up to 64 hops before the flood runs out of steam. This is the default. This is what everyone’s running. This is the sensible choice.
Mode 1 — 2 Byte Hash 65,536 unique IDs. 32 max hops. More IDs, shorter reach. You’re trading flood depth for ID space.
Mode 2 — 3 Byte Hash 16.7 million unique IDs. 21 max hops. Now you’ve got all the IDs in the world and a network that runs out of breath before it gets across town.
Mode 3 — Reserved Don’t touch it. They said so. That’s all they said. I don’t know what it does. You don’t know what it does. Nobody knows what it does. Leave it alone.
Here’s the part that actually makes sense once someone explains it — which, again, nobody does.
A larger hash takes up more bytes in each packet. More bytes in the header means less room for the hop-tracking information. Less room for hop tracking means the network’s ability to flood the packet across many hops gets squeezed. It’s a tradeoff baked right into the packet structure.
Bigger ID space. Shorter legs. Pick your poison.
For most of us running neighborhood-scale mesh networks — the kind where you’re trying to reach the guy three blocks over during an emergency — Mode 0’s 64-hop flood depth is more useful than Mode 2’s 16 million IDs. You don’t have 16 million nodes. You have Gary. Gary’s two miles away with a Heltec on his back porch.
Now here’s where I want you to lean in, because this is the part that matters.
If you run Mode 1 or Mode 2 on your node, and your neighbor Gary is still running firmware 1.13 or older — and there’s a very good chance Gary is — Gary’s node will drop your packets. Silently. No error. No warning. Just gone. Your fancy 2-byte hash advertisement will vanish into the ether like it never existed, because Gary’s firmware doesn’t know what to do with it and quietly throws it in the trash.
Firmware 1.14 fixed this. But not everyone has upgraded. And mesh networks are only as smart as their least-updated node.
So until you know — actually know, not just hope — that your corner of the mesh has broadly moved to 1.14 or better, you are taking a risk running anything other than Mode 0. A risk that will silently degrade your network coverage while you sit there wondering why nobody can hear you.
Fine. You’ve assessed your network. Everyone’s on 1.14. You want more ID space. Here’s how:
Check your current setting:
get path.hash.mode
Change it:
set path.hash.mode 1
(or 0, or 2 — your call)
That’s it. Two commands. They could have led with that. They didn’t. You’re welcome.
Leave it at Mode 0. Unless you’re running a dense, well-maintained network where you’ve verified firmware 1.14+ is everywhere and you’re genuinely running into hash collision problems — which you almost certainly aren’t — the default is correct.
The engineers gave you a dial that goes up to three. That doesn’t mean you need to turn it past one.
It just means they felt better having it there.
73 de W6SAL