SXceiver

Full duplex SDR transceiver for Raspberry Pi

Installing and using Quisk with SXceiver

This guide assumes you have followed the getting started guide and installed the SoapySX module already.

Install Quisk:

sudo apt-get -y install libfftw3-dev libasound2-dev portaudio19-dev libpulse-dev python3-dev libpython3-dev python3-wxgtk4.0 python3-usb python3-serial python3-setuptools
cd
git clone "https://github.com/jimahlstrom/quisk.git"
cd quisk

# Quisk has some weird logic (a bug?) in its transmit sample rate selection,
# so apply a small patch to fix it:
git apply << EOF
diff --git a/configure.py b/configure.py
index fa631f2..29d3a5d 100644
--- a/configure.py
+++ b/configure.py
@@ -3401,7 +3401,6 @@ or "automatic" for automatic gain control. The "detailed" or "automatic" may not
     help_text = help_text[0:-2] + '.'
     if rates:
       rate = radio_dict.get(name, '')
-      rates = ('48', '50', '96', '100', '192')
       txt, cb, btn = self.AddTextComboHelp(self.col, self.name_text[name], rate, rates, help_text, True, border=self.border)
       cb.handler = self.OnChange
       cb.quisk_data_name = name
EOF

make

Start Quisk:

cd ~/quisk
python3 quisk.py

Click the "Config" button. Go to tab "Radios". Open the "Add a new radio with" menu and choose "SoapySDR". Name it "SXceiver". A tab "SXceiver" should appear. Open it and start from the tab "Hardware". Click "Change.." next to the "Device" field. Select "driver=sx, label=sx". Configure it like this:

Go to tab "Sound". Select the sound device you will use for your speaker and microphone. Make sure Quisk is not trying to use SX1255 as its sound device.

To transmit any voice mode, you will, of course, need a microphone. Raspberry Pi does not have a microphone connector, so you will need a USB sound card or a USB headset with a microphone. Another option is to connect audio remotely over network.

Go to tab "Bands". Select the 70cm band and uncheck every other band. Set frequency limits according to your license and local amateur radio regulations.

Click the "WFall" button to get back to the waterfall view.

Remote use

If you use Quisk remotely over SSH X forwarding or VNC from another Linux machine, you can try sending audio over Pulseaudio. This has been tested on a desktop PC running Ubuntu 22.04 but other distributions with Pulseaudio should work as well.

Run this on the machine from which you connect to your Raspberry Pi (not on the Raspberry Pi itself):

pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1

While connecting to your Raspberry Pi by SSH, add a port forward for the Pulseaudio port 4713:

ssh -XC -R 4713:localhost:4713 your_username@address_of_your_raspberry_pi

Start Quisk on your Raspberry Pi with the following commands:

cd ~/quisk
PULSE_SERVER=localhost python3 quisk.py

Go to "Config" -> "SXceiver" -> "Sound". Choose "pulse:default" as the "Radio Sound Output" and "Microphone Input" devices. Your sound configuration should now look similar to this:

Radio Sound Output and Microphone Input Sound Devices: pulse:default