Several months ago, there was some discussion in this forum about using a “mesh network” for the Librem 5. Can someone here detail the concept here, of how such a network should work in theory, and what the benefits would be?
Some quick basics. Mesh as such doesn’t refer to any specific tech, standard or frequency, although there are such for creating mesh networks. Mesh is just a description of how nodes (devices) in a network are connected. A couple of good articles for bacground:
There are other ways too. Using your L5 as a wifi-hub is kinda the the minimum example to create a connectivity for others. You all still need a bit of configuration for the data to flow to all and an app (how a bout talk? ) to exchange messages. The obvious benefits are that you have your own ad hoc network that is free and private (depending how you’ve set it up) and works within the area your devices are able to broadcast - even in remote areas or when other networks are down.
When you get down to it, there is physicaI data packet transport layer mesh and an application layer mesh but at user level you may not notice. I suppose a mesh network could be created with Wifi and some app/server running that takes care of relaying the messages to others. There probably is something like it already.
In regards to L5 there was talk of for instance using LoRa, which would need a separate module (think modem or wifi). The other option is, that it’s external. Some commercial devices act as hubs and your phone connects via BT (or wifi), while it uses something more powerful to create the mesh with others like it. BT takes less energy and the device connecting probably has it’s own battery for those signals. This is also one of the neat features: messages may be relayed beyond the range of a singe device via others in the network. Again, very useful for a groups internal communication in a limited area - gives it a bit of flexibility.
There’s an open source Android app called
Meshenger on F-Droid, if anyone wants to try it out.
The reason I recalled mesh networks and make the inquiry now is that I am slowly (as time permits) going through Title 47 of the code of Federal regulations (47 CFR), looking for a suitable (meaning legal) method to build an open sourced, non-commercial (as in Verizon, T-Mobile, and others like them won’t be welcome there) network that would be built and used by everyone who contributes to their part of the mesh. But the service would be free of commercial interests and free of charge to the users. A model of such a system could be built using the amateur radio bands. But not everyone has a ham radio license and a lot of nodes would be needed, far more than there are amateur radio licensees.
47 CFR Section 96 is a new section of communications law as of 2015 (recently updated) and appears to be introduced to support 5G exclusively. It’s a fascinating read if you like that kind of thing. The whole 5G business model for that band is spelled out there from a technical and regulatory perspective. In many cases, the network operators won’t even need an FCC license to operate their respective cell sites (much smaller area than a traditional cell site). A central common database will check-out frequencies in real-time as people use their 5G LTE connections from the handsets of various different carriers. And anyone can become a carrier without even needing an FCC license. In most cases no competative bidding is needed because anyone can go in to the business. But without a 3G or 4G network to fill-in the geographic holes in service, most customers wouldn’t be happy with the network coverage of these networks. But this section also seems inadequate for the network that I envision. It appears to be commercialized just a bit too much and has rules that would prevent true mesh networking from one user device to the next.
So I’ll keep looking through 47 CFR in other sections for something suitable while trying to picture also how Section 96 might be used in a legal way without making too many compromises.
That replaceable modem in the Librem 5 opens up too many possibilities to ignore. Theoretically (for example) a 5G part 96 modem such as the Snapdragon X20, X24, or X55 could be adapted by any hobbyist and used in your L5 if (of course) someone were to write the requisite software to operate in CBRS (Part 96) device.
One quick way to a (somewhat limited) mesh network would be to leverage the GoTenna Mesh pocket device, linked by Bluetooth to your phone, which enables encrypted text messaging up to 1 mile away, to another Gotenna user, and further away, with your message hopping up to 6 times, between other, nearby Gotenna Mesh devices.
The Gotenna Mesh has both iOS and Android apps. Maybe this app could be ported over or made available via Anbox. As a user of the GoTenna Mesh, I would look forward to that happening.
I don’t know anything about US FCC regs and carrier operations but I like your approach. Few take the time to be thorough.
In general, I think the “free for all” mesh wouldn’t be without its challenges. If bandwith becomes limited, it becomes a resource issue. This probably happens in the most congested areas, creating more dense hubs in the network. It could be worded in other ways, but lets call it quality guarantee issue - there is no-one to create and add bandwith, additional nodes to relay data. If the data type isn’t controlled somehow, what is to stop users from streaming HD video instead of short text messages (or something similarly smaller like specific compressed voice instead of HD voice)? Neither of these would be much of a problem if there is abundant amount of bandwith available but over time that gap is usually filled, so it might become a problem just further down the line. If users would have very very exceptionally good code of conduct that was rigorously followed, then maybe some of these would stay in check.
One central challenge is, that the mesh is not even - there are more nodes in some places and there is more use in some other places. A good solution would be create some software with an algorithm that would balance and reroute data via other nodes perfectly to handle some of the load - kinda the silver bullet that is sought after in other networks as well. That would however require a special software and devices that support it (or software capable supporting many devices, either way). 5G does bring with it more bandwith but it also brings other stuff as well, as I’m sure you’ve discovered from that FCC manual.
It’s an interesting conundrum. Your challenges are likely to grow exponentially with the size of the mesh.
Some of these products are great for limited use but the main drawback I see, is that they are closed and use some special additional hardware. It would be great to have the functionality within the phone (although that may limit the range) and preferably with something standard that can be hacked to be used in Linux freely.
I agree that incorporating that meshing hardware onto an M2 card would be a great solution. Gotenna offers an SDK for developers ( https://gotenna.com/pages/sdk ), stating, “Each kit includes a full code library and documentation for iOS, Android, or C development.” I doubt very much that this is freeware, and what “full code library” means is unclear. Is the source code included? Doubtful.