Setup ExpertSDR for Digital Modes on Linux
I recently got a SunSDR2 DX and it took me some time to get it up and running with all the other software that I use for ham radio. Maybe the following article saves you some hours.
ExpertSDR comes with its own network-based CAT protocol named TCI. It has the great advantage that all changes are pushed to the clients, so there is no polling necessary and the clients are updated immediately. This is a great leap forward. On the downside, the list of programs that can use TCI is rather short at the moment. Alternatively ExpertSDR offers an emulation of the Kennwood TS-480, which can be used via a virtual COM port. This works, but it is not very easy to setup, as you need to compile a kernel module (e.g. the tty0tty null modem emulator).
As Hamlib is currently the biggest common denominator on Linux, I wrote a small programm that acts as a Hamlib Net protocol server (model number 2) for the clients and connects to an ExpertSDR instance via TCI. The TCI-Hamlib adapter can be started as a service at boot time, it automatically connects to ExpertSDR when it is available. Currently the adapter supports all Hamlib commands that are used by FLDigi, CQRLog, and WSJT-X.
- Download the lastest version of the TCI-Hamlib adapter
- Install the deb package using
sudo apt install ./tciadapter_<version>_amd64.deb
/etc/systemd/service/tciadapter.serviceto your needs
- Enable the tciadapter systemd service for automatic start:
sudo systemctl enable tciadapter.service
- Start the tciadapter systemd service:
sudo systemctl start tciadapter.service
To transfer audio data between a digimode program and ExpertSDR, you need to setup two ALSA loopback devices. Such a virtual audio device connects its input (subdevice 1) to its output (subdevice 0).
ALSA Loopback Devices
To configure the loopback devices, create the file
/etc/modprobe.d/alsa-loopback.conf with the following content:
options snd-aloop index=1,2 enable=1,1 pcm_substreams=2,2 id=dev1rx,dev2tx
To start the loopback devices, you need to call
sudo modprobe snd-aloop. To make this happen automatically at boot type, add the line
sudo echo snd-aloop >> /etc/modules
Always start ExpertSDR first, before the digimode program is started!
Only one digimode program can run at the same time. If you want to run them in parallel, you need additional loopback devices and the second VAC channel in ExpertSDR.