This is a guide for setting up and using the microReticulum-based RTNode firmware on HeltecV4.2 LoRa hardware, based on testing by anarchists in Montreal in March and April 2026. Due to the 10,000 character limit for posts on the rns.recipes forum, this guide has been split over multiple posts in this thread.
Context
Social Context
I wrote this guide because I think Reticulum mesh networks, especially over LoRa and other digital radio connections, have the potential to provide an important option for autonomous communications infrastructure. Until now, the deployment of this infrastructure for Reticulum required a full computer on each node and was therefore more expensive and technically involved than other platforms such as Meshtastic or Meshcore which can run full mesh nodes on smaller, cheaper, more energy efficient microcontroller-based LoRa hardware like ESP32 or nRF52 boards. However, in many ways these other platforms are both less private and less secure than Reticulum. The tests described in this guide demonstrate how it is now possible to run a Reticulum mesh node on ESP32 hardware, making the deployment of Reticulum networks over LoRa much more feasible than it was before.
Technical context
The original, and still most widely used, version of the Reticulum Network Stack (RNS) is written by markqvist in the python programming language. This means that it can only run on regular computers, not on a microcontroller like the ESP32s and nRF52s that run on cheap LoRa nodes. Up until now, when people have been running Reticulum over LoRa, the regular RNode (notice there's no T for transport) firmware they flash to a LoRa node doesn't actually run Reticulum/RNS. It plugs into another device like an Android phone, laptop, RPi or other computer that is running RNS, and provides a LoRa radio interface that RNS can then be configured to use. This is fine until you want to deploy an autonomous node running on solar and batteries, and then the requirement to maintain a full computer that can run python implies significant infrastructural overhead: more electricity, a bigger solar panel, higher voltage, more batteries, more complex electronics, higher cost, etc.
The solution to this problem lies in new versions of the Reticulum software written in more hardware-efficient languages that can run on microcontrollers. The most usable of these so far is called microReticulum, written in C++ (the same language as the Meshtastic and Meshcore firmwares). There are also a few other Reticulum versions being written in Rust that may eventually become usable in microcontroller firmware, but for now there's just microReticulum. The core microReticulum software is a C++ library that isn't very useful on its own. It needs to be imported into separate software that is used to build firmware images that can then be flashed to LoRa hardware.
The developer of microReticulum (attermann) has separate project called microReticulum_firmware that builds and releases microReticulum-based firmware images for many common LoRa boards, but it has been unclear to me how much testing is happening to confirm how well each image actually works. Both the library and the firmware continue to be under heavy development, and their documentation is relatively limited. When I have tried a couple times to test them they haven't seemed to work. This testing should continue though, especially for nRF52-based boards such as the RAK4631/Wisblocks that that use even less power than the Heltecs and other ESP32s.
Our current round of testing in Montreal started in late-February 2026 after the publication on February 22nd of the RTNode-HeltecV4 repository. This project took the microReticulum library and did the work required to create an actually usable, relatively well-documented firmware for the new HeltecV4 hardware which had become available for purchase a few months earlier in Fall 2025. As far as I am aware, this is the first reliably usable microReticulum firmware for a LoRa transport node, and this guide explains how you can use it.
The RTNode project was created to run on the original model of the HeltecV4 hardware, which is version 4.2 of the board. However, soon after first release there were problems discovered with the radio reception levels of the board and so a new version 4.3 was more recently released to fix this problem. Just days prior to the publication of this guide, the RTNode firmware was updated for compatibility with the v4.3 boards, and this still needs to be tested. Whichever HeltecV4 hardware you end up with, there should soon be a way to get it working as a microReticulum-based transport RNode. If you have a choice, it is probably better to purchase HeltecV4.3 boards because they have improved LoRa reception.
Since its start on the HeltecV4.2, the RTNode project has also added support for the older HeltecV3 and now other people are making forks of the repository adding support for other ESP32-based hardware. It is also worth noting that the developer of the RTNode firmware (jrl290) had never previously worked on firmware and they were only able to do this work with substantial involvement of an LLM in the development process.
Installation
Flashing RTNode
This flashing process, as well as the rest of the configuration and testing, was all done on version 1.0.24 of the project from late-March 2026. As of May 2nd, 2026, it is now on version 1.0.30 and a number of substantial improvements have been recently introduced, including an RTNode Firmware Flasher website. However, we haven't tested these changes yet so I'm mostly going to keep the guide as it was originally written for an earlier version. I would recommend using the latest version of RTNode despite some differences from the instructions in this guide.
The flashing process requires having git and python installed on your computer. The later testing steps will require the tio serial tool, and it might be simpler to install that as well before you start. These instructions should work on any Linux-based OS.
First, plug in your HeltecV4 with a USB cable.
In a terminal:
ls -d /dev/* | grep ttyACM
The line that is output is the path (probably /dev/ACM0) to the serial port for your Heltec and you will use this path in the flash.py command below. For different models, such as a HeltecV3, this serial path could have a different format.
Also, as your device gets unplugged and plugged back in, and reset multiple times, the port number can increment, for example from /dev/ttyACM0 to /dev/ttyACM1 and so on. Whenever doing something that involves connecting over a serial device it is worth doing the terminal command above to see which port number is currently in use.
Also note that your linux user may need to be in the dialout group to be able to connect to this port properly. You can run the groups command to check if your user is already in dialout and if not this command will add it:
sudo usermod -aG dialout $USER
It may then be necessary to start a new shell or system session for this change to come into effect.
These three terminal commands will download the RTNode firmware code:
cd /to_the_directory_where/you_want_to_put_the_repo/for_this_project/
git clone https://github.com/jrl290/RTNode-HeltecV4.git
cd RTNode-HeltecV4
Then in a browser:
Go to the RTNode-HeltecV4 releases page and download the rnode_firmware_heltec32v4_boundary.bin file (renamed in later versions) into the git repo directory you created above.
Back to the same terminal session as above:
python flash.py --board v4 --file rnode_firmware_heltec32v4_boundary.bin --port /dev/ttyACM0
When I did the flash I was asked three prompts, confirming that I want to wipe and reflash the node, and I said yes to all of them.
Configuring RTNode
When the flash completes the board will reboot into config mode. You can tell because it says "CONFIG MODE" on the screen. It also tells you the name of the WiFi SSID it is broadcasting, RNode-Boundary-Setup.
Connect to this WiFi network, and then in a browser go to http://10.0.0.1/ for the config page for the node.
For LoRa-only use you want to set the WiFi Network to "Disabled (LoRa-only Repeater)". The RTNode firmware also has support for acting as a Reticulum node over the internet or a local WiFi network, but those use cases are not covered in this guide.
The only remaining setup required is the LoRa Radio settings. These need to match the settings on the other RNodes you will be using on your LoRa network. Make sure you use a frequency that is not being used by other nearby RNodes that are not part of your testing, as this could cause complications later. We haven't tested the IFAC settings yet on RTNodes, but we plan to!
When you're done configuring, you would usually click Save & Reboot at the bottom and the node would reboot into regular mode and be ready to use, but we're not going to do that yet. Instead, before clicking this button, we will prep for testing.