diff --git a/overlay/etc/skel/.reticulum/README.md b/overlay/etc/skel/.reticulum/README.md new file mode 100644 index 0000000..4e0955c --- /dev/null +++ b/overlay/etc/skel/.reticulum/README.md @@ -0,0 +1,43 @@ +# Emcomm Tools Configuration for Reticulum + +EmComms Tools provides plug-and-play support to reduce the barrier to +entry for non-technical users. Reticulum is a very powerful tool for +building user-defined networks. This has the effect of allowing for +users to create sophisticated, end-to-end encrypted networks that can +leverage many different transport mediums. While this is powerful, it +has the potential for introducing complexity for new users. + +This document describes the approach that EmComm Tools takes for +supporting plug-and-play support with near-zero configuration. + +## Blueprint Configuration Files + +EmComm Tools uses a _blueprint_ approach for defining a set of reference +network configurations to help new users get started. + +config.blueprint.permanent-transport-node + +## Replacement Tokens + +Replacement tokens are defined by `{{TOKEN}}` where `TOKEN` is one of +the supported tokens below. + +``` +ET_CALLSIGN +ET_RETICULUM_INTERFACE_AUTO_ENABLED +ET_RETICULUM_INTERFACE_AX25KISS_ENABLED +ET_RETICULUM_INTERFACE_RNODE_BANDWIDTH +ET_RETICULUM_INTERFACE_RNODE_CODINGRATE +ET_RETICULUM_INTERFACE_RNODE_ENABLED +ET_RETICULUM_INTERFACE_RNODE_FREQUENCY +ET_RETICULUM_INTERFACE_RNODE_SPREADINGFACTOR +ET_RETICULUM_INTERFACE_RNODE_TXPOWER +... +``` + +* Valid characters are capitalized letters (`A-Z`) and underscores (`_`). +* Start with the prefix: `ET_`. +* Reticulum specific tokens start with the prefix: `ET_RETICULUM_`. + + + diff --git a/overlay/etc/skel/.reticulum/config b/overlay/etc/skel/.reticulum/config index 4c55d13..e0e6a83 100644 --- a/overlay/etc/skel/.reticulum/config +++ b/overlay/etc/skel/.reticulum/config @@ -115,14 +115,4 @@ [[Default Interface]] type = AutoInterface - enabled = No - - [[Packet Radio AX25 KISS]] - type = AX25KISSInterface enabled = Yes - - callsign = {{ET_CALLSIGN}} - ssid = 1 - - port = /tmp/kisstnc - mtu = 256 diff --git a/overlay/etc/skel/.reticulum/config.blueprint.permanent-transport-node b/overlay/etc/skel/.reticulum/config.blueprint.permanent-transport-node new file mode 100644 index 0000000..d781d0e --- /dev/null +++ b/overlay/etc/skel/.reticulum/config.blueprint.permanent-transport-node @@ -0,0 +1,133 @@ +# Author : Gaston Gonzalez +# Date : 7 June 2026 +# Updated : 7 June 2026 +# Blueprint : Permament Transport Node +# Purpose : This coniguration is a blueprint (i.e. reference +# configuration) for running a 24x7 transport +# Reticulum node with multiple interfaces. + +[reticulum] + + # If you enable Transport, your system will route traffic + # for other peers, pass announces and serve path requests. + # This should only be done for systems that are suited to + # act as transport nodes, ie. if they are stationary and + # always-on. This directive is optional and can be removed + # for brevity. + + enable_transport = True + + + # By default, the first program to launch the Reticulum + # Network Stack will create a shared instance, that other + # programs can communicate with. Only the shared instance + # opens all the configured interfaces directly, and other + # local programs communicate with the shared instance over + # a local socket. This is completely transparent to the + # user, and should generally be turned on. This directive + # is optional and can be removed for brevity. + + share_instance = Yes + + + # If you want to run multiple *different* shared instances + # on the same system, you will need to specify different + # instance names for each. On platforms supporting domain + # sockets, this can be done with the instance_name option: + + instance_name = default + +# You can configure whether Reticulum should discover +# available interfaces from other Transport Instances over +# the network. If this option is enabled, Reticulum will +# collect interface information discovered from the network. + +# discover_interfaces = No + + +# You can configure Reticulum to panic and forcibly close +# if an unrecoverable interface error occurs, such as the +# hardware device for an interface disappearing. This is +# an optional directive, and can be left out for brevity. +# This behaviour is disabled by default. + +# panic_on_interface_error = No + + +# If you're connecting to a large external network, you +# can use one or more external blackhole list to block +# spammy and excessive announces onto your network. This +# funtionality is especially useful if you're hosting public +# entrypoints or gateways. The list source below provides a +# functional example, but better, more timely maintained +# lists probably exist in the community. + +# blackhole_sources = 521c87a83afb8f29e4455e77930b973b + + +[logging] + # Valid log levels are 0 through 7: + # 0: Log only critical information + # 1: Log errors and lower log levels + # 2: Log warnings and lower log levels + # 3: Log notices and lower log levels + # 4: Log info and lower (this is the default) + # 5: Verbose logging + # 6: Debug logging + # 7: Extreme logging + + loglevel = 4 + + +[interfaces] + + [[Default Interface]] + type = AutoInterface + enabled = {{ET_RETICULUM_INTERFACE_AUTO_ENABLED}} + + [[Packet Radio AX.25 KISS]] + type = AX25KISSInterface + enabled = {{ET_RETICULUM_INTERFACE_AX25KISS_ENABLED}} + + callsign = {{ET_CALLSIGN}} + ssid = 1 + + port = /tmp/kisstnc + mtu = 256 + + [[RNode LoRa Interface]] + type = RNodeInterface + mode = ap + enabled = {{ET_RETICULUM_INTERFACE_RNODE_ENABLED}} + + port = /dev/et-lora + + # Set frequency to 915 MHz + frequency = 915000000 + #frequency = {{ET_RETICULUM_INTERFACE_RNODE_FREQUENCY}} + + # Set LoRa bandwidth to 125 KHz + bandwidth = 125000 + #bandwidth = {{ET_RETICULUM_INTERFACE_RNODE_BANDWIDTH}} + + # Set TX power in dBm + # 7 dBm = 5 mW + # 17 dbm = 50 mW + # 20 dbm = 100 mW + # 22 dbm = 158 mW + # 28 dbm = 631 mW + txpower = 22 + #txpower = {{ET_RETICULUM_INTERFACE_RNODE_TXPOWER}} + + # Select spreading factor 8. Valid + # range is 7 through 12, with 7 + # being the fastest and 12 having + # the longest range. + spreadingfactor = 9 + #spreadingfactor = {{ET_RETICULUM_INTERFACE_RNODE_SPREADINGFACTOR}} + + # Select coding rate 5. Valid range + # is 5 throough 8, with 5 being the + # fastest, and 8 the longest range. + codingrate = 5 + #codingrate = {{ET_RETICULUM_INTERFACE_RNODE_CODINGRATE}} diff --git a/overlay/etc/skel/Desktop/offline/crypto/gpg-cheatsheet.md b/overlay/etc/skel/Desktop/offline/crypto/gpg-cheatsheet.md index fd1cfca..667c355 100644 --- a/overlay/etc/skel/Desktop/offline/crypto/gpg-cheatsheet.md +++ b/overlay/etc/skel/Desktop/offline/crypto/gpg-cheatsheet.md @@ -122,7 +122,8 @@ standard that provides strong security and works well for radio use due to smaller key sizes. 1. Create a primary key for signing using ECC. Replace FIRSTNAME, - LASTNAME, and EMAIL (keep the < and > characters). + LASTNAME, and EMAIL. NOTE: You MUST keep `<` and `>` characters around + your EMAIL. For example: `John Doe `. gpg --quick-generate-key "FIRSTNAME LASTNAME " ed25519 sign 0 diff --git a/overlay/opt/emcomm-tools/conf/template.d/reticulum/config.ax25.1200 b/overlay/opt/emcomm-tools/conf/template.d/reticulum/config.ax25.1200 index dc51934..b574109 100644 --- a/overlay/opt/emcomm-tools/conf/template.d/reticulum/config.ax25.1200 +++ b/overlay/opt/emcomm-tools/conf/template.d/reticulum/config.ax25.1200 @@ -126,3 +126,37 @@ port = /tmp/kisstnc mtu = 256 + + [[RNode LoRa Interface]] + type = RNodeInterface + enabled = yes + + # Connect via Wi-Fi + port = tcp://192.168.8.167 + +# # Add PnP support: /dev/et-lora +# port = /dev/ttyACM1 + + + # Set frequency to 915 MHz + frequency = 915000000 + + # Set LoRa bandwidth to 125 KHz + bandwidth = 125000 + + # Set TX power in dBm + # 7 dBm = 5 mW + # 17 dbm = + # 22 dbm = + txpower = 17 + + # Select spreading factor 8. Valid + # range is 7 through 12, with 7 + # being the fastest and 12 having + # the longest range. + spreadingfactor = 9 + + # Select coding rate 5. Valid range + # is 5 throough 8, with 5 being the + # fastest, and 8 the longest range. + codingrate = 5 diff --git a/scripts/install-offline-lib.json b/scripts/install-offline-lib.json index b901f68..444ea6d 100644 --- a/scripts/install-offline-lib.json +++ b/scripts/install-offline-lib.json @@ -9,6 +9,16 @@ "file": "bpq-user-and-sysop-commands.pdf", "dir": "bbs/bpq" }, + { + "url": "https://resource.heltec.cn/download/WiFi_LoRa_32_V3/HTIT-WB32LA_V3.2.pdf", + "file": "HTIT-WB32LA_V3.2.pdf", + "dir": "lora/heltec" + }, + { + "url": "https://resource.heltec.cn/download/WiFi_LoRa_32_V4/datasheet/WiFi_LoRa_32_V4.2.0.pdf", + "file": "WiFi_LoRa_32_V4.2.0.pdf", + "dir": "lora/heltec" + }, { "url": "https://www.icomamerica.com/api/download.php?page_id=171&fl=JTJGdXBsb2FkcyUyRlVTQV9CYW5kX1BsYW4lMkZCYW5kX1BsYW5fTWFwJTJGQW1hdHVlckdyaWRTcXVhcmVNYXBfVVNBJTVCMTMlNUQucGRm", "file": "icom-us-grid.pdf",