ScotMesh RNS Network
Flashing tools
What you need to flash a board, for computers that cannot reach the internet. ESP32 boards are flashed with esptool, nRF52 boards (RAK4631, T-Echo, T114, SenseCAP P1) with adafruit-nrfutil, and rnodeconf sets the board up afterwards. See How to flash for the steps.
Not included: USB serial drivers. Most boards need none, but some need the CP210x (Silicon Labs) or CH340 (WCH) driver on Windows and older macOS; get it while you are online. On Linux you may need to be in the dialout group (uucp on Arch): sudo usermod -aG dialout $USER, then log out and in again.
Python route (recommended for Linux and macOS)
Small downloads. Each zip unpacks into one shared folder called wheels, so get the ones you need, unzip them in the same place and install everything with one command. Needs Python 3.10 or newer.
adafruit-nrfutil and its helpers (click, ecdsa, pyserial, six). Linux and macOS.
Contains: adafruit_nrfutil 0.5.3.post16 (Nordic Semicondictor proprietary license), click 8.1.8 (BSD License), ecdsa 0.19.2 (MIT), pyserial 3.5 (BSD), six 1.17.0 (MIT)
SHA-256: 99544079e6b4a0e7a73e8a4b3cd76cb733ea2ca0de1eca1dabb8626738d70af2
Checked: installed offline and run on Linux x86_64, Python 3.12 (2026-09-11).
pyserial, for the esptool.py inside every ESP32 firmware zip. Any OS.
Contains: pyserial 3.5 (BSD)
SHA-256: f7b557894a9fb18558d948e8716369b35e181d7cd23cb3e6e6e1382e1e366182
Checked: installed offline and run on Linux x86_64, Python 3.12 (2026-09-11).
rnodeconf (from rnspure, Reticulum without compiled parts) plus pyserial and cryptography, which rnodeconf also needs. Linux x86_64 and 64-bit ARM.
Contains: cffi 2.1.1 (MIT-0), cryptography 50.0.1 (Apache-2.0 OR BSD-3-Clause), pycparser 3.0 (BSD-3-Clause), pyserial 3.5 (BSD), rnspure 1.5.4 (Reticulum License)
SHA-256: b71bf9317c39ae571bab639860779c6f2828835d20e3ec35f18ca8880a7c8382
Checked: installed offline and run on Linux x86_64, Python 3.12 (2026-09-11).
The same for macOS 14 or newer, Apple silicon and Intel.
Contains: cffi 2.1.1 (MIT-0), cryptography 48.0.0 (Apache-2.0 OR BSD-3-Clause), pycparser 3.0 (BSD-3-Clause), pyserial 3.5 (BSD), rnspure 1.5.4 (Reticulum License)
SHA-256: 65b7ef177f96869dca89ceed05cee5205a579935d9c1909e88d889d608bf03f3
Checked: built for this platform; not test-installed here (no such machine on the node).
The same for 64-bit Windows.
Contains: cffi 2.1.1 (MIT-0), cryptography 50.0.1 (Apache-2.0 OR BSD-3-Clause), pycparser 3.0 (BSD-3-Clause), pyserial 3.5 (BSD), rnspure 1.5.4 (Reticulum License)
SHA-256: fe5d8578e9c5bf79c6fd1805fddd3c346f996083a31ef2f1c8331ed29073f276
Checked: built for this platform; not test-installed here (no such machine on the node).
Install, Linux and macOS:
python3 -m zipfile -e python-wheels-pyserial-3.5.zip .
python3 -m zipfile -e python-wheels-rnodeconf-rnspure-1.5.4-linux.zip .
python3 -m zipfile -e python-wheels-adafruit-nrfutil-0.5.3.post16.zip .
python3 -m venv ~/rnode-tools
~/rnode-tools/bin/pip install --no-index --find-links wheels
rnspure pyserial cryptography adafruit-nrfutil
source ~/rnode-tools/bin/activate
rnodeconf --version
(On a Mac use the -macos rnodeconf zip.) After activate, rnodeconf, adafruit-nrfutil and python esptool.py all work. Open a new terminal later? Run the source line again.
If python3 -m venv fails on Debian or Ubuntu (python3-venv is not installed), you can still run esptool.py, because pyserial is pure Python:
python3 -m zipfile -e wheels/pyserial-3.5-py2.py3-none-any.whl ~/pylib
PYTHONPATH=~/pylib python3 esptool.py version
Windows with Python: unzip the pyserial and -windows rnodeconf zips into one folder, then in Command Prompt:
py -m venv %USERPROFILE%\rnode-tools
%USERPROFILE%\rnode-tools\Scripts\pip install --no-index --find-links wheels rnspure pyserial cryptography
%USERPROFILE%\rnode-tools\Scripts\activate.bat
No Python: standalone programs
Bigger downloads that run on their own. esptool comes from Espressif (version 4.12.0, GPL-2.0-or-later); adafruit-nrfutil from Adafruit (version 0.5.3.post17, Nordic Semiconductor licence, listed as proprietary on PyPI). Both are unchanged copies of the files on their GitHub release pages.
esptool (ESP32 boards)
Windows, 64-bit esptool-v4.12.0-windows-amd64.zip 50.7 MB
SHA-256: 42fddc5e6a05716868ad77fb43acbf53be041f97abed87ff850df1dc88140889 (GitHub release digest)
Program inside: esptool-windows-amd64/esptool.exe
macOS, Apple silicon (M1 and later) esptool-v4.12.0-macos-arm64.tar.gz 48.0 MB
SHA-256: b3ec710bcae20e93eaa18af4c50084feda8bdbbfd0b5d165b956a29f7c6ff8c3 (GitHub release digest)
Program inside: esptool-macos-arm64/esptool
macOS, Intel esptool-v4.12.0-macos-amd64.tar.gz 52.1 MB
SHA-256: c884e37652ee7057ae905eadd108383b608cda8bc5ab03369156802cdf1128df (GitHub release digest)
Program inside: esptool-macos-amd64/esptool
Linux, 64-bit PC esptool-v4.12.0-linux-amd64.tar.gz 62.6 MB
SHA-256: fd92bfde850baa20c4090457b317c767df22878600a567237b092f9b151a5161 (GitHub release digest)
Program inside: esptool-linux-amd64/esptool
Linux, 64-bit ARM (Raspberry Pi OS 64-bit) esptool-v4.12.0-linux-aarch64.tar.gz 63.1 MB
SHA-256: 33499dd910187ea94cfb908851bcf8212a6a06dd9271f6f2109e5fb80f243a42 (GitHub release digest)
Program inside: esptool-linux-aarch64/esptool
Unpack on Linux or macOS with tar -xzf and the file name; on Windows with tar -xf in Command Prompt, or right-click and Extract All. The commands on each board page run it from the folder next to the firmware folder.
On a Mac, if it will not open, run: xattr -dr com.apple.quarantine followed by the esptool folder.
adafruit-nrfutil (nRF52 boards)
Windows adafruit-nrfutil--0.5.3.post17-win.zip 7.6 MB
SHA-256: 62bdfc4ed862ada253c34617f14a0eef11086f2d3a2f1811c6f1dadf14a94ac7 (computed here (GitHub publishes none))
Program inside: adafruit-nrfutil.exe
macOS adafruit-nrfutil--0.5.3.post17-macos.zip 7.3 MB
SHA-256: 4164e20269037809cef0126e837560b0e8b3850a679f84161241521840aad0d6 (computed here (GitHub publishes none))
Program inside: adafruit-nrfutil
The macOS build is from 2021 and made for Intel Macs; Apple silicon runs it through Rosetta. On Linux, use the Python wheelhouse above.
rnodeconf without Python?
There is no standalone rnodeconf. On Windows without Python you can flash with esptool.exe or adafruit-nrfutil.exe, but the set-up step needs rnodeconf: install Python, use the web flasher once you are online, or ask someone with rnodeconf to do the set-up.