Nobody Tells You About the Hash Size, and That's No Accident

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.


What the Hell Is a Path Hash?

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.


The Three Modes Nobody Explained to You

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.


Why the Flood Depth Drops

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.


The Part That Will Actually Bite You

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.


How to Actually Change It

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.


The Bottom Line

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