Skip to content

Getting Started with Reticulum

What is Reticulum?

Reticulum is a cryptography-based networking stack built for reliable communication over high-latency, low-bandwidth, and unreliable links. That includes LoRa radio, packet radio, serial connections, TCP/IP, and more. It needs no central infrastructure, assigns no fixed addresses, and automatically figures out mesh-routed paths between nodes. Every identity and link is cryptographically verified end-to-end.

Reticulum is not tied to any single hardware or transport. You can run it over a LoRa radio, your home network, the internet, a serial cable, or all of the above at the same time. The stack handles routing across all of them automatically.


Choosing Your Interface

Before getting started, it helps to know how you plan to connect to the Reticulum network. The most common options are:

  • RNode (LoRa radio): Best for off-grid, long-range, and infrastructure use. Requires a supported LoRa device and antenna.
  • TCP over the internet: Great for testing or connecting to a wider network without any radio hardware. You connect to a remote Reticulum node over a standard internet connection.
  • Local UDP: Useful for automatically linking devices on the same LAN without needing to know anyone's IP address.
  • Serial or I2C: For embedded setups or connecting directly to another device over a physical link.

You can use more than one at a time. A common setup is an RNode for local off-grid communication plus a TCP link to the ChiMesh relay for wider reach.

No Radio Hardware? No Problem

If you do not have an RNode yet, you can still get Reticulum running and join the wider network over TCP. Skip the RNode sections below and follow the TCP path instead.


Step 1: Install Reticulum

Reticulum is Python-based and runs on Linux, macOS, and Windows. You need Python 3.7 or later.

Install Python

Python 3 is usually pre-installed. Check with:

python3 --version

If it is not installed, grab it through your package manager:

# Debian / Ubuntu
sudo apt install python3 python3-pip

# macOS (via Homebrew)
brew install python3

Download the installer from python.org. During installation, check "Add Python to PATH" before clicking Install, otherwise commands will not work from the terminal.

Install the Reticulum Package

pip install rns

This installs everything: the daemon (rnsd), the RNode flasher (rnodeconf), and all the command-line tools.

Verify the install:

rnsd --version

Virtual Environments

It is worth installing inside a virtual environment to avoid conflicts with system packages:

python3 -m venv reticulum-env
source reticulum-env/bin/activate   # Linux/macOS
reticulum-env\Scripts\activate      # Windows
pip install rns

Step 2: Flash your device with Reticulum Firmware

Hardware Requirements

  • RNode-compatible device: Any of the following work:
    • Heltec LoRa32 v3 or v4
    • LilyGO T-Beam or T-LoRa
    • RAK4631 (WisBlock)
    • Any SX1262 or SX1276 board with RNode firmware
  • Antenna: 915 MHz for North America
  • USB cable: Data-capable, not charge-only

Antenna Safety

Always connect your antenna BEFORE powering on your device. Running without an antenna will permanently damage the RF hardware.

Frequency Compliance

The Chicagoland Reticulum network operates at 914.875 MHz. Using the wrong frequency means you will not be able to hear other nodes.

Find Your Serial Port

Plug your device in via USB, then find the port it is on:

ls /dev/ttyUSB* /dev/ttyACM*

Common results: /dev/ttyUSB0, /dev/ttyACM0

ls /dev/cu.*

Common results: /dev/cu.usbserial-*, /dev/cu.SLAB_USBtoUART

Open Device Manager and look under Ports (COM & LPT). Note the COM number (e.g., COM5).

Permission Errors on Linux

If you get a Permission denied error, add your user to the dialout group:

sudo usermod -a -G dialout $USER

Log out and back in for it to take effect.

Flash the Firmware

rnodeconf /dev/ttyACM0 --autoinstall

Replace /dev/ttyACM0 with your actual port. The tool detects your device, downloads the right firmware, flashes it, and verifies the result.

Manual Firmware Selection

If auto-detection fails, run rnodeconf --list to see supported targets, then:

rnodeconf /dev/ttyACM0 --install-firmware --target <target-name>

Verify the Flash

rnodeconf /dev/ttyACM0 --info

You should see the firmware version, device model, and radio parameters. Your RNode is ready. Continue to Step 3.

Step 3: Start the Daemon

rnsd

The first time it runs, Reticulum generates your cryptographic identity and writes a default config file. Your identity is your address on the network, so back up the config directory if you want to keep the same address long-term.

  • Linux/macOS: ~/.reticulum/config
  • Windows: %APPDATA%\Reticulum\config

To run it in the background:

rnsd &

Running as a System Service

Check out the offical documentation for an example on how to start rnsd automatically at boot time.

Verify Your Interfaces

rnstatus

Your interfaces should show as UP. If you are on TCP and the ChiMesh relay is reachable you will see packet counts climbing within a few seconds. With an RNode, counts will climb if other nodes are within radio range on the same frequency and parameters.

Next Steps

View the Configuring page to learn how to configure TCP and RNode interfaces.


Step 4: Install a Messaging App

Reticulum is a transport layer, so you need an application on top of it to actually communicate. Several options are available depending on your platform and preferences.

Nomad Network (Terminal, Linux/macOS/Windows)

Nomad Network is the main terminal-based platform for Reticulum. It provides direct messaging, a node board, and a distributed page and file system. This is a great starting point on a desktop or server.

pip install nomadnet
nomadnet

It connects to your running rnsd daemon automatically. Once inside, press ++ctrl+n++ to open the Network pane and browse nodes that have announced themselves. Press ++ctrl+m++ to open messaging and start a conversation.

Running Nomad Network headlessly

You can run Nomad Network in daemon mode on a server or Raspberry Pi to keep your node active and reachable even when you are not at a terminal:

nomadnet --daemon

Sideband (GUI, Linux/macOS/Windows/Android/iOS)

Sideband is a graphical messaging app available across all major platforms. It is the best choice if you want a proper GUI or want to use your phone.

Install Sideband from Google Play or download the APK directly from the Sideband releases page.

Once installed, open the app and go to Settings → Connectivity. Add the ChiMesh relay:

  • Type: TCP
  • Host: rns.chimesh.org
  • Port: 4242

Sideband + RNode on Android

Sideband can connect directly to an RNode over USB or Bluetooth without needing a separate computer running rnsd. Combined with an Android phone this gives you a fully self-contained off-grid communicator.

Retichat is the recommended Reticulum messaging app for iOS. Download it from the Apple App Store.

Once installed, open the app and navigate to Settings → Transport. Add the ChiMesh relay as a TCP interface:

  • Host: rns.chimesh.org
  • Port: 4242

Retichat supports direct messaging, group channels, and announces. It can also connect to a local rnsd instance on the same network if you prefer to run your own transport node.

pip install sbapp
sbapp

In the app, go to Settings → Connectivity and add a TCP interface pointing to ChiMesh:

  • Host: rns.chimesh.org
  • Port: 4242

Reticulum MeshChat (Web UI)

Reticulum MeshChat by Liam Cottle is a web-based chat interface for Reticulum that runs in your browser. It is a great option if you prefer a clean, modern UI without installing a native app and already have rnsd running on a machine on your network.

Install

pip install reticulum-meshchat

Or run it via Docker:

docker run -d \
  -p 8000:8000 \
  -v ~/.reticulum:/root/.reticulum \
  liamcottle/reticulum-meshchat

Run

reticulum-meshchat

Then open your browser to http://localhost:8000. MeshChat connects to your running rnsd daemon automatically and provides a real-time chat interface with channel and direct messaging support.

Accessing MeshChat from other devices

If you run MeshChat on a server or Raspberry Pi on your LAN, you can access it from any browser on the same network by navigating to http://<server-ip>:8000.

Other Clients

AppPlatformNotes
Nomad NetworkLinux, macOS, Windows (terminal)Full-featured terminal client with messaging, boards, and distributed pages
SidebandAndroid, iOS, Linux, macOS, WindowsBest graphical client; supports RNode over USB/Bluetooth on Android
RetichatiOSRecommended iOS client
Reticulum MeshChatWeb (any browser)Modern web UI by Liam Cottle; runs alongside rnsd
LXMF ToolsLinux, macOS, Windows (CLI)Command-line tools for sending and receiving LXMF messages

Getting Help

  1. Discord: Join the Chicagoland Mesh Discord for local community support
  2. Reticulum Community: Join the Reticulum Matrix room for broader community support
  3. Documentation: reticulum.network/manual
  4. Source Code: github.com/markqvist/Reticulum
  5. RNode Firmware Source: github.com/markqvist/RNode_Firmware

  • FCC Part 15: Unlicensed LoRa operation in the US is permitted under Part 15 within power and duty cycle limits
  • Amateur Radio (Part 97): Licensed amateur operators can run higher power on additional frequencies, but must transmit identification and cannot use encryption for control signals
  • Encryption: Reticulum encrypts all traffic by default. This is fine under Part 15. Under Part 97, check your regional rules on encrypted communications before operating

Next Steps