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