Designing your own RNode
Reticulum is a very cool network stack made by Mark Qvist. It can work over Ethernet and wifi, but also over LoRa with the use of RNode modems. These are readily available development boards with an ESP32 processor and a LoRa radio which, with the right firmware, make the RNode modems. But it is also possible to make your own homebrew RNode modem. The problem is that it is not well documented how to do that. This page is my attempt to alter that.
2025-04-08

The basics
A typical RNode is nothing more than an ESP32 micro controller and a
LoRa radio. It connects to a host pc running the Reticulum stack via a
USB connection. The firmware for the RNode supports various ESP32
development boards like the onces from LilyGo and Heltec. The firmware
can be installed automatically via the command rnodeconfig
and I am impressed how user friendly that implementation is.
But the supported boards all come with low power LoRa modules with an output power between 14 dBm and 22 dBm. As a ham, I want (and am allowed) to transmit with more power. Some off the shelf LoRa modules are capable of producing up to 33 dBm of power. But there are no supported development board available with these high power LoRa modules installed. So I have to design my own board and alter the RNode firmware.
The hardware
The hardware couldn’t be simpler: an ESP32 S3 connected to a LoRa transceiver via the SPI bus. Any ESP32 S3 board wil do: a development board or just the bare ESP32 S3 module. If it has I/O pins which can be used for the SPI interface, it will work.
The following LoRa modules are supported by my version of the firmware:
- EBYTE E22-400M33S (SX1268)
- Ai-Thinker Ra-02 (SX1278)
LilyGO T7-S3 ESP32-S3 Development Board with SX1278


Waveshare ESP32-S3 Pico Development Board with SX1278 and SX1268



The firmware
Most of the work was to figure out how to alter the firmware to let
is work with my homebrew boards. It is not possible to just program the
board with rnodeconfig -autoinstall
as the precompiled
firmware is not suitable for my boards. So I have to alter the source
code and compile it myself. I documented this process and published it
on my git repository: HOWTO
change firmware and compile it
On this git repository you can also find the alterred source code: https://git.meezenest.nl/marcel/RNode_Firmware_CE
Testing the 2 Watt RNode
The E22-400M33S module is capable of delivering 33dBm of output power. But only if it is fed with 5.5 Volts, which is also the absolute maximum rating of the module. I power the module with 5.2 Volts, which is the voltage most 5 Volt USB chargers will output, so that’s convenient. However, this lower voltage will limit the output power to about 1.3 Watts.
These are the RNode settings I used:
[[RNode LoRa Interface]]
type = RNodeInterface
mode = access_point
interface_enabled = True
port = /dev/ttyACM1
frequency = 434000000
bandwidth = 125000
txpower = 22
spreadingfactor = 8
codingrate = 6
I was able to connect to the Reticulum network over a distance of about 10 km. The base station was the E22 prototype with a 5/8 wave antenna, 12 meter high. For the mobile station I used a LilyGO TTGO T3 LoRa32 433MHz V1.6.1 ESP32 with an output power of 17 dBm and a small antenna on the roof of my car.





But I want more power!
It is possible to produce even more power by adding a second amplifier. The PTT of this amplifier can be controlled by the TXEN pin of the E22 module. For this purpose, I added an open collector PTT output to the prototype, see the schematic. With this output you can switch almost any RF amplifier. However, the TX/RX switch must be very fast. This is because the LoRa packets are short and frequent.
It is a good idea to set the mode of the RNode to access
point in the file ~/.reticulum/config
. When you forget
this, all the announces on the Reticulum network will make the relays in
the PA go crazy!
I was able to use a vintage 70 cm PA with a gain of about 8 dB, bringing the total output power up to about 10 Watt. The RX/TX switching is done with two coaxial relays. These turned out to be fast enough to be used with Reticulum. But although I had gained 8 dB on the transmit side, the old PA had a lot of signal loss when in receive mode. I was not able to make a connection to the Reticulum network over a distance more than 6 km. But when I had a connection, the signal strength in my car was better than without the use of the PA. The lesson learned is that the base station must have very good ears, so an extra LNA is probably advisable.
Conclusion
Building a homebrew RNode modem can be done and is, in fact, fairly easy once you know how to do it. But that process wasn’t well documented. I hope that with the publication of this page, others can now build there own RNodes more easily.