// practical example
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.
| Frequency | 869.463 MHz |
| Bandwidth | 125 kHz |
| Spreading Factor | SF8 |
| Coding Rate | 5 |
| Heltec LoRa32 V4 | 868 MHz version for Europe. Around 20 euros. |
| USB-C cable | Must be a data cable, not charge-only. |
| Computer | To flash (Chrome required for the web flasher). |
| WiFi network | The Heltec connects to this after flashing. |
| Server or Raspberry Pi | To run rnsd. Must be on the same WiFi network. |
| USB charger | To power the Heltec by the window. |
The web flasher is the easiest way. Connect the Heltec to your computer over USB and open Chrome.
Put the board into boot mode: hold BOOT, briefly press RESET, release BOOT.
Open the web flasher.
Product: Heltec LoRa32 v4. Model: 868 MHz.
Click Official Firmware to download the zip file.
Click Choose File, select the zip file, click Flash Now.
Click Provision (step 3 in the flasher).
Click Set Firmware Hash (step 4 in the flasher).
pip install rns
rnodeconf /dev/ttyACM0 --autoinstall
# Choose 9 (Heltec LoRa32 v4)
# Choose 1 (868 MHz)
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
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.
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
# /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
Download Ratspeak on your phone. For Android: the ARM64 APK from ratspeak.org. Not available in the Play Store.
Install the APK. Allow installation from unknown sources if Android asks.
Open Ratspeak. Your identity (LXMF address and hash) is created automatically.
Go to Connections > Local Network.
Turn it on. Leave the Group ID set to "reticulum".
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 RatspeakAntenna 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.
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 needed | Yes (computer or Pi) | No, runs on the board |
| Role | Radio, host does the routing | Standalone node, also transport and repeater |
| Maturity | Stable, widely used | Actively developed, more experimental |
| Heltec V4 | Supported | Built specifically for it |
| Flashing | Web flasher or rnodeconf | Web 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.
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. |