diff --git a/ISSUES.md b/ISSUES.md
new file mode 100644
index 0000000..8640df1
--- /dev/null
+++ b/ISSUES.md
@@ -0,0 +1,10 @@
+# ISSUES
+
+## OPEN ISSUES
+
+* [ ] None
+
+## RESOLVED ISSUES
+
+* Mercury modem will not key the PTT via rigctld for non-VOX devices (i.e. DigiRig Lite)
+ * 07/17/26 - Fixed. Use the "-R 2" (network mode) option to force a rig model that works with rigctld
diff --git a/overlay/etc/skel/.reticulum/config.blueprint.mercury-only-node b/overlay/etc/skel/.reticulum/config.blueprint.mercury-only-node
index 763a0ef..a339e60 100644
--- a/overlay/etc/skel/.reticulum/config.blueprint.mercury-only-node
+++ b/overlay/etc/skel/.reticulum/config.blueprint.mercury-only-node
@@ -88,12 +88,12 @@
type = TCPClientInterface
mode = roaming
interface_enabled = {{ET_RETICULUM_INTERFACE_MERCURY_ENABLED}}
- kiss_framing = yes
+ kiss_framing = yes
target_host = 127.0.0.1
- target_port = 8100
+ target_port = 8100
# Index Mode Payload Rate (bps)
# 0 DATAC1 980
# 9 DATAC17 1410 (not yet supported)
# 10 QAM16C2 3100 (not yet supported)
- bitrate = 980
+ bitrate = 980
diff --git a/overlay/etc/skel/.reticulum/config.blueprint.permanent-transport-node b/overlay/etc/skel/.reticulum/config.blueprint.permanent-transport-node
index 36d6a51..c1889da 100644
--- a/overlay/etc/skel/.reticulum/config.blueprint.permanent-transport-node
+++ b/overlay/etc/skel/.reticulum/config.blueprint.permanent-transport-node
@@ -1,6 +1,6 @@
# Author : Gaston Gonzalez
# Date : 7 June 2026
-# Updated : 16 July 2026
+# Updated : 6 August 2026
# Blueprint : Permament Transport Node
# Purpose : This configuration is a blueprint for running a
# node that runs as a 24x7 transport node with
@@ -83,12 +83,12 @@
[[Default Interface]]
type = AutoInterface
- mode = ap
+ mode = internal
enabled = yes
[[Packet Radio AX.25 KISS]]
type = AX25KISSInterface
- mode = ap
+ mode = internal
enabled = {{ET_RETICULUM_INTERFACE_AX25KISS_ENABLED}}
callsign = {{ET_CALLSIGN}}
@@ -99,7 +99,7 @@
[[RNode LoRa Interface]]
type = RNodeInterface
- mode = ap
+ mode = internal
enabled = {{ET_RETICULUM_INTERFACE_RNODE_ENABLED}}
port = /dev/et-lora
@@ -107,11 +107,9 @@
# 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
#
@@ -132,25 +130,20 @@
# 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}}
- # EmComm Tools is designed to be an offline platform, so the
- # TCP Client interface is left as an example that user must
- # configure.
-# [[TCP Client]]
-# type = TCPClientInterface
-# enabled = yes
-# mode = boundary
-# # Set the IP address to the remote TCP Server
-# target_host = IP_ADDRESS_HERE
-# target_port = 4242
-# # If the remote TCP Server uses IFAC (Interface Access Codes),
-# # set the network_name and passphrase.
-# #network_name = NETWORK_NAME_HERE
-# #passphrase = PASSPHRASE_HERE
+ # EmComm Tools is designed to be an offline platform, so the
+ # TCP Client interface is left as an example that user must
+ # configure.
+ [[TCP Client to TTP Gateway]]
+ type = TCPClientInterface
+ mode = boundary
+ enabled = yes
+ target_host = rns.thetechprepper.com
+ target_port = 11312
+ network_name = ttp_internal
+ passphrase = resistance202606
diff --git a/overlay/etc/skel/.reticulum/config.blueprint.rnode-only-node b/overlay/etc/skel/.reticulum/config.blueprint.rnode-only-node
index 58cbc72..323ae99 100644
--- a/overlay/etc/skel/.reticulum/config.blueprint.rnode-only-node
+++ b/overlay/etc/skel/.reticulum/config.blueprint.rnode-only-node
@@ -1,8 +1,8 @@
# Author : Gaston Gonzalez
# Date : 7 June 2026
-# Updated : 16 July 2026
+# Updated : 6 August 2026
# Blueprint : RNode-Only Node; transport disabled.
-# Purpose : This confguration is a blueprint for an RNode-only node.
+# Purpose : This confguration is a blueprint for an RNode-only node.
[reticulum]
@@ -93,11 +93,9 @@
# 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
#
@@ -118,10 +116,8 @@
# 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/opt/emcomm-tools/bin/et-mercury b/overlay/opt/emcomm-tools/bin/et-mercury
index 6b21dd6..7f625a4 100755
--- a/overlay/opt/emcomm-tools/bin/et-mercury
+++ b/overlay/opt/emcomm-tools/bin/et-mercury
@@ -2,6 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 16 July 2026
+# Updated : 17 July 2026
# Purpose : Wrapper script for starting Mercury with PnP support
#
# Preconditions:
@@ -75,7 +76,12 @@ start() {
ALSA_DEVICE=$(et-system-info et-audio-card)
- CMD="mercury -m ${MODE_INDEX} -i plughw:${ALSA_DEVICE} -o plughw:${ALSA_DEVICE} -A 127.0.0.1:4532"
+ # Mercury implemented support for rigctld oddly. Even though the rigctld IP and port are
+ # specified with the -A option, the code will not trigger the PTT unless a rig model
+ # is specified. We can specify model '2' (network mode) with the -R option to ensure that
+ # the PTT conditional code blocks for hamlib are called. This explains why earlier tests
+ # only worked with the DigiRig Lite as it has an internal VOX circuit.
+ CMD="mercury -m ${MODE_INDEX} -i plughw:${ALSA_DEVICE} -o plughw:${ALSA_DEVICE} -A 127.0.0.1:4532 -R 2"
et-log "Starting Mercury in mode ${MODE} with: '${CMD}'"
echo
diff --git a/overlay/opt/emcomm-tools/bin/et-reticulum b/overlay/opt/emcomm-tools/bin/et-reticulum
index d40cf41..7aa2e28 100755
--- a/overlay/opt/emcomm-tools/bin/et-reticulum
+++ b/overlay/opt/emcomm-tools/bin/et-reticulum
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 12 May 2026
-# Updated : 16 July 2026
+# Updated : 21 July 2026
# Purpose : Wrapper script for starting Reticulum with PnP support
#
# Preconditions:
@@ -15,7 +15,8 @@
# The current version of modem73 does not alway exit.
cleanup() {
- pkill -9 modem73 2>/dev/null || true
+ pkill -9 modem73 2>/dev/null
+ pkill -9 mercury 2>/dev/null
}
trap cleanup EXIT INT TERM
@@ -118,20 +119,22 @@ if [[ $? -eq 0 ]]; then
#modem_options+=("mercury-fast" "Fast (Low Reliability) [QAM16C2]")
fi
- modem_choice=$(dialog \
- --clear \
- --title "Reticulum Configuration" \
- --menu "Select a modem" \
- 13 70 10 \
- "${modem_options[@]}" \
- 2>&1 >/dev/tty)
- EXIT_STATUS=$?
+ if [[ ${#modem_options[@]} -gt 0 ]]; then
+ modem_choice=$(dialog \
+ --clear \
+ --title "Reticulum Configuration" \
+ --menu "Select a modem" \
+ 13 70 10 \
+ "${modem_options[@]}" \
+ 2>&1 >/dev/tty)
+ EXIT_STATUS=$?
- tput sgr0 && clear
+ tput sgr0 && clear
- if [[ ${EXIT_STATUS} -ne 0 ]]; then
- et-log "No modem selected"
- exit ${EXIT_STATUS}
+ if [[ ${EXIT_STATUS} -ne 0 ]]; then
+ et-log "No modem selected"
+ exit ${EXIT_STATUS}
+ fi
fi
dialog \
@@ -187,9 +190,6 @@ if [[ $? -eq 0 ]]; then
et-log "Starting mercury in fast mode"
start_and_wait_for_service et-service-mercury-fast
;;
- *)
- et-log "No modem specified"
- ;;
esac
fi
fi
diff --git a/overlay/opt/emcomm-tools/conf/template.d/bbs/bpq32.simple.cfg b/overlay/opt/emcomm-tools/conf/template.d/bbs/bpq32.simple.cfg
index cf29908..aef8d19 100644
--- a/overlay/opt/emcomm-tools/conf/template.d/bbs/bpq32.simple.cfg
+++ b/overlay/opt/emcomm-tools/conf/template.d/bbs/bpq32.simple.cfg
@@ -67,7 +67,7 @@ PORT
MAXFRAME=2 ; Max outstanding frames (1 thru 7)
FRACK=5000 ; Level 2 timout in milliseconds
RESPTIME=1000 ; Level 2 delayed ack timer in milliseconds
- RETRIES=100 ; Level 2 maximum retry value
+ RETRIES=10 ; Level 2 maximum retry value
PACLEN=128 ; Default max packet length for this port
UNPROTO=FBB ; BTEXT broadcast addrs format:
; DEST[,digi1[,digi2]]
diff --git a/overlay/usr/share/ubiquity-slideshow/slides/et-mode.html b/overlay/usr/share/ubiquity-slideshow/slides/et-mode.html
new file mode 100644
index 0000000..80adcde
--- /dev/null
+++ b/overlay/usr/share/ubiquity-slideshow/slides/et-mode.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
et-mode supports zero-configuration when running your favorite radio applications and modes.
+
+
+ - Open a terminal.
+ - Run "et-mode" and select an application
+
+
+
No configuration. Just operate!
+
+
For JS8Call or fldigi, just click the desktop icon.
+
+
+
+
+
+

+
+
diff --git a/overlay/usr/share/ubiquity-slideshow/slides/et-radio.html b/overlay/usr/share/ubiquity-slideshow/slides/et-radio.html
new file mode 100644
index 0000000..c867d3f
--- /dev/null
+++ b/overlay/usr/share/ubiquity-slideshow/slides/et-radio.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
et-radio supports plug-and-play configuration for several radios.
+
+
+ - Open a terminal.
+ - Run "et-radio" and select your radio.
+ - Plug in your radio.
+
+
+
No configuration needed for any radio-based application!
+
+
+
+
+
+

+
+
diff --git a/overlay/usr/share/ubiquity-slideshow/slides/et-reticulum.html b/overlay/usr/share/ubiquity-slideshow/slides/et-reticulum.html
new file mode 100644
index 0000000..45f7c97
--- /dev/null
+++ b/overlay/usr/share/ubiquity-slideshow/slides/et-reticulum.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
et-reticulum provides plug-and-play support for running the Reticulum Network Stack (RNS) with zero configuration. It includes sample "blueprint" configurations for quickly starting a Reticulum node that can communicate over LoRa, packet radio, modem73, the Mercury HF modem, Wi-Fi, Ethernet, and even the Internet—if you must.
+
+
+
The Heltec v4 is the officially supported LoRa device for EmComm Tools.
+
+
+
+
+

+
+
diff --git a/overlay/usr/share/ubiquity-slideshow/slides/index.html b/overlay/usr/share/ubiquity-slideshow/slides/index.html
index 24e1917..a176b2a 100644
--- a/overlay/usr/share/ubiquity-slideshow/slides/index.html
+++ b/overlay/usr/share/ubiquity-slideshow/slides/index.html
@@ -29,9 +29,12 @@
diff --git a/overlay/usr/share/ubiquity-slideshow/slides/screenshots/et-mode.png b/overlay/usr/share/ubiquity-slideshow/slides/screenshots/et-mode.png
new file mode 100644
index 0000000..837f3cc
Binary files /dev/null and b/overlay/usr/share/ubiquity-slideshow/slides/screenshots/et-mode.png differ
diff --git a/overlay/usr/share/ubiquity-slideshow/slides/screenshots/et-radio.png b/overlay/usr/share/ubiquity-slideshow/slides/screenshots/et-radio.png
new file mode 100644
index 0000000..cb0fbf0
Binary files /dev/null and b/overlay/usr/share/ubiquity-slideshow/slides/screenshots/et-radio.png differ
diff --git a/overlay/usr/share/ubiquity-slideshow/slides/screenshots/et-reticulum.png b/overlay/usr/share/ubiquity-slideshow/slides/screenshots/et-reticulum.png
new file mode 100644
index 0000000..2000dd9
Binary files /dev/null and b/overlay/usr/share/ubiquity-slideshow/slides/screenshots/et-reticulum.png differ
diff --git a/scripts/install-offline-lib.json b/scripts/install-offline-lib.json
index d892494..7692cd5 100644
--- a/scripts/install-offline-lib.json
+++ b/scripts/install-offline-lib.json
@@ -55,7 +55,7 @@
"dir": "reticulum"
},
{
- "url": "https://github.com/markqvist/Reticulum/releases/download/1.3.4/Reticulum.Manual.pdf",
+ "url": "https://github.com/markqvist/Reticulum/releases/download/1.3.9/Reticulum.Manual.pdf",
"file": "Reticulum.Manual.pdf",
"dir": "reticulum"
},
diff --git a/scripts/install-reticulum.sh b/scripts/install-reticulum.sh
index 5c50c13..0b6025a 100755
--- a/scripts/install-reticulum.sh
+++ b/scripts/install-reticulum.sh
@@ -1,10 +1,10 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 13 February 2026
-# Updated : 13 July 2026
+# Updated : 19 July 2026
# Purpose : Install Reticulum
-RNS_VERSION=1.3.8
+RNS_VERSION=1.3.9
et-log "Installing Python3..."
apt install \