Is Meshtastic becoming a victim of its own Success? Default Channel Congestion and New User Experience #8617
Replies: 3 comments 11 replies
-
|
I largely agree with your assessment, and in fact, I detailed some of the history and details of the default LongFast choice in the blog post: That said, I look forward to seeing your proposal(s) as well as @erayd's packet replay work to help increase reliability of meshes in the existing situation we find ourselves in. |
Beta Was this translation helpful? Give feedback.
-
|
I've already pointed you towards one of the ideas (#8115) on The Big List which concerns managing chutil in a neighbour-friendly way. Another one that might help in the EU space (which you and I share) is this proposal which is erroneously marked for 3.0. The idea of chopping the 250khz band into smaller slots, and using one edge, would achieve similar clear-water separation between current nodes and those older ones with lower levels of control. In local trials, the "EdgeFast" preset was successful in bypassing much of the noise on the centre frequency, although subsequent discussion has revealed some further considerations. If you wanted to discuss how we can do that for the current iteration, I'd be very grateful for the help. Finally, one of the ideas in The List is for time-limited 'router' roles, so that they can gracefully retire to |
Beta Was this translation helpful? Give feedback.
-
|
Hands down, this is true! I want to emphasise that the main reason for congestion is rather the default "apps" flood and suboptimal default settings, not the LongFast limitations. Here's a screenshot from one of the network monitoring services showing the payload types ratios. To cut to the chase, here's a quick list of essential tasks to prioritize:
|
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hey everyone,
I'd like to share our experience and would like to know what you think about it. Long post, no tl;dr.
A friend of mine and I have been looking for quite a while for an infrastructure-independent way of communication for my friends, which are scattered across ~50km in the swiss and austrian alps.
Point-to-point stuff like CB radio doesn't work here and relays are inhibitively expensive, big and energy-hungry.
We went with Meshtastic, since it appeared to be the most mature and widespread project of all the LoRa mesh things.
We bought some nodes and tested direct line-of-sight communication, which worked well. I was pleased to see a lot of other nodes whenever I took my T-Deck up some mountain. So we set up a nice solar node on a summit that a my friend and I both had LOS to and started testing.
Unfortunately messaging via that 1 hop was extremely unreliable at best, maybe 1 out of 10 DMs arrived.
We were hesitant to switch to a different radio preset, since we knew that would mean not being able to communicate with all the other nodes we were seeing. I also thought ~35% ChUtil at the mountaintop node isn't too bad, so switching probably wouldn't help anyways.
We spent a couple weeks testing, reading code and logs, kept watching videos and reading blogs comparing Meshtastic to other projects.
The gist always seemed to be about how that other thing that calls itself Mesh but somehow isn't(?) is so much more reliable at getting messages delivered, but lacks many features.
But since getting a fair comparison to MC would mean we'd have to hike to the mountaintop node again and put another solar node there, we decided to give a different radio preset a shot anyways.
We switched our personal nodes and the mountainttop node over from
LongFasttoMediumFastand suddenly the experience was completely different.Still not as reliable as what you're used to from internet-based messengers, but now ~8-9 out of 10 DMs arrived
Turns out our mountaintop node was just getting bombarded on LongFast and most packets got lost with ChUtil sitting around 35%.
Now that I knew LoRa is in principle able to get data across in our scenario, I wondered if MC could make it 10 out of 10.
I assumed MC's protocol is somehow fundamentally different, that repeaters would inherently store and forward messages, so each of them makes sure the message gets delivered eventually, even if e.g. sender and receiver aren't reachable at the same time. Something like that.
But testing it, I found it actually isn't any more reliable then Meshtastic on a channel that's also almost empty. At all. Digging into the Code I realized MC is actually not doing any of that for DMs and collisions swallow messages just as much.
So it seems Meshtastic is kind of suffering from success: The default LongFast on SF11 is getting congested in many places, while MC's default SF8 channel still works well, because hardly anyone uses it yet, and the lack of features also means less traffic inherently.
New users who experience the congested LongFast channel won't think, "Ah, RF congestion on this specific frequency and modem setting." They'll likely think, "Meshtastic is unreliable.", then try a competitor on an empty channel and think, "Wow, this other project is so much better!"
I feel like getting the congestion issue under control is a strategically important matter for Meshtastic as a whole, because it probably pushes many users away to other projects.
Not because the other projects actually have a solution for it, but because they're not suffering from it YET.
I am working on a throttling approach based on Token Bucket, with the goal of getting ChUtil back to e.g. 25% under all circumstances.
I don't know yet if that's going to work, and of course it comes at a cost: Scaling down broadcast frequencies and also potentially
hop_startautomatically and more aggressively than it is done now. But this discussion isn't about my proposal, but about the motivation behind it.Before I sink more time into that project, I'd like to know if this is even as relevant as I think it is, and if my goals are aligned with the project.
Maybe the Leads of the Meshtastic project have an entirely different view than I do, e.g. that local-ish meshes with their own presets is the way to go.
For us, Meshtastic does what we need it to do now. But it required a lot of research and persistence, setting up all of the infrastructure nodes we need to cover all our friend group's homes and isolating our mesh from almost everyone else around us.
Beta Was this translation helpful? Give feedback.
All reactions