markqvist / rnodeconfigutil

MIT License
25 stars 11 forks source link

RNode Configuration Utility

Please beware!

This rnodeconf package is outdated! The rnodeconf utility has been moved into the rns package, and the rnodeconf program in this package will no longer be maintained.

Please uninstall the rnodeconf package, and use rnodeconf from the rns package instead:

pip uninstall rnodeconf rns
pip install rns --upgrade

The updated rnodeconf source code can now be found directly in the Reticulum Repository

Introduction

Configure, update, flash, backup and install your RNode (homebrew or official) with this handy utility.

RNode is a flexible LoRa-based transceiver, and this tool allows you to install and configure RNodes built on a variety of different platforms and boards. With this tool you can configure and update existing RNodes, or make your own RNodes from supported boards and modules.

Supported Devices

Currently the RNode Configuration Utility supports:

You can use the included autoinstaller to automatically install and provision the RNode firmware on any supported board.

Installation

The easiest way to install the configuration utility is with pip:

# If you don't already have pip installed
sudo apt install python3-pip

# Install rnodeconf included in the rns package with pip
pip3 install rns

# Run rnodeconf
rnodeconf --help

Usage Overview

RNode can operate in two modes, host-controlled (default) and TNC mode:

For a complete description of RNodes capabilities, documentation and more, please refer to the RNode repository.

usage: rnodeconf [-h] [-i] [-a] [-u] [--nocheck] [-N] [-T] [--freq Hz] [--bw Hz] [--txp dBm] [--sf factor] [--cr rate] [-b] [-d] [--eepromwipe] [--version]
                 [port]

RNode Configuration and firmware utility. This program allows you to change various settings and startup modes of RNode. It can also install, flash and
update the firmware on supported devices.

positional arguments:
  port               serial port where RNode is attached

options:
  -h, --help         show this help message and exit
  -i, --info         Show device info
  -a, --autoinstall  Automatic installation on various supported devices
  -u, --update       Update firmware to the latest version
  --nocheck          Don't check for firmware updates online, use existing local files if possible
  -N, --normal       Switch device to normal mode
  -T, --tnc          Switch device to TNC mode
  --freq Hz          Frequency in Hz for TNC mode
  --bw Hz            Bandwidth in Hz for TNC mode
  --txp dBm          TX power in dBm for TNC mode
  --sf factor        Spreading factor for TNC mode (7 - 12)
  --cr rate          Coding rate for TNC mode (5 - 8)
  -b, --backup       Backup EEPROM to file
  -d, --dump         Dump EEPROM to console
  --eepromwipe       Unlock and wipe EEPROM
  --version          Print program version and exit

Command Examples

Show device info

Print info like serial number, hardware revision, model and firmware version.

rnodeconf /dev/ttyUSB0 -i

Update the firmware

Grab the latest precompiled firmware from the RNode Firmware repository and flash it to the device.

rnodeconf /dev/ttyUSB0 -u

Start the autoinstaller

Start the autoinstallation guide for turning a compatible device into an RNode.

rnodeconf --autoinstall

Set RNode to TNC mode

If you just specify the -T option, the utility will ask you for the necessary parameters.

rnodeconf /dev/ttyUSB0 -T

You can also specify all the options on the command line.

rnodeconf /dev/ttyuUSB0 -T --freq 868000000 --bw 125000 --txp 2 --sf 7 --cr 5

Set RNode to host-controlled mode

Use the -N option to set the device to host-controlled mode.

rnodeconf /dev/ttyUSB0 -N