mirror of
https://github.com/markqvist/Reticulum.git
synced 2026-07-20 15:08:14 -07:00
Added markdown manual
This commit is contained in:
@@ -0,0 +1,311 @@
|
||||
<a id="hardware-main"></a>
|
||||
|
||||
# Communications Hardware
|
||||
|
||||
One of the truly valuable aspects of Reticulum is the ability to use it over
|
||||
almost any conceivable kind of communications medium. The [interface types](interfaces.md#interfaces-main)
|
||||
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.
|
||||
|
||||
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 [PipeInterface](interfaces.md#interfaces-pipe) or the [TCPClientInterface](interfaces.md#interfaces-tcpc)
|
||||
in combination with code like [TCP KISS Server](https://github.com/simplyequipped/tcpkissserver)
|
||||
by [simplyequipped](https://github.com/simplyequipped).
|
||||
|
||||
It is also very easy to write and load [custom interface modules](interfaces.md#interfaces-custom)
|
||||
into Reticulum, allowing you to communicate with more or less anything you can think of.
|
||||
|
||||
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
|
||||
starting from scratch.
|
||||
|
||||
This chapter will outline a few different sensible starting paths to get
|
||||
real-world functional wireless communications up and running with minimal cost
|
||||
and effort. Two fundamental devices categories will be covered, *RNodes* and
|
||||
*WiFi-based radios*. Additionally, other common options will be briefly described.
|
||||
|
||||
Knowing how to employ just a few different types of hardware will make it possible
|
||||
to build a wide range of useful networks with little effort.
|
||||
|
||||
## Combining Hardware Types
|
||||
|
||||
It is useful to combine different link and hardware types when designing and
|
||||
building a network. One useful design pattern is to employ high-capacity point-to-point
|
||||
links based on WiFi or millimeter-wave radios (with high-gain directional antennas)
|
||||
for the network backbone, and using LoRa-based RNodes for covering large areas with
|
||||
connectivity for client devices.
|
||||
|
||||
<a id="rnode-main"></a>
|
||||
|
||||
## RNode
|
||||
|
||||
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 *RNode* was designed. It is important to
|
||||
note that RNode is not one specific device, from one particular vendor, but
|
||||
*an open plaform* that anyone can use to build interoperable digital transceivers
|
||||
suited to their needs and particular situations.
|
||||
|
||||
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 *LoRa* modulation in common ISM bands.
|
||||
|
||||
**Avoid Confusion!** RNodes can use LoRa as a *physical-layer modulation*, but it
|
||||
does not use, and has nothing to do with the *LoRaWAN* protocol and standard, commonly
|
||||
used for centrally controlled IoT devices. RNodes use *raw LoRa modulation*, without
|
||||
any additional protocol overhead. All high-level protocol functionality is handled
|
||||
directly by Reticulum.
|
||||
|
||||
<a id="rnode-creating"></a>
|
||||
|
||||
### Creating RNodes
|
||||
|
||||
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 open source 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: Using common
|
||||
LoRa development boards. This approach can be boiled down to two simple steps:
|
||||
|
||||
1. Obtain one or more [supported development boards](#rnode-supported)
|
||||
2. Install the RNode firmware with the [automated installer](#rnode-installation)
|
||||
|
||||
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 [RNodeInterface](interfaces.md#interfaces-rnode)
|
||||
to the configuration.
|
||||
|
||||
<a id="rnode-supported"></a>
|
||||
|
||||
### Supported Boards and Devices
|
||||
|
||||
To create one or more RNodes, you will need to obtain supported development
|
||||
boards or completed devices. The following boards and devices are supported
|
||||
by the auto-installer.
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### LilyGO T-Beam Supreme
|
||||
|
||||
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||
- **Device Platform** ESP32
|
||||
- **Manufacturer** [LilyGO](https://lilygo.cn)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### LilyGO T-Beam
|
||||
|
||||
- **Transceiver IC** Semtech SX1262, SX1268, SX1276 or SX1278
|
||||
- **Device Platform** ESP32
|
||||
- **Manufacturer** [LilyGO](https://lilygo.cn)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### LilyGO T3S3
|
||||
|
||||
- **Transceiver IC** Semtech SX1262, SX1268, SX1276 or SX1278
|
||||
- **Device Platform** ESP32
|
||||
- **Manufacturer** [LilyGO](https://lilygo.cn)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### RAK4631-based Boards
|
||||
|
||||
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||
- **Device Platform** nRF52
|
||||
- **Manufacturer** [RAK Wireless](https://www.rakwireless.com)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### OpenCom XL
|
||||
|
||||
- **Transceiver ICs** Semtech SX1262 and SX1280 (dual transceiver)
|
||||
- **Device Platform** nRF52
|
||||
- **Manufacturer** [Liberated Embedded Systems](https://liberatedsystems.co.uk/)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### Unsigned RNode v2.x
|
||||
|
||||
- **Transceiver IC** Semtech SX1276 or SX1278
|
||||
- **Device Platform** ESP32
|
||||
- **Manufacturer** [unsigned.io](https://unsigned.io)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### LilyGO LoRa32 v2.1
|
||||
|
||||
- **Transceiver IC** Semtech SX1276 or SX1278
|
||||
- **Device Platform** ESP32
|
||||
- **Manufacturer** [LilyGO](https://lilygo.cn)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### LilyGO LoRa32 v2.0
|
||||
|
||||
- **Transceiver IC** Semtech SX1276 or SX1278
|
||||
- **Device Platform** ESP32
|
||||
- **Manufacturer** [LilyGO](https://lilygo.cn)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### LilyGO LoRa32 v1.0
|
||||
|
||||
- **Transceiver IC** Semtech SX1276 or SX1278
|
||||
- **Device Platform** ESP32
|
||||
- **Manufacturer** [LilyGO](https://lilygo.cn)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### LilyGO T-Deck
|
||||
|
||||
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||
- **Device Platform** ESP32
|
||||
- **Manufacturer** [LilyGO](https://lilygo.cn)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### LilyGO T-Echo
|
||||
|
||||
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||
- **Device Platform** nRF52
|
||||
- **Manufacturer** [LilyGO](https://lilygo.cn)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### Heltec T114
|
||||
|
||||
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||
- **Device Platform** nRF52
|
||||
- **Manufacturer** [Heltec Automation](https://heltec.org)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### Heltec LoRa32 v4.0
|
||||
|
||||
- **Transceiver IC** Semtech SX1262
|
||||
- **Device Platform** ESP32
|
||||
- **Manufacturer** [Heltec Automation](https://heltec.org)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### Heltec LoRa32 v3.0
|
||||
|
||||
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||
- **Device Platform** ESP32
|
||||
- **Manufacturer** [Heltec Automation](https://heltec.org)
|
||||
|
||||
---
|
||||

|
||||
|
||||
#### Heltec LoRa32 v2.0
|
||||
|
||||
- **Transceiver IC** Semtech SX1276 or SX1278
|
||||
- **Device Platform** ESP32
|
||||
- **Manufacturer** [Heltec Automation](https://heltec.org)
|
||||
|
||||
---
|
||||
|
||||
<a id="rnode-installation"></a>
|
||||
|
||||
### Installation
|
||||
|
||||
Once you have obtained compatible boards, you can install the [RNode Firmware](https://github.com/markqvist/RNode_Firmware)
|
||||
using the [RNode Configuration Utility](https://github.com/markqvist/rnodeconfigutil).
|
||||
If you have installed Reticulum on your system, the `rnodeconf` program will already be
|
||||
available. If not, make sure that `Python3` and `pip` is installed on your system, and
|
||||
then install Reticulum with with `pip`:
|
||||
|
||||
```default
|
||||
pip install rns
|
||||
```
|
||||
|
||||
Once installation has completed, it is time to start installing the firmware on your
|
||||
devices. Run `rnodeconf` in auto-install mode like so:
|
||||
|
||||
```default
|
||||
rnodeconf --autoinstall
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
<a id="rnode-usage"></a>
|
||||
|
||||
### Usage with Reticulum
|
||||
|
||||
When the devices have been installed and provisioned, you can use them with Reticulum
|
||||
by adding the [relevant interface section](interfaces.md#interfaces-rnode) to the configuration
|
||||
file of Reticulum. In the configuraion you can specify all interface parameters,
|
||||
such as serial port and on-air parameters.
|
||||
|
||||
## WiFi-based Hardware
|
||||
|
||||
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 [AutoInterface](interfaces.md#interfaces-auto) in Reticulum.
|
||||
Most devices will behave like this by default, or allow it via configuration options.
|
||||
|
||||
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.
|
||||
|
||||
Below is a list of example WiFi (and similar) radios that work well for high capacity
|
||||
Reticulum links over long distances:
|
||||
|
||||
- [Ubiquiti airMAX radios](https://store.ui.com/collections/operator-airmax-devices)
|
||||
- [Ubiquiti LTU radios](https://store.ui.com/collections/operator-ltu)
|
||||
- [MikroTik radios](https://mikrotik.com/products/group/wireless-systems)
|
||||
|
||||
This list is by no means exhaustive, and only serves as a few examples of radio hardware
|
||||
that is relatively cheap while providing long range and high capacity for Reticulum
|
||||
networks. As in all other cases, it is also possible for Reticulum to co-exist with IP
|
||||
networks running concurrently on such devices.
|
||||
|
||||
## Ethernet-based Hardware
|
||||
|
||||
Reticulum can run over any kind of hardware that can provide a switched Ethernet-based
|
||||
medium. This means that anything from a plain Ethernet switch, to fiber-optic systems,
|
||||
to data radios with Ethernet interfaces can be used by Reticulum.
|
||||
|
||||
The Ethernet medium does not need to have any IP infrastructure such as DHCP servers
|
||||
or routing set up, but in case such infrastructure does exist, Reticulum will simply
|
||||
co-exist with.
|
||||
|
||||
To use Reticulum over Ethernet-based mediums, it is generally enough to use the included
|
||||
[AutoInterface](interfaces.md#interfaces-auto). This interface also works over any kind of
|
||||
virtual networking adapter, such as `tun` and `tap` devices in Linux.
|
||||
|
||||
## Serial Lines & Devices
|
||||
|
||||
Using Reticulum over any kind of raw serial line is also possible with the
|
||||
[SerialInterface](interfaces.md#interfaces-serial). This interface type is also useful for
|
||||
using Reticulum over communications hardware that provides a serial port interface.
|
||||
|
||||
## Packet Radio Modems
|
||||
|
||||
Any packet radio modem that provides a standard KISS interface over USB, serial or TCP
|
||||
can be used with Reticulum. This includes virtual software modems such as
|
||||
[FreeDV TNC](https://github.com/xssfox/freedv-tnc) and [Dire Wolf](https://github.com/wb2osz/direwolf).
|
||||
Reference in New Issue
Block a user