What is Quisk?

Quisk is a Linux based SDR software written a number of years ago. I used to use this software a number of years ago to get a feel for using Linux like Ubunto to run an SDR. There was a lot of learning to use this including the installation of the appropriate drivers. Allow me to walk you through how I installed a Softrock Ensemble SDR in Ubuntu and how I got Quisk running. It was not as easy as I thought.

To get me feet wet into the world of SDR (even though I already owned a Flexradio 3000), I built the Tony Parks Softrock Ensemble II Software Defined Radio. My first installation was on a Windows XP system using the HDSDR Software. I later progressed to use the SDR-Radio server software to allow users on the internet to access my tuner. This software was relatively bullet proof and the installation was pretty simple. I was up and running in no time. One of my goals at that time was to create a web applet for my website so anyone could control the SDR and include the one feature that I was very impressed with, the waterfall display.

At the time, I was searching for a good applet that I can embed in my website or could use with a software application or even on a tablet that was simple to install. I am not a professional programmer but I am not afraid to dive into coding. From what I read back then, there was a lot of activity in the Linux world for the development of SDR applications, including servers and client software. I read quite a bit of the work by John Melton, G0ORX, not only with Linux applications but also his attempt to program an SDR application using the Raspberry Pi Single board computer. That has come. a long way with newer programs like GQRX.

Unfortunately, and I was not the only one thinking the same way, there was a definite lack of good instructions for installing SDR software on a Linux system. I was a newbie tp using Linux and wanted to experiment with running an SDR on Linux. It is for that reason that I created this (now updated) webpage to document my trials and tribulations for getting my Softrock Ensemble II running on Ubuntu and utlimately with Quisk. I documented my work completely. Even when I ran into trouble, I documented the problems with the hope that you can learn from my mistakes and successes.

This article takes a look at installing Quisk on Ubuntu 22.04 LTS, which I understand is the latest version. It is suggested that you install the latest updates for your Ubuntu just to be on the safe side. Let's get started.

Installing the initial software and attempting initial communication with the Softrock Ensemble

One of the first steps that I believe that must be accomplished is to establish basic control of the Softrock. My research found that the first step in order to achieve frequency control and for Ubuntu to recognize the Softrock plugged into a USB port is to download a software program called USBSOFTROCK and to create the proper permissions.

usbsoftrock

usbsoftrock is a simple-to-use program by Andrew Nilsson which accepts convenient command line options (e.g., frequencies in MHz), speaks the DG8SAQ USB protocol, understands the Si570, and can act as a daemon listening over UDP for control messages.

The usbsoftrock sources are available for download in a Google Code repository. Don't download the file just yet.

The usbsoftrock is simple to build and install, so I have read online. The software has dependencies on other software libraries. The dependencies are ncurses and libusb, which, on Ubuntu systems, are provided by the libncurses5-dev and libusb-dev packages, respectively. Note that there is also a libusb-1.0-0-dev package, but it provides a slightly different API, and you'll need the older version for usbsoftrock.

So where do you get the dependencies? The best way to get these dependency libraries installed is using the Synaptic Package Manager. I had to install Synpatic on my version of Ubuntu. It did not come pre-installed. Simplest was to install Synaptic is to open a Terminal and type:

sudo apt-get install synaptic

You may have to reboot the computer after the install. Once rebooted, you can run Synaptic Package Manager. Once the Synaptic Package Manager is open, the quickest way to find the dependencies is to do a Quick Search as shown below:

Note in the picture I performed a search on 'libncurses5-dev'. Once you have found the file, select and mark the package for installation. You can then hit the 'Apply' button to start the installation. The system will then download the package and begin the installation.

Perform the same step for 'libusb-dev'. It is possible when you do the search, you may get multiple packages to select from such as what is shown in the image below. I selected the actual 'libusb-dev' option, not the 'libusb-1.0.0-dev' option.

This exercise shows you how to use the Synaptic Package Manager. There are other package manager tools availabe depending on your Linux OS. To be honest, the simplest ways is to use the 'sudo apt-get install' commands in a terminal window. I'll talk more about 'sudo' shortly. So at a terminal command line, you can run:

sudo apt-get install libncurses5-dev libusb-dev

and get the same results. Your system may ask you for a password before the install takes place.

If everything installed correctly, let's go get the 'usbsoftrock' software from the Google Code Repository. Feel free to click on the link here or the link mentioned above. The webpage will look like this:

I chose the usbsoftrock-1.0.2.tar.gz file for download. In my case, the file was saved in my /home/n8mdp/Downloads file folder. So I can keep track of where all of the SDR files are going, I created a new file folder in my n8mdp folder called 'SDR'. I copied the usbsoftrock-1.0.2.tar.gz into my new SDR file folder. I need to extract this file in order to use it. In the SDR file folder, I right clicked on the .gz file and selected the 'Open with Archive Manager' option as shown below (newer versions of Ubuntu may have a different look but the folder is still the same):

With the usbsoftrock-1.0.2.tar.gz file selected, I hit the Extract button. You will have the chose to create a new file folder if you wish. I chose not to do this and extracted the file in my SDR folder. Once the process is completed, you will see a standard file folder created called 'usbsoftrock-1.0.2'. If you have gotten this far, then so far so good! Feel free to explore the contents of the file folder. What you will not find is any kind of executable file that you can immediately run. The next step is to 'make' the application.

Open the README file in the usbsoftrock-1.0.2 file folder. As you read through the file, you will notice a section on 'Prerequisites'. We have already installed the 'libusb' and 'ncurses' libraries and dependencies. This is why we did this ahead of downloading the usbsoftrock-1.0.2.tar.gz file. However, you will see an additional prerequisite called 'gcc'. 'gcc' is the GNU C compiler. To verify that you have this installed, open the Synaptic Package Manager and perform a quick search for 'gcc'. Hopefully, you will get the screen that I am showing below. If the software is installed, the square to the left of the package name should be shaded green. This means the package is already installed and you don't have to do anything else. If the box is not shaded green, select this package and install it the same way you installed the two previous libraries. Close Synaptic when you are done.

The procedure to create the application is as follows:

./configure

make

sudo make install

We will use the sudo command for the last step in a Terminal windows so that we have super user priveledges to create and install the application.

You will need to open a Terminal window. The Terminal application is located in the Applications menu -> System Tools -> Terminal. I found that the fastest way to open the Terminal application is the shortcut: Ctrl + Alt + T. Pretty simple and quick. Open the Terminal application. You should see a screen like this:

In order to create the application, we have to change to the file folder directory for the SDR file folder. In your Terminal window, type: cd SDR/usbsoftrock-1.0.2 . The result should look like the screen below:

If you type 'dir' at the prompt, the Terminal application will display all of the files in the SDR folder as shown below:

Now that you are in the SDR file folder, it is time to perform the above procedure.

Step 1: At the prompt, type: ./configure

Hopefully, you should not get any errors. I didn't!

Step 2: At the prompt, type: make

Again, if you don't get any errors, so far so good.

Step 3: At the prompt, type: sudo make install

If you don't get any errors, congratulations. If you do, make sure that you have all the prerequisites installed, especially GCC. When you run the sudo make install step, you should get a screen that looks like the following:

You can verify that the executable file was created by going back to your main screen, open your Home folder from the desktop, select your 'file system', select the 'usr' folder, then the 'local' folder, then the 'bin' folder. You should see an executable file called 'usbsoftrock'. If you see this like I show below, you were successful to create the application.

Now that usbsoftrock is installed, there is one last thing you have to do so that Ubuntu recognizes the Softrock board via USB so you can send commands. You have to give non-root users access to the Softrock. You'll want to do this whether you use usbsoftrock or direct access, and whether you use a simple controller or something more sophisticated. This is accomplished via the udevdevice manager. To accomplish this, you will need to create a 'rules' file to give you the permissions. The tricky part about this is that you need to have root permission to write this file since the file needs to be written to the /etc/udev/rules.d folder. For this, you can use the sudo command to create and edit such a file.

Change your path to: /etc/udev/rules.d

The simplest way is to use the 'nano' editor or something similar. I used 'nano' and started the process by typing at the command prompt: sudo nano 99-softrock.rules. This will launch the nano editor where you can now type in the following line:

SUBSYSTEM=="usb", ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", MODE="0666", GROUP="dialout"

Note that case, precise characters, and spacing (it all has to be on one line) are important here. This recipe will allow access to the softrock device to all users who are in the 'dialout' group. If you have a different group that you are using, please type that particular group. The popular recipe flying around the Internet uses MODE="0666", which allows access to all users; take your pick. Save this file.

For the changes to take effect, you will have to reboot the computer. Do that now.

Once the computer is rebooted, we are now ready to try to communicate with the Softrock Ensemble. Plug in the power and the USB cable to your Softrock.

Open a Terminal window (use Ctrl+Alt+T shortcut). At the prompt, type: usbsoftrock status. This command will connect to the Softrock and return status information. If all goes well, you should see the following in the Terminal window:

To prove to myself that I did have connection and the usbsoftrock software was communicating to the hardware, I unplugged the USB cable from the Softrock. Then I typed usbsoftrock status again at the terminal prompt. I immediately began to see message that the software could not open the USB device 'DG8SAQ-I2X'. I reinstalled the USB cable, typed usbsoftrock status, hit enter, and indeed could see that the software was communicating with the hardware.

This completes this first section.

Testing the Softrock Ensemble. Time to see if it really is working

Now that you know that you can communicate with the Softrock, it might be a good idea to see if it is really working and you can pick up signals. Before we attempt this, I would like to provide some background information on using the usbsoftrock software in more detail.

Using usbsoftrock to change the frequency of your radio directly is very easy. Simply issue the command usbsoftrock set freq [frequency], where frequency is in MHz. For example, to set the center frequency to 7.030 MHz so that you can copy PSK31 at 7.035 MHz, you would type:

usbsoftrock set freq 7.030

The Softrock Ensemble uses a Si570 Oscillator. The Si570 is described by its manufacturer, Silicon Labs, as an "ANY-RATE I2C PROGRAMMABLE XO/VCXO." What this means in normal amateur radio language is that the Si570 is a frequency synthesizer, complete on one very small (7mm x 5mm) integrated circuit chip. (That's the any-rate, programmable part of the name.) The XO/VCXO part means that the synthesizer is crystal controlled (XO = crystal oscillator) and that one variant of the chip accepts an analog input voltage that will shift the programmed frequency (voltage controlled crystal oscillator. That version is not used in the kit.) The final perhaps unfamiliar term in the part description is "I2C" which refers to the method by which frequency commands and other data is communicated between the rest of the circuit and the Si570. I2C is a specific serial communications protocol using separate clock and data ports and for the purpose of this review, it isn't necessary to delve further into the specifics of I2C. For our amateur radio activities, the Si570 is used as the local oscillator in a superheterodyne receiver, or it can be the local oscillator in a direct conversion quadrature receiver such as the Softrock.

A detailed datasheet for the Si570 can be downloaded at https://www.silabs.com/products/clocksoscillators/xo/Pages/default.aspx by selecting the Si570/571 in the "Resources" tab. I've extracted the summary description and block diagram below.

Note that while Si570 oscillators are accurate, they are not necessarily precise without some footwork. The reference in a Si570 is a crystal vibrator with a nominal frequency of 114.285 MHz, and all of its output frequencies are computed from this frequency. The actual crystal can vary by many kHz from this nominal frequency, however; my SoftRock Si570 oscillates at 114.211833MHz, a deviation of more than 150kHz! In order to achieve precision, controlling software must use this crystal frequency in its configuration calculations. You can retrieve the frequency at which your Si570's crystal oscillates with the command usbsoftrock calibrate. You can then provide it back to usbsoftrock with the -x argument. To achieve a more precise tuning, the above 7.030MHz example for my SoftRock would be:

usbsoftrock -x 114.211833 set freq 7.030

You may need this crystal frequency for configuring other applications, as well.

Here is a list of options and commands for the usbsoftrock:

./usbsoftrock [OPTION] COMMAND

OPTION is one or more of:

-a
Advanced firmware present i.e. let the firmware calculate registers
-d
Enter a mode that listens for commands via UDP.
-h
PTT status by reading hardware port Mobo only.
-i <address>
I2C address in DECIMAL (DEFAULT = 85 (0x55))
-m <multiplier>
Multiplication factor for frequency (DEFAULT = 4)
-p <port num>
Port to listen for UDP datagrams (DEFAULT = 19004)
-s <startup Frequency MHz>
Factory programmed startup frequency (DEFAULT = 56.32)
-u <serial number>
Serial Number of Device
-v
Verbose output (fairly useful)
-vv
Even more verbose output (debugging)
-x <calibrated xtall freq MHz>
Corrected XTALL frequency of Si570 device calculated
through the use of the calibrate command immediately
after startup.



COMMAND is one of:

calibrate (may require -s option)
getfreq  
getregisters  
interactive  
getptt (-h option for Mobo only)
getkeys (PE0FKO+TF3LJ+Mobo)
ptt {on|off}  
set bpf {on|off} (PE0FKO+TF3LJ+Mobo)
set bpf_addr <band> <filter> (PE0FKO >= 15.12+Mobo)
set bpf_point <crossover> <f in MHz> (PE0FKO+TF3LJ+Mobo)
set lpf {on|off} (TF3LJ+Mobo only)
set lpf_addr <band> <filter> (TF3LJ+Mobo only)
set lpf_point <crossover> <f in MHz> (TF3LJ+Mobo only)
set freq <frequency in MHz>  
set si570_addr <i2c address in decimal>  
set si570_multiplier [band] <decimal factor> (PE0FKO>=15.12+Mobo)
set startup <frequency in MHz> (PE0FKO+TF3LJ+Mobo)
set xtall <frequency in MHz> (PE0FKO+TF3LJ+Mobo)
status  

Examples
Original DG8SAQ Firmware

Turn on softrock, plug in usb-i2c interface. Type:
usbsoftrock calibrate

Or if you have a different startup freq than 56.32. Type:
usbsoftrock -s 40.000 calibrate

It will return something like: fXTALL = 114.182074

Then take the value from that and use the following:
usbsoftrock -x 114.182074 getfreq
usbsoftrock -x 114.182074 setfreq 14.040

By default the program will calculate the Si570 register values locally when setting the frequency. If you specify option -a (advanced firmware) then it will use the set frequency by value command and let the interface calculate the registers. This enables features such as automatic BPF selection and smooth tuning in Fred PE0FKO's firmware.

PE0FKO Usage
Additional Support with v15.10:

set startup freq Sets the frequency of the si570 on startup
set si570_multiplier <decimal factor> Sets the oscillator multiplier value in the attiny firmware.
set xtall freq Set the calibrated oscillator value
set bpf {on|off} Enable or disable the BPF filter. Needs to be disabled for RXTX 6.3 otherwise changing frequency will sometimes key the transmitter (by default).
set bpf_point (index> <freq MHz> Set the crossover frequency for index. 4 BPF means 3 cross over points 0, 1, 2; e.g. the following would set it up as the default for the electronically switched

Now that we have this behind us, let's test the Softrock to tune in a 40 Meter signal. Since we have not yet loaded a true Softrock SDR application program like Quisk, SDR-Shell, or QtRadio, I am going to use a program called HDSDR running on my Windows 7 System. I will use usbsoftrock to control the Softrock Ensemble. I will also take the Softrock audio output and input that into the audio input on my Windows 7 computer. The only thing that matters is the I and Q signals from the Softrock. HDSDR will take the audio input from the Softrock and do its thing!

For my test, I am setting the local oscillator frequency on the softrock to 7.160MHz as follows:
usbsoftrock set freq 7.160

Below is a screen shot of the HDSDR software. Since I do not have control over the Softrock, I manually changed the LO frequency to 7.160 so the spectrum bar would show the same frequency.


This test proved that the Softrock is truly working. If you were also able to get yours working, congratulations.

So what next? It's time to get an SDR application that runs in Ubuntu.

Installing a Ubuntu supported SDR Application program

We're now at a point where we can install Quisk and try to listen and control the Softrock SDR. As I previously mentioned, QUISK is software that can control a Softrock. QUISK rhymes with "brisk", and is QSK plus a few letters to make it easier to pronounce. QUISK was written in Python and C. The source code is included with .gz file so you can change it yourself. It currently runs under Linux using ALSA sound drivers or PortAudio and offers these capabilities:

• Quisk can control the HiQSDR.
• As a receiver it can use the SDR-IQ by RfSpace as a sample source. There are several decimation rates available. The screen shots below were taken using the SDR-IQ. The QUISK receiver will read the sample data, tune it, filter it, demodulate it, and send the audio to the sound card for output to external headphones or speakers.
• As a receiver it can use your soundcard as a sample source. You supply a complex (I/Q) mixer to convert radio spectrum to a low IF, and send that IF to the left and right inputs of the sound card in your computer. The demodulated audio goes to the same soundcard for output.
• Quisk can control SoftRock hardware for both receive and transmit.
The author of Quisk, James Ahlstrom, made some updates not too long ago to improve the installation and configureation of Quisk. It was not very easy in the past but he did a nice job on simplifying the installation and configuration.

To install QUISK, you can use the Synaptic Package Manager to install Or, you can type in a Terminal window:

sudo apt install quisk

Once the software is install, all you have to do is type quisk in the Terminal window.

Upon the start, you should see a screen that looks like the following:


The latest verions of Quisk allows you to configure the Softrock right in the application. Definitely a step up from the older versions. With the screen open, you need to press the Config button to open up the following window:


Select Radios from the top menu row.


I'm not going to go through the entire configuration but here is a screen shot of how my Softrock configuration looked like. Reference the documentation available for further details. If all goes well, you should notice that your radio is listed across the top menu row as shown:


You will also need to configure for your audio. I have a USB Audio Adapter that I puluged into the computer since the compact computer I used does not have a standard stero Line IN, rather a Mic In and Headphone output. When I configured the Softrock audio, this is what my screen looked like:

One thing I forgot to mention is that, depending on the Softrock you use, you may have to update the crystal frequency for your Softrock. You can quickly find out what it is by typing: usbsoftrock status in a terminal window. The result will look like the following:

>

In my case, the Xtall Freq is 114.258768.

It's also important that you make sure you are using the right sound system. I'm not a big fan of internal sound systems. I have a Zotac mini PC that doesn't have a normal Line In Jack, just a Mic In and Speaker Out. Not good for the Softrock as you need a Stereo Line In jack. So I used a USB Sound Card.

But in order for the USB Sound Card to be recognized both by Ubuntu and Quisk, I have to tell the Alsa Mixer what sound card I was using. So from a Terminal window, I typed: alsamixer and hit enter. The following screen was displayed:


I had to hit F6 on the keyboard in order to get a listing of sound cards so I could select the USB sound card.

Once selected, I made my settings including changing the PCM Capt setting to Mixer.



Once that was all completed, and making sure all of my settings in Quisk were correct, I ran the application. I was successful to control the Softrock and heard sound coming from my speakers attached to the USB Sound Card.


You may have to monkey around with some of the configurations to get the audio to work. But hey, that's what learning is all about! Don't give up as you will stumble on what works for you.

To be honest, I'm not a big fan of this software but it is one of the few SDR tools out there the work with the Softrocks in Linux/Ubuntu.

Untitled Document

SDR Topics

WebSDR
Propagation


OpenWebRX


HDSDR


SDR Space


SDR#


GQRX


Quisk


RemoteHams


Global Tuners

Listen to N8MDP's Live WebSDR

Heard of WebSDR? Listen to my 40 and 20 meter SDR using the WebSDR tool. Click on the image below:
WebSDR


Latest Propogation Data
radar

 

Latest DX Spots

radar

 

radar

 


 

 

 

Back to top of page

Untitled Document
|   Home   |    SSTV   |    DSSTV   |    SDR   |    Aviation   |    Projects   |    Weather   |    Logbook    |    Contact   |


© 2024 , Jonathan Tucker N8MDP. All Rights Reserved.
Image by macrovector_official on Freepik