// practical example

Heltec V4 as a LoRa node over WiFi

Here you turn a Heltec LoRa32 V4 into a Reticulum LoRa node. You flash the RNode firmware, connect the board to your network over WiFi, and then use it as a radio interface for Reticulum.

ReticulumNet LoRa settings

Frequency869.463 MHz
Bandwidth125 kHz
Spreading FactorSF8
Coding Rate5

What you need

Heltec LoRa32 V4868 MHz version for Europe. Around 20 euros.
USB-C cableMust be a data cable, not charge-only.
ComputerTo flash (Chrome required for the web flasher).
WiFi networkThe Heltec connects to this after flashing.
Server or Raspberry PiTo run rnsd. Must be on the same WiFi network.
USB chargerTo power the Heltec by the window.

Step 1: Flash the RNode firmware

The web flasher is the easiest way. Connect the Heltec to your computer over USB and open Chrome.

1.

Put the board into boot mode: hold BOOT, briefly press RESET, release BOOT.

2.

Open the web flasher.

3.

Product: Heltec LoRa32 v4. Model: 868 MHz.

4.

Click Official Firmware to download the zip file.

5.

Click Choose File, select the zip file, click Flash Now.

6.

Click Provision (step 3 in the flasher).

7.

Click Set Firmware Hash (step 4 in the flasher).

Open the RNode Web Flasher
Alternative: via the command line

pip install rns

rnodeconf /dev/ttyACM0 --autoinstall

# Choose 9 (Heltec LoRa32 v4)

# Choose 1 (868 MHz)

Step 2: Configure WiFi

Connect the flashed Heltec over USB to the server or Pi that will run rnsd later. Install RNS if you have not done so yet.

# Install RNS (if not done yet)

pip install rns

# Set up WiFi

rnodeconf /dev/ttyACM0 -w station --ssid JouwWiFiNaam --psk JouwWiFiWachtwoord

# Set a static IP address (recommended)

rnodeconf /dev/ttyACM0 -w station --ip 192.168.1.50 --nm 255.255.255.0

Now unplug the USB cable and connect the Heltec to a USB charger. Place it by the window for the best LoRa range. The Heltec connects to your WiFi automatically.

Check that it is reachable:

ping 192.168.1.50

Step 3: Configure rnsd

Start rnsd once to generate the config, stop it, and add the LoRa interface.

# First start: generates config in ~/.reticulum/config

rnsd

# Stop with Ctrl+C

Edit ~/.reticulum/config. Set enable_transport = Yes in the [reticulum] section and add the LoRa interface under [interfaces]:

[[ReticulumNet LoRa]]

type = RNodeInterface

enabled = yes

port = tcp://192.168.1.50

frequency = 869463000

bandwidth = 125000

spreadingfactor = 8

codingrate = 5

Replace 192.168.1.50 with the IP address you set in step 2.

Step 4: Start and check

rnsd &

rnstatus

The ReticulumNet LoRa interface should show Up. You see the frequency, bandwidth, spreading factor and coding rate confirmed by the radio.

RNodeInterface[ReticulumNet LoRa]

Status: Up

Rate: 3.12 kbps

Freq: 869.463 MHz / BW: 125 kHz / SF: 8 / CR: 5

Run as a systemd service (always on after reboot)

# /etc/systemd/system/rnsd.service

[Unit]

Description=Reticulum Network Daemon

After=network.target

[Service]

Type=simple

User=kel

ExecStart=/usr/local/bin/rnsd

Restart=always

[Install]

WantedBy=multi-user.target

sudo systemctl enable rnsd

sudo systemctl start rnsd

Step 5: Connect Ratspeak

Download Ratspeak on your phone. For Android: the ARM64 APK from ratspeak.org. Not available in the Play Store.

1.

Install the APK. Allow installation from unknown sources if Android asks.

2.

Open Ratspeak. Your identity (LXMF address and hash) is created automatically.

3.

Go to Connections > Local Network.

4.

Turn it on. Leave the Group ID set to "reticulum".

5.

Make sure your phone is on the same WiFi as the server.

Your phone and server find each other automatically via AutoInterface. Under Peers in the app you see the transport node appear. You can now send messages over LoRa to anyone within range of your Heltec.

Download Ratspeak

The result

Antenna by the window
      |
  Heltec V4 (RNode, 869.463 MHz, SF8)
      |
    WiFi (tcp://192.168.x.x)
      |
  Server (rnsd, enable_transport = yes)
      |
  Phone (Ratspeak, same WiFi)

The Heltec is the radio. The server is the transport node. The phone is the client. LoRa messages from other nearby nodes come in through the Heltec, and the server forwards them. And the other way around.

Without a separate host: standalone firmware

In the steps above the board is only the radio, and Reticulum runs on a host (a computer or Raspberry Pi). There is another route too: microReticulum, an implementation of the Reticulum stack in C++ that runs on the board itself. You then don't need a separate host.

With the companion firmware the board runs in "Transport Mode" as a transport node and repeater. Handy in a good radio spot where there is no room for a computer.

For the Heltec V4 there is ready-to-flash firmware built on this: RTNode-HeltecV4. It bridges local LoRa traffic over WiFi to the wider Reticulum network (LoRa to TCP). The board gets an OLED status screen and a web configuration portal. You flash it with a web flasher (Chrome/Edge), a Python script or PlatformIO. The Heltec V3 works too.

Standard RNode Standalone (RTNode-HeltecV4)
Separate host neededYes (computer or Pi)No, runs on the board
RoleRadio, host does the routingStandalone node, also transport and repeater
MaturityStable, widely usedActively developed, more experimental
Heltec V4SupportedBuilt specifically for it
FlashingWeb flasher or rnodeconfWeb flasher, flash.py or PlatformIO

Note: this standalone firmware is Beta (lightly tested, for early adopters). Because of the ESP32's limited memory the routing table is capped (RTNode-HeltecV4: 24 paths). For a repeater that just has to run reliably, the host route (Pi plus RNode) is the safest choice for now. There is also a 2.4 GHz variant, RTNode-2400, for other radio chips.

Troubleshooting

The most common problems with this setup. More, including flashing, USB and standalone firmware, is on the troubleshooting page.

Problem Solution
Board not recognized during flashing Try a different USB cable. Must be a data cable, not charge-only.
LoRa interface shows "Down" Check that the IP address is correct with ping. Use tcp://IP without a port number.
No peers in Ratspeak Check that your phone is on the same WiFi, not on mobile data.
rnodeconf not found export PATH=$PATH:~/.local/bin
"Missing config" on the screen Step 3 (Provision) and step 4 (Set Firmware Hash) in the web flasher have not been done.