From daf3ac362f9f9617fadb566039f219b876019b9c Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Mon, 1 Dec 2025 07:15:14 -0700 Subject: [PATCH 1/5] Renamed et-find-winlink to et-winlink-find (easier for tab completion); Updated et-voacap to support VARA HF modes: 500, 2300, 2750 hz bandwidth --- .../share/emcomm-tools/voacap/et-voacap.sh | 16 ++++++++++++++-- .../bin/{et-find-winlink => et-winlink-find} | 4 +--- 2 files changed, 15 insertions(+), 5 deletions(-) rename overlay/opt/emcomm-tools/bin/{et-find-winlink => et-winlink-find} (96%) diff --git a/overlay/etc/skel/.local/share/emcomm-tools/voacap/et-voacap.sh b/overlay/etc/skel/.local/share/emcomm-tools/voacap/et-voacap.sh index d49a5f1..9aada65 100755 --- a/overlay/etc/skel/.local/share/emcomm-tools/voacap/et-voacap.sh +++ b/overlay/etc/skel/.local/share/emcomm-tools/voacap/et-voacap.sh @@ -2,7 +2,7 @@ # # Author : Gaston Gonzalez # Date : 23 May 2023 -# Updated : 12 November 2025 +# Updated : 1 December 2025 # Purpose : Offline HF prediction using voacapl set -e set -o pipefail @@ -144,7 +144,7 @@ usage() { echo echo "Other options (required):" echo " -p POWER Output power [5|10|20|50|100|500|1500]" - echo " -m MODE Mode [am|ardop|cw|js8|ssb]" + echo " -m MODE Mode [am|ardop|cw|js8|ssb|vara-500|vara-2300|vara-2750]" echo exit 1 @@ -213,6 +213,18 @@ case "${MODE,,}" in am) MD="49.0" ;; + vara-500) + # VARA 500 Hz bandwidth (narrow) + MD="15.0" + ;; + vara-2300) + # VARA 2300 Hz bandwidth (standard) + MD="20.0" + ;; + vara-2750) + # VARA 2750 Hz bandwidth (tactical) + MD="22.0" + ;; *) echo -e "${RED}Unknown mode: ${MODE}${NC}" >&2 usage diff --git a/overlay/opt/emcomm-tools/bin/et-find-winlink b/overlay/opt/emcomm-tools/bin/et-winlink-find similarity index 96% rename from overlay/opt/emcomm-tools/bin/et-find-winlink rename to overlay/opt/emcomm-tools/bin/et-winlink-find index fd5bd7a..74291b0 100755 --- a/overlay/opt/emcomm-tools/bin/et-find-winlink +++ b/overlay/opt/emcomm-tools/bin/et-winlink-find @@ -2,11 +2,9 @@ # # Author : Gaston # Date : 30 November 2025 +# Updated : 1 December 2025 # Purpose : Finds Winlink RMS stations by channel near a given location -set -e set -o pipefail -trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG -trap 'echo -e "${RED}\"${last_command}\" command failed with exit code $?.${NC}"' ERR source /opt/emcomm-tools/bin/et-common From f4945aafe5a6a865823739836f9e1d6056d75fca Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Mon, 1 Dec 2025 07:28:37 -0700 Subject: [PATCH 2/5] et-winlink-data - Renamed et-data-winlink to et-winlink-data; fixed script to include VARA 500 Hz Winlink RMS channels --- .../bin/{et-data-winlink => et-winlink-data} | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) rename overlay/opt/emcomm-tools/bin/{et-data-winlink => et-winlink-data} (89%) diff --git a/overlay/opt/emcomm-tools/bin/et-data-winlink b/overlay/opt/emcomm-tools/bin/et-winlink-data similarity index 89% rename from overlay/opt/emcomm-tools/bin/et-data-winlink rename to overlay/opt/emcomm-tools/bin/et-winlink-data index 987f5b3..4cb416e 100755 --- a/overlay/opt/emcomm-tools/bin/et-data-winlink +++ b/overlay/opt/emcomm-tools/bin/et-winlink-data @@ -1,7 +1,7 @@ #!/bin/bash # Author : Gaston Gonzalez # Date : 29 November 2025 -# Updated : 30 November 2025 +# Updated : 1 December 2025 # Purpose : Generates a denormalized Winlink RMS channel data set from # Pat Winlink's JSON definition. Each line represents a single # Winlink RMS channel. This generated file is the source for @@ -17,16 +17,17 @@ RMS_DATA_OUT_FILE=/opt/emcomm-tools-api/data/rmslist.csv # 0 Packet 1200 # 41 ARDOP 500 # 43 ARDOP 2000 -# 50 VARA HF +# 50 VARA 2300 (HF standard) # 51 VARA FM -# 52 VARA FM Wide -# 54 VARA HF 2750 +# 52 VARA FM WIDE +# 53 VARA 500 (HF narrow) +# 54 VARA 2750 (HF tactical) cat ${RMS_SRC_JSON_FILE} | jq -r ' .Gateways[] | . as $gw | $gw.GatewayChannels[] - | select(.Mode | IN(0, 41, 43, 50, 51, 52, 54)) + | select(.Mode | IN(0, 41, 43, 50, 51, 52, 53, 54)) | [ $gw.BaseCallsign, $gw.Callsign, From e839b98f30537246326d23958de0be583ef00fc2 Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Mon, 1 Dec 2025 07:44:37 -0700 Subject: [PATCH 3/5] et-winlink-data Updated script to perform an automated rebuild of the Winlink index --- overlay/opt/emcomm-tools/bin/et-winlink-data | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/overlay/opt/emcomm-tools/bin/et-winlink-data b/overlay/opt/emcomm-tools/bin/et-winlink-data index 4cb416e..a85f5b6 100755 --- a/overlay/opt/emcomm-tools/bin/et-winlink-data +++ b/overlay/opt/emcomm-tools/bin/et-winlink-data @@ -10,6 +10,7 @@ source /opt/emcomm-tools/bin/et-common RMS_SRC_JSON_FILE=~/.local/share/pat/rmslist.json RMS_DATA_OUT_FILE=/opt/emcomm-tools-api/data/rmslist.csv +RMS_INDEX_DIR=/opt/emcomm-tools-api/index/rmslist # Return a denormalized list of RMS stations filtered by the supported # Winlink modes in EmComm Tools Community. @@ -42,11 +43,13 @@ cat ${RMS_SRC_JSON_FILE} | jq -r ' LINES=$(wc -l $RMS_DATA_OUT_FILE | awk '{print $1}') echo "Created RMS dataset: ${RMS_DATA_OUT_FILE} with ${LINES} records." -echo -echo -e "${YELLOW}To update the Winlink index, perform the following as your normal user:${NC}" -echo -echo -e "${RED}DO NOT RUN THESE AS ROOT!${NC}" -echo -echo -e "${YELLOW}1. Stop the ETC API: ${WHITE}systemctl --user stop et-service-et-api${NC}" -echo -e "${YELLOW}2. Remove the old index: ${WHITE}rm -rf /opt/emcomm-tools-api/index/rmslist${NC}" -echo -e "${YELLOW}3. Start the ETC API: ${WHITE}systemctl --user start et-service-et-api${NC}" + +echo "Stopping ET API..." +systemctl --user stop et-service-et-api + +sleep 3 +echo "Removing old Winlink index..." +[[ -e ${RMS_INDEX_DIR} ]] && rm -rf /opt/emcomm-tools-api/index/rmslist + +# ET API will rebuild the Winlink index on startup. It takes a few seconds. +start_and_wait_for_service et-service-et-api From e017d43ce8f291f4c27bb76daf30fb109eae87d9 Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Mon, 1 Dec 2025 08:09:01 -0700 Subject: [PATCH 4/5] et-predict-app Added version 1.3.0 to build. Includes VARA HF prediction support. --- scripts/install-et-predict.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/install-et-predict.sh b/scripts/install-et-predict.sh index 2ca9790..8b1b7bc 100755 --- a/scripts/install-et-predict.sh +++ b/scripts/install-et-predict.sh @@ -1,6 +1,7 @@ #!/bin/bash # Author : Gaston Gonzalez # Date : 20 November 2025 +# Updated : 1 December 2025 # Purpose : Install et-predict-app set -e trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG @@ -10,7 +11,7 @@ trap 'et-log "\"${last_command}\" command failed with exit code $?."' ERR . ../overlay/opt/emcomm-tools/bin/et-common APP=et-predict-app -VERSION=1.2.0 +VERSION=1.3.0 DOWNLOAD_FILE="${APP}_${VERSION}_amd64.deb" et-log "Installing ${APP} ${VERSION}..." From 0fa7f75bed0b62b6eebe58b8ea0e7a6ec2362d0d Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Mon, 1 Dec 2025 08:25:35 -0700 Subject: [PATCH 5/5] sdr - Added SDR++. Thanks for contribution, William. --- scripts/install-spp.sh | 31 +++++++++++++++++++++++++++++++ scripts/install.sh | 3 ++- tests/test-sdrpp.sh | 7 +++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100755 scripts/install-spp.sh create mode 100755 tests/test-sdrpp.sh diff --git a/scripts/install-spp.sh b/scripts/install-spp.sh new file mode 100755 index 0000000..e0f2d71 --- /dev/null +++ b/scripts/install-spp.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# +# Author : William McKeehan +# Author : Gaston Gonzalez +# Date : 3 September 2025 +# Updated : 1 December 2025 +# Purpose : Install SDR++ +set -e +trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG +trap 'et-log "\"${last_command}\" command failed with exit code $?."' ERR + +. ./env.sh +. ../overlay/opt/emcomm-tools/bin/et-common + +APP=sdrpp +VERSION=nightly +DOWNLOAD_FILE=sdrpp_ubuntu_jammy_amd64.deb + +et-log "Installing ${APP} ${VERSION}..." + +if [[ ! -e ${ET_DIST_DIR}/${DOWNLOAD_FILE} ]]; then + + URL="https://github.com/AlexandreRouma/SDRPlusPlus/releases/download/${VERSION}/${DOWNLOAD_FILE}" + + download_with_retries ${URL} ${DOWNLOAD_FILE} + mv ${DOWNLOAD_FILE} ${ET_DIST_DIR} +fi + +DEBIAN_FRONTEND=noninteractive dpkg -i "${ET_DIST_DIR}/${DOWNLOAD_FILE}" + +apt install -f -y diff --git a/scripts/install.sh b/scripts/install.sh index 082876f..0b2c6b6 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -2,7 +2,7 @@ # # Author : Gaston Gonzalez # Date : 16 March 2024 -# Updated : 12 November 2025 +# Updated : 1 December 2025 # Purpose : Main installer for EmComm Tools Community (ETC) . ./env.sh @@ -73,6 +73,7 @@ exitIfNotRoot # Install SDR tools ./install-sdr-tools.sh ./install-dump1090.sh +./install-spp.sh # Install ETC custom maps ./download-et-maps.sh diff --git a/tests/test-sdrpp.sh b/tests/test-sdrpp.sh new file mode 100755 index 0000000..dd3ec33 --- /dev/null +++ b/tests/test-sdrpp.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# Author : Gaston Gonzalez +# Date : 1 December 2025 +# Purpose : Test SDR++ installation + +OUT=$(which sdrpp) +exit $?