From 58c0ca36a5af8f6f584ff62af42da8f14d25267e Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Thu, 9 Oct 2025 06:43:26 -0700 Subject: [PATCH] TX-500MP - Added finer control for defining per radio audio levels that are user configurable. The generic approach for treating all DigiRig devices globally the same was problematic. The new audio.script configuration property is optional --- overlay/opt/emcomm-tools/bin/et-audio | 24 ++++++++++-- .../conf/radios.d/audio/lab599-tx500mp.sh | 38 +++++++++++++++++++ .../conf/radios.d/lab599-tx500mp.json | 3 ++ scripts/install-emcomm-tools.sh | 6 ++- 4 files changed, 67 insertions(+), 4 deletions(-) create mode 100755 overlay/opt/emcomm-tools/conf/radios.d/audio/lab599-tx500mp.sh diff --git a/overlay/opt/emcomm-tools/bin/et-audio b/overlay/opt/emcomm-tools/bin/et-audio index 4aa9062..705f2eb 100755 --- a/overlay/opt/emcomm-tools/bin/et-audio +++ b/overlay/opt/emcomm-tools/bin/et-audio @@ -2,7 +2,7 @@ # # Author : Gaston Gonzalez # Date : 31 October 2024 -# Updated : 5 October 2025 +# Updated : 9 October 2025 # Purpose : Configures ET audio device with sane defaults # # Preconditions @@ -10,6 +10,7 @@ # # Postconditions # 1. ALSA settings set on ET audio device +. /opt/emcomm-tools/bin/et-common usage() { echo "usage: $(basename $0) " @@ -48,10 +49,27 @@ update-config () { et-log "Updating audio device: '${ET_DEVICE_NAME}' (${FULL_AUDIO_DEVICE})' for ALSA PnP configuration." + # Handle audio settings specifically if defined in the radio configuration + AUDIO_INIT_SCRIPT=$(jq -r -e '.audio.script' ${ET_ACTIVE_RADIO_CONF}) + if [[ $? -eq 0 ]]; then + et-log "Executing audio configuration script: ${AUDIO_INIT_SCRIPT}" + + CMD="${AUDIO_INIT_SCRIPT} ${AUDIO_CARD} ${AUDIO_DEVICE}" + et-log "Running command: ${CMD}" + ${CMD} + + if [[ $? -ne 0 ]]; then + et-log "Audio init script ${AUDIO_INIT_SCRIPT} failed. Can't start application." + notify-user "Audio init script failed. Can't start application." + exit 1 + fi + + exit 0 + fi + + # Handle audio generically for most sound card interfaces case ${ET_DEVICE_NAME} in "DIGIRIG_MOBILE") - # TODO: 92% is needed for the TX-500MP. Revisit approach for setting speaker - # out differently across radios definitions. # Unmute Speaker a set volume. Adjust if remote station can't decode you. Your TX controls. amixer -q -c ${AUDIO_CARD} sset Speaker Playback Switch 42% unmute # Unmute Mic diff --git a/overlay/opt/emcomm-tools/conf/radios.d/audio/lab599-tx500mp.sh b/overlay/opt/emcomm-tools/conf/radios.d/audio/lab599-tx500mp.sh new file mode 100755 index 0000000..9922176 --- /dev/null +++ b/overlay/opt/emcomm-tools/conf/radios.d/audio/lab599-tx500mp.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# +# Author : Gaston Gonzalez +# Date : 9 October 2025 +# Purpose : Audio settings specific to the Lab599 TX-500MP +# +# Preconditions +# 1. Supported audio interface is connected and properly detected +# +# Postconditions +# 1. ALSA settings set on ET audio device + +usage() { + echo "usage: $(basename $0) " +} + +if [[ $# -ne 2 ]]; then + usage + exit 1 +fi + +AUDIO_CARD=$1 +ET_DEVICE_NAME=$2 + +# Unmute Speaker and set the volume to 81. Adjust if the remote station +# can't decode you or if there is not output power on TX. +amixer -q -c ${AUDIO_CARD} sset Speaker Playback Switch 92% unmute + +# Unmute Mic +amixer -q -c ${AUDIO_CARD} sset Mic Playback Switch 52% unmute + +# Set "L/R Capture" to 19. Adjust if you can't decode received audio. +amixer -q -c ${AUDIO_CARD} sset Mic Capture Switch 31% unmute + +# Disable Auto Gain Control +amixer -q -c ${AUDIO_CARD} sset 'Auto Gain Control' mute + +et-log "Applied amixer settings for audio card ${AUDIO_CARD} on device ${ET_DEVICE_NAME}" diff --git a/overlay/opt/emcomm-tools/conf/radios.d/lab599-tx500mp.json b/overlay/opt/emcomm-tools/conf/radios.d/lab599-tx500mp.json index 63331ac..773d60e 100644 --- a/overlay/opt/emcomm-tools/conf/radios.d/lab599-tx500mp.json +++ b/overlay/opt/emcomm-tools/conf/radios.d/lab599-tx500mp.json @@ -8,6 +8,9 @@ "ptt": "RTS", "pttOnly": "false" }, + "audio": { + "script": "/opt/emcomm-tools/conf/radios.d/audio/lab599-tx500mp.sh" + }, "notes": [ "1. Set MENU 36 CAT PROTOCOL = TS2000", "2. Set MODE = DIGI", diff --git a/scripts/install-emcomm-tools.sh b/scripts/install-emcomm-tools.sh index 186544a..745ce6a 100755 --- a/scripts/install-emcomm-tools.sh +++ b/scripts/install-emcomm-tools.sh @@ -2,7 +2,7 @@ # # Author : Gaston Gonzalez # Date : 6 October 2024 -# Updated : 1 November 2024 +# Updated : 9 October 2025 # Purpose : Install EmComm Tools applications et-log "Installing EmComm Tools applications..." @@ -18,6 +18,10 @@ chgrp -v -R $ET_GROUP $ET_HOME/conf/radios.d chmod -v 775 $ET_HOME/conf/radios.d chmod -v 664 $ET_HOME/conf/radios.d/*.json +chgrp -v -R $ET_GROUP $ET_HOME/conf/radios.d/audio +chmod -v 775 $ET_HOME/conf/radios.d/audio +chmod -v 664 $ET_HOME/conf/radios.d/audio/*.sh + chgrp -v -R $ET_GROUP $ET_HOME/conf/template.d/packet chmod -v 775 $ET_HOME/conf/template.d/packet chmod -v 664 $ET_HOME/conf/template.d/packet/*.conf