Changing CAT control settings for different TRX or TRX connection types in every program is annoying.
Thanks to rigctld from Hamlib the CAT connection can be unified.
Here is an example for connecting the IC-705 via USB and network.

Config for rigctld#

You can connect the IC-705 either via USB or WiFi.

USB connection#

A systemd user service can automatically start rigctld upon USB connection with an IC-705.

Add one file with udev rules to create aliases for CAT control interfaces:

  • /etc/udev/rules.d/65-ic-705.rules
KERNEL=="ttyACM[0-9]*", SUBSYSTEM=="tty", ATTRS{product}=="IC-705", ENV{PROD}="IC-705"
ENV{PROD}=="IC-705", SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="00", SYMLINK+="ic-705-rig"
ENV{PROD}=="IC-705", SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="02", SYMLINK+="ic-705-ptt"

Place two files in ~/.config/systemd/user

  • ~/.config/systemd/user/dev-ic705.target
[Unit]
Description=Icom IC-705 is connected
BindsTo=dev-ic\x2d705\x2drig.device
After=dev-ic\x2d705\x2drig.device
Wants=rigctl-ic705.service

[Install]
WantedBy=dev-ic\x2d705\x2drig.device
  • ~/.config/systemd/user/rigctl-ic705.service
[Unit]
Description=Run rigctld for Icom IC-705 when connected, route audio to fromTRX and toTRX
Requires=dev-ic705.target pipewire.service
After=dev-ic705.target pipewire.service

[Service]
Type=simple
Restart=on-failure
ExecStartPre=/usr/bin/pw-link toTRX:monitor_FL alsa_output.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo:playback_FL
ExecStartPre=/usr/bin/pw-link toTRX:monitor_FR alsa_output.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo:playback_FR
ExecStartPre=/usr/bin/pw-link alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo:capture_FL fromTRX:playback_FL
ExecStartPre=/usr/bin/pw-link alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo:capture_FR fromTRX:playback_FR
ExecStart=/usr/bin/rigctld --model=3085 --rig-file=/dev/ic-705-rig --ptt-file=/dev/ic-705-ptt --civaddr=0xa4

[Install]
WantedBy=dev-ic705.target

Reload udev and systemd, install systemd service and target files (may differ for your system) with (execute udevadm as root or with sudo, the following lines as normal user)

# udevadm control --reload
$ systemctl --user daemon-reload
$ systemctl --user enable --now rigctl-ic705.service
$ systemctl --user enable --now dev-ic705.target

or logout/login or reboot.

The systemd service will also automatically route audio to virtual devices described at Virtual audio devices for amateur radio with pipewire. The service will be stopped, when the USB cable is disconnected.

Network connection with wfview#

Connect wfview to the IC-705 over WiFi. Enable rigctld emulation:

  • Settings -> External Control -> “ Enable RigCtld”
  • Settings -> External Control -> “Port”: “4532”
  • Settings -> Radio Settings -> “Modulation Input”: “LAN”
  • Settings -> Radio Settings -> “Data Mod Input”: “LAN”

Don’t forget to press “Save Settings”!

Software config#

The radio connection can be the same because both rigctld and wfview provide a network server.

Example config for WSJT-X

Connect Audio described at Virtual audio devices for amateur radio with pipewire. After that set up the radio connection:

  • File -> Settings -> Radio -> “Rig”: “Hamlib NET rigctl”
  • File -> Settings -> Radio -> “CAT Control: Network Server”: “localhost:4532”
  • File -> Settings -> Radio -> “PTT Method”: “CAT”
  • File -> Settings -> Radio -> “Transmit Audio Source”: “Front/Mic”
  • File -> Settings -> Radio -> “Mode”: “Data/Pkt”
  • File -> Settings -> Radio -> “Split Operation”: “Fake It”