Merge pull request #54 from thetechprepper/rigcontrol/bg2fx-fx4cr

Merge rigcontrol/bg2fx-fx4cr to release/r5
This commit is contained in:
thetechprepper
2025-09-26 14:54:09 -07:00
committed by GitHub
4 changed files with 77 additions and 4 deletions
@@ -0,0 +1,23 @@
# Author : Gaston Gonzalez
# Date : 18 September 2025
# Purpose : udev rules for the FX-4CR by BG2FX
#
# Preconditions:
# 1. FX-4CR connected via USB cable
#
# Postconditions:
# 1. /dev/et-cat created
# 2. rigctld is started
# 3. /dev/et-audio created
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ENV{ET_DEVICE}=="", \
ACTION=="add", \
ENV{ET_DEVICE}="FX-4CR", ENV{ET_SUBDEVICE}="CAT", GROUP="dialout", MODE="0660", SYMLINK+="et-cat", \
RUN+="/usr/bin/systemctl start rigctld"
# PROGRAM="/opt/emcomm-tools/sbin/udev-tester.sh digirig-mobile", \
SUBSYSTEM=="sound", ATTRS{idVendor}=="4c4a", ATTRS{idProduct}=="4155", \
ACTION=="add", \
ENV{ET_DEVICE}="FX-4CR", \
ATTR{id}="ET_AUDIO", \
ENV{ET_SUBDEVICE}="AUDIO", GROUP="audio", MODE="0660", SYMLINK+="et-audio"
+15 -2
View File
@@ -2,14 +2,14 @@
#
# Author : Gaston Gonzalez
# Date : 31 October 2024
# Updated : 13 September 2025
# Updated : 26 September 2025
# Purpose : Configures ET audio device with sane defaults
#
# Preconditions
# 1. Supported audio interface is connected and properly detected
#
# Postconditions
# 1. ASLA settings set on ET audio device
# 1. ALSA settings set on ET audio device
usage() {
echo "usage: $(basename $0) <command>"
@@ -97,6 +97,19 @@ update-config () {
et-log "Applied amixer settings for ${ET_DEVICE_NAME}"
;;
"FX-4CR")
# Unmute the PCM and set the volume to 21% to get the full output power. This value is
# dependent on the settings defined for the FX-4CR in the et-radio notes.
amixer -q -c ${AUDIO_CARD} sset 'PCM' 31% unmute
# Set "L/R Capture" to 55%. Adjust if you can't decode received audio.
amixer -q -c ${AUDIO_CARD} sset 'Mic' 67% unmute
# Disable Auto Gain Control
amixer -q -c ${AUDIO_CARD} sset 'Auto Gain Control' mute
et-log "Applied amixer settings for ${ET_DEVICE_NAME}"
;;
*)
et-log "No ALSA configuration specified for this ET_DEVICE."
;;
@@ -0,0 +1,28 @@
{
"id": "bg2fx-fx4cr",
"vendor": "BG2FX",
"model": "FX-4CR",
"rigctrl": {
"id": "2031",
"baud": "115200",
"ptt": "RIG",
"conf": "data_bits=8,serial_handshake=None,stop_bits=1,rts_state=OFF",
"pttOnly": "false"
},
"notes": [
"Short press [PWR], then rotate AF knob until POW = 5.0",
"Toggle [SSB] button until both USB and DIG appear",
"Short press [M. V] until VFOA is displayed",
"Long press [MENU], rotate AF to BLUETOOTH, rotate TUNE and set to 0",
"Set radio volume to 50",
"Set mic gain to 50",
"Set alsamixer PCM to 21",
"Set alsamixer Mic to 55",
"Set alsamixer AGC to mm"
],
"fieldNotes": [
"Tested with FX-4CR firmware version: 1.7.3 (2025/09/01)",
"You must force the RTS control line to low for audio output to work with the PTT",
"This is handled with rts_state=OFF using the --set-conf argument of rigctld"
]
}
@@ -2,13 +2,16 @@
#
# Author : Gaston Gonzalez
# Date : 9 October 2024
# Updated : 31 May 2025
# Updated : 26 September 2025
# Purpose : Wrapper startup/shutdown script around systemd/rigctld
ET_HOME=/opt/emcomm-tools
ACTIVE_RADIO="${ET_HOME}/conf/radios.d/active-radio.json"
CAT_DEVICE=/dev/et-cat
# Additional configuration to pass to rigctld
SET_CONF=""
do_full_auto() {
et-log "Found ET_DEVICE='${ET_DEVICE}'"
@@ -95,8 +98,14 @@ start() {
exit 0
fi
# Handle optional configuration settings
CONF=$(jq -e -r '.rigctrl.conf' "${ET_HOME}/conf/radios.d/active-radio.json")
if [[ $? -eq 0 ]]; then
SET_CONF="--set-conf=${CONF}"
fi
# Generate command
CMD="rigctld -m ${ID} -r ${CAT_DEVICE} -s ${BAUD} -P ${PTT} "
CMD="rigctld -m ${ID} -r ${CAT_DEVICE} -s ${BAUD} -P ${PTT} ${SET_CONF}"
et-log "Starting rigctld with: ${CMD}"
$CMD
}