<spanid="hardware-main"></span><h1>Communications Hardware<aclass="headerlink"href="#communications-hardware"title="Permalink to this headline">¶</a></h1>
<p>One of the truly valuable aspects of Reticulum is the ability to use it over
almost any conceivable kind of communications medium. The <aclass="reference internal"href="interfaces.html#interfaces-main"><spanclass="std std-ref">interface types</span></a>
available for configuration in Reticulum are flexible enough to cover the use
of most wired and wireless communications hardware available, from decades-old
packet radio modems to modern millimeter-wave backhaul systems.</p>
<p>If you already have or operate some kind of communications hardware, there is a
very good chance that it will work with Reticulum out of the box. In case it does
not, it is possible to provide the necessary glue with very little effort using
for example the <aclass="reference internal"href="interfaces.html#interfaces-pipe"><spanclass="std std-ref">PipeInterface</span></a> or the <aclass="reference internal"href="interfaces.html#interfaces-tcpc"><spanclass="std std-ref">TCPClientInterface</span></a>
in combination with code like <aclass="reference external"href="https://github.com/simplyequipped/tcpkissserver">TCP KISS Server</a>
by <aclass="reference external"href="https://github.com/simplyequipped">simplyequipped</a>.</p>
<p>While this broad support and flexibility is very useful, an abundance of options
can sometimes make it difficult to know where to begin, especially when you are
<spanid="rnode-main"></span><h2>RNode<aclass="headerlink"href="#rnode"title="Permalink to this headline">¶</a></h2>
<p>Reliable and general-purpose long-range digital radio transceiver systems are
commonly either very expensive, difficult to set up and operate, hard to source,
power-hungry, or all of the above at the same time. In an attempt to alleviate
this situation, the transceiver system <em>RNode</em> was designed. It is important to
note that RNode is not one specific device, from one particular vendor, but
<em>an open plaform</em> that anyone can use to build digital transceivers suited to
their needs and particular situations.</p>
<p>An RNode is a general purpose, interoperable, low-power and long-range, reliable,
open and flexible radio communications device. Depending on its components, it can
operate on many different frequency bands, and use many different modulation
schemes, but most commonly, and for the purposes of this chapter, we will limit
the discussion to RNodes using <em>LoRa</em> modulation in common ISM bands.</p>
<p><strong>Avoid Confusion!</strong> An RNode can use LoRa as a <em>physical-layer modulation</em>, but it
does not use, and has nothing to do with the <em>LoRaWAN</em> protocol and standard, commonly
used for IoT devices. RNodes use <em>raw LoRa modulation</em>, without any additional
protocol overhead. All high-level protocol funcionality is handled directly by
Reticulum.</p>
<divclass="section"id="creating-rnodes">
<spanid="rnode-creating"></span><h3>Creating RNodes<aclass="headerlink"href="#creating-rnodes"title="Permalink to this headline">¶</a></h3>
<p>RNode has been designed as a system that is easy to replicate across time and
space. You can put together a functioning transceiver using commonly available
components, and a few software tools. While you can design and build RNodes
completely from scratch, to your exact desired specifications, this chapter
will explain the easiest possible approach to creating RNodes, which is using common
LoRa development boards. This approach can be boiled down to two simple steps:</p>
<olclass="arabic simple">
<li><p>Obtain one or more supported development boards</p></li>
<li><p>Install the RNode firmware with the automated installer</p></li>
</ol>
<p>Once the firmware has been installed and provisioned by the install script, it
is ready to use with any software that supports RNodes, including Reticulum.
The device can be used with Reticulum by adding an <aclass="reference internal"href="interfaces.html#interfaces-rnode"><spanclass="std std-ref">RNodeInterface</span></a>
to the configuration.</p>
</div>
<divclass="section"id="supported-boards">
<spanid="rnode-supported"></span><h3>Supported Boards<aclass="headerlink"href="#supported-boards"title="Permalink to this headline">¶</a></h3>
<p>To create one or more RNodes, you will need to obtain supported development
boards. The following boards are supported by the auto-installer.</p>
<divclass="section"id="lilygo-lora32-v2-1">
<h4>LilyGO LoRa32 v2.1<aclass="headerlink"href="#lilygo-lora32-v2-1"title="Permalink to this headline">¶</a></h4>
<spanid="rnode-installation"></span><h3>Installation<aclass="headerlink"href="#installation"title="Permalink to this headline">¶</a></h3>
<p>Once you have obtained compatible boards, you can install the <aclass="reference external"href="https://github.com/markqvist/RNode_Firmware">RNode Firmware</a>
using the <aclass="reference external"href="https://github.com/markqvist/rnodeconfigutil">RNode Configuration Utility</a>.
Make sure that <codeclass="docutils literal notranslate"><spanclass="pre">Python3</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">pip</span></code> is installed on your system, and then install
the config utility with <codeclass="docutils literal notranslate"><spanclass="pre">pip</span></code>:</p>
<p>The utility will guide you through the installation process by asking a series of
questions about your hardware. Simply follow the guide, and the utility will
auto-install and configure your devices</p>
<p><strong>Important Note!</strong> It is currently recommended to use the v1.x line of the RNode firmware,
even though the v2.x line is available for early testing. The v2.x line should still be
considered an experimental pre-release. Only use the v2.x firmware line if you want to test
out the absolutely newest version, and don’t care about stability.</p>
</div>
<divclass="section"id="usage-with-reticulum">
<spanid="rnode-usage"></span><h3>Usage with Reticulum<aclass="headerlink"href="#usage-with-reticulum"title="Permalink to this headline">¶</a></h3>
<p>When the devices have been installed and provisioned, you can use them with Reticulum
by adding the <aclass="reference internal"href="interfaces.html#interfaces-rnode"><spanclass="std std-ref">relevant interface section</span></a> to the configuration
file of Reticulum. For v1.x firmwares, you will have to specify all interface parameters,
such as serial port and on-air parameters. For v2.x firmwares, you just need to specify
the Connection ID of the RNode, and Reticulum will automatically locate and connect to the
RNode, using the parameters stored in the RNode itself.</p>
</div>
<divclass="section"id="suppliers">
<spanid="rnode-suppliers"></span><h3>Suppliers<aclass="headerlink"href="#suppliers"title="Permalink to this headline">¶</a></h3>
<p>Get in touch if you want to have your RNode supplier listed here, or if you want help to
get started with producing RNodes.</p>
</div>
</div>
<divclass="section"id="wifi-based-hardware">
<h2>WiFi-based Hardware<aclass="headerlink"href="#wifi-based-hardware"title="Permalink to this headline">¶</a></h2>
<p>It is possible to use all kinds of both short- and long-range Wifi-based hardware
with Reticulum. Any kind of hardware that fully supports bridged ethernet over the
WiFi interface will work with the <aclass="reference internal"href="interfaces.html#interfaces-auto"><spanclass="std std-ref">AutoInterface</span></a> in Reticulum.
Most devices will behave like this by default, or allow it via configuration options.</p>
<p>This means that you can simply configure the physical links of the WiFi based devices,
and start communicating over them using Reticulum. It is not necessary to enable any IP
infrastructure such as DHCP servers, DNS or similar, as long as at least Ethernet is
available, and packets are passed transparently over the physical WiFi-based devices.</p>