Recently I spent some time exploring Reticulum. Here are some of my brief thoughts on it, and a dump of links and notes I gathered that might be useful to others!
Reticulum is a new "cryptography-based networking stack" developed by Mark Qvist. In practice Reticulum is not just a networking stack specification, but a reference implementation written in Python, and several functional but proof of concept applications and protocols (most initially developed by Mark) for messaging/chat, device control, and low-bandwidth websites. These include:
- LXMF, a chat protocol
- LXST, a protocol for voice calls
- Nomad Network, a micro world-wide-web that is native to Reticulum
- Sideband, an Android chat app (using LXMF) with lots of other features
rnshand other command-line nerd tools- MeshChat which is chat client (using LXMF), can do voice calls (using LXST) and a browser for Nomad Network
Reticulum is designed to be medium-agnostic and should function well over a wide variety of protocols and networking technologies, particularly low-bandwidth ones like radio. The reference implementation supports most of the interfaces you might use to connect computers together, as well as some less common ones.
Mark is also obviously interested in LoRa (and radio in general), so he also developed the RNode firmware which runs on cheap hardware similar to Meshtastic and provides a LoRa interface for Reticulum. Because of this, Reticulum is often brought up in the context of LoRa mesh technologies, but Reticulum is actually a lot more than that.
Reticulum builds networks with two kinds of nodes, Regular Nodes and Transport Nodes. Transport Nodes route messages around the network. Any device running Reticulum can be configured act as a Transport Node if the operator wants it to. So, Reticulum can be used to build very resilient and potentially very large networks with relatively simple set up (e.g. compared how the global Internet is set up).
I got a few cheap RNode-compatible board off AliExpress and set up a 2 Raspberry Pis to act as Transport Nodes with both LoRa and WiFi interfaces. Each Raspberry Pi could connect with local devices (laptops or Android phones) using WiFi. The two Raspberry Pis could reach each other over a longer distance using LoRa, effectively bridging devices connected to each Pi with WiFi. This was a proof of concept for e.g. connecting devices between two buildings within LoRa range of each other in the absence of the Internet.
I ran into a few quirks with setting up the different Reticulum applications on GrapheneOS on phones and on QubesOS/Linux on laptops. But once everything was worked, it worked quite well! All the applications I tested that use Reticulum expose a lot of configuration options to the user, so they can be difficult to set up correctly. But once they are configured they work great. I think a "killer app" moment for Reticulum will occur if someone develops a more user-friendly application that uses the Reticulum protocol with some sensible default configurations (with more options under the hood for power users). Perhaps in a dedicated portable device with LoRa and WiFi, for example.
Another big leap in usability will occur if the networking stack can be rewritten in something that can run independently on an ESP32 chip or other low-power hardware. Currently, an RNode, a little LoRa radio running on an inexpensive chip, can only act as an interface to LoRa radio for another device like a laptop, android phone, or Raspberry Pi. It can't independently act as a Transport node to relay Rectiulum packets in the way a single Meshtastic node running on an ESP32-based board can be placed somewhere with a solar panel and act as a mesh repeater node in the network. To do that with Reticulum, you need a device that can run Python to run the full network stack, so it will be something that uses a lot more power. There is no technical reason for this, and there are projects to implement Reticulum so that it can run natively on something like an ESP32-based RNode.
Overall I find Reticulum more more promising than other projects like Meshtastic. Reticulum can be used to connect devices over LoRa, but it's also an entire networking stack built from scratch with considerations like good encryption, privacy, security, anonymity, autonomy or "self-sovereignty", and portable identity, built in at the beginning.
General links
- Reticulum website - Overview and how to get started
- Reticulum manual - Detailed network stack specification
- Mark's 38C3 Reticulum talk
- Amsterdam LAG hacklab Reticulum workshop notes
- Reticulum GitHub Wiki - Contains a lot of info not found elsewhere
- "Awesome Reticulum" - List of projects using Reticulum, although not comprehensive and many are unfinished/abandoned
- Comparing Reticulum and Meshtastic blog post
GitHub repos for project core components/software
- Reticulum
- RNode Firmware
- RNode Firmware "Community Edition" (more actively developed)
- Nomad Network
- Sideband
- LXMF
- LXST
- MeshChat
- rnsh
Reticulum Meta
Mark's "official" blog posts about Reticulum, to get a sense of what the project plan and conceptions are.
- https://unsigned.io/articles/2023_01_14_Thanks.html
- https://unsigned.io/articles/2023_06_03_The_Reticulum_API_Is_Complete.html
- https://unsigned.io/articles/2024_05_16_Are_We_There_Yet.html
- https://unsigned.io/articles/2025_02_24_Going_Fast_and_Slow.html
- https://unsigned.io/articles/2025_05_09_The_End_Is_Nigh_For_The_Beta_Days.html
I think the Roadmap is useful to look at too.
Micron
- md to mu converter
- Micron Playground - Interactive in-browser app for editing micron with preview
RNodes
Tips for connecting RNode to Linux via USB
Find connected RNode:
lsusb
ls -l /dev/tty*
RNode is most likely /dev/tty/ACM0 or /dev/ttyUSB0 or similar.
Sometimes on Linux (Debian?) you need to run this command to make USB-connected RNode work:
sudo setfacl -m u:user:rw /dev/ttyUSB0
Are you sure you are using a data USB cable? When in doubt, try another cable.
unsigned.io guides
Some crucial information for using RNodes is buried in the Guides on Mark's unsiqned.io site:
- https://unsigned.io/guides/2022_01_25_installing-rnode-firmware-on-supported-devices.html
- https://unsigned.io/guides/2022_01_26_how-to-make-your-own-rnodes.html
- https://unsigned.io/guides/2022_03_26_private-messaging-over-lora.html
- https://unsigned.io/guides/2023_01_19_RNode_Bluetooth_Setup_In_Sideband_On_Android.html
- https://unsigned.io/guides/2023_01_15_Getting_The_New_Bootstrap_Console_Onto_Your_RNode.html
Also, the RNode User Manual for Mark's RNodes:
RNode hardware
Some cheap complete kits (case, antenna, battery) on AliExpress that worked well for me:
- https://www.aliexpress.com/item/1005009476361099.html
- https://www.aliexpress.com/item/1005009295873254.html
Cheap, no battery included, for connecting to a Raspberry Pi or something stationary:
Tips for connecting RNode to Android (Graphene) via Bluetooth
- Set up Sideband with the above RNode settings in the Connectivity and Hardware > RNode menus
- Under Hardware > RNode, also toggle on:
- Control RNode Display
- Connect using Bluetooth
- Device requires BLE (this is true for all the RNode hardware I have tried)
- Sideband will ask for Bluetooth/Nearby Devices permission: grant it.
- Shutdown Sideband
- Remove any other paired RNode bluetooth devices from your phone's Bluetooth settings
- Turn on RNode, make sure Bluetooth is On.
- Quick press of button (sometimes left or top button) toggles it on and off, visible on the display.
- Turn on phone bluetooth and prepare to pair a new device
- Put RNode in bluetooth pairing mode.
- Hold down button (left/top) for 10 seconds, then release.
- The screen will display the pairing number and the RNode will appear in available devices to pair with in your phone's bluetooth menu.
- Pair with the RNode and enter the pairing code.
- The RNode will pair, but not show as connected.
- It will now show as a "Saved Device" in your phone's bluetooth options.
- It will only show as connected when Sideband is running.
- Make sure your phone's bluetooth is still on.
- Start Sideband.
- RNode screen should change, showing connection information
- Verify RNode Interface is Sideband under Utilities > Reticulum Status
Tips for connecting RNode to Android (Graphene) via USB
- Set up Sideband with the above RNode settings in the Connectivity and Hardware > RNode menus
- Under Hardware > RNode verify that "Connect using Bluetooth" is toggled off
- Shutdown Sideband.
- Attach RNode with USB cable.
- Phone should ask to Open Sideband whenever this USB device is connected. Grant the permission. If there an option, select to "Always open Sideband when this device is connected."
- Sideband should open.
- RNode screen should change, showing connection information
- Verify RNode Interface is Sideband under Utilities > Reticulum Status
- If not, shutdown Sideband, disconnect RNode and reconnect RNode. This time when Sideband launches, the RNode should connect!
Are you sure you are using a data USB cable? When in doubt, try another cable.
If trying to use the Sideband in-app pairing, give Sideband Location permissions as well.