Update: Seems there is already a project for that: https://github.com/landandair/RNS_Over_Meshtastic
The main problem with that is that the default/most common Meshtastic config, LongFast
is not recommended (that’s what my nodes would be using) and even using the ShortTurbo
profile would be far slower than using an RNode due to the encapsulation. However, it is possible.
I would assume running RNS over Meshtastic via serial module would have similar (or possibly even worse) performance restrictions, so that may be as far as I take this experiment.
Update 2: Chatted a bit with the dev of that project, and they recommend ShortFast
which nets about 500 bytes/s over RNS.
Original Post
I’ve been looking at both Reticulum (specifically the RNodes) and Meshtastic for an off-grid, disaster-resistant network. There are pros and cons of each, but I’ve been leaning toward Meshtastic due to ease of use for end users since the mobile app is much more polished and straightforward with less of a learning curve.
That said, Reticulum is pretty versatile and can run over pretty much anything (even two tin cans and a string with the right interface to your PC lol). So my hope is that by setting up a serial channel in Meshtastic, I can use that as the underlying network and run Reticulum on top. The Reticulum network would be free to expand independently of the Meshtastic network, but that’s fine. The goal is just to not have two independent LoRa networks and letting the “default” one be the more user-friendly of the two.
TL;DR: I am curious if it would be possible, or if anyone has tried, to link two Reticulum endpoints over Meshtastic via its serial module. Essentially, Reticulum as an OTT service with Meshtastic providing the lower layer.
Reference: https://meshtastic.org/docs/configuration/module/serial/
I haven’t gotten far enough in to begin playing with Meshtastic’s serial mode, so mostly just asking for second opinions or if anyone has tried something like this.
Knowledge Gaps / Things that I am unsure of:
- Reticulum has a minimum MTU requirement of 500 bytes. I’m not sure if this applies to the serial connection or just packet-based transports. I’m assuming any link since there is no MTU concept for a serial connection.
- Does Meshtastic transparently fragment and reassemble data sent over its serial channel, or is it limited to ~200 characters at a time like the text messaging app?
- Can Reticulum work with multiple endpoints sharing the same serial bus, or would it expect a 1:1 link for serial connections?
- If it does expect 1:1, is that just due to lack of CSMA/CD on the serial link? If so, would the underlying Meshtastic link address that since it already does that for the LoRa radio?
Eventually, I am going to try a test setup, but before I get to that, I guess I’m just asking around to save myself the trouble if someone else has already tried with / without success.
Edit: Added an image so these will roll up as a crosspost.
Take a look at meshcore. It’s very promising. About 4 weeks old. There’s even a dev from reticulum working on it!
Will do!
Github link if anyone else is curious: https://github.com/ripplebiz/MeshCore
Oh, I should say firmware support is very early. There’s only a handful of supported devices, but contributions are coming in fast. My friend and I worked on the Lilygo T3, I know there’s work being done in the T3S3 and other devices. .