An HPSDR application for Linux
linHPSDR is specifically written for Linux. It is written in C using the GTK+ 3 toolkit and uses the version of WDSP that has been ported to Linux. It was originally based on piHPSDR but has had many enhancements to support multiple receivers. Some of the enhancements may be ported back to piHPSDR.
Both Protocol 1 and Protocol 2 are supported with up to 7 receivers depending on the HPSDR compatible radio being used. Note that when using Protocol 1 all the receivers will run at the same sample rate but when using Protocol2 they may be at different sample rates.
Each receiver has it's own window that can be moved and resized. The decision to use separate windows for each receiver rather than using a Multiple Document Interface was for better support of multiple displays.
Audio input and output can be from/to the radio or can be from/to a local sound card interface using PulseAudio. An additional advantage of using PulseAudio is that pseudo devices can be defined that can then be used to connect linHPSDR to other applications such as WSJT-X, FLDIGI, QSSTV and FreeDV without having to use sound cards and cables. Each receiver also supports CAT commands over TCP/IP.
Transmit is also supported. One of the receivers is assigned as the one that defines the Frequency and Mode of the transmitter. The selected receiver can be changed by the user.
When first started the application will try to discover all the HPSDR compatible radios connected to the network and list them in the window. Each entry in the list will show the device type, the protocol, the protocol version, the IP address of the device,the MAC address of the device, the interface it was found on and it's status.
Starting a radio
To start a radio select the required device and click on the Start Radio button. Two windows will be displayed. The first will have the panadapter display and frequency for transmitting and the second window will be a receiver.
When first started there will be one receiver (Rx-0) created. By default this will use ADC-0 and ANT-1. Additional receivers can be added using the Add Receiver button. The button will be grayed out when the maximum receivers have been created.