ghpsdr3-alex / QtRadio / HPSDR Page

The HPSDR working group has produced a great set of hardware, and there is quite a bit of very nice software available for it.

The ghpsdr project, which in its most recent incarnation is known as ghpsdr3-alex, uses a remote-server topology, so that the receiver and user can be separated in space, and connected only by the internet.

I have just started playing with the ghpsdr3-alex software, and I put together on this page a few hints aimed at newbies like myself who are just getting started with this.  They are a supplement to and NOT a replacement for the excellent instructions on the web at the URL listed below.

Here are my hints to get Hermes working for receive using ghpsdr3 and QtRadio on Ubuntu 12.04:

The main ghpsdr3 page is at:

You will want to bookmark it and refer to it often.

For this project you will want to use the following ghpsdr3-alex project components (all of which are contained in the ghpsdr3-alex git distribution):

 hpsdr-server: this communicates with and controls Hermes
this is the first process you will start, by typing:
hpsdr-server --metis --samplerate 192000
note that both here and below where you see -- there are TWO hyphens, not one.

dspserver: this processes the data from hpsdr-server and communicates with the receiver client
this is started second, by typing:
dspserver --hpsdr --lo 0 --nocorrectiq

QtRadio: this is the radio client / Graphical User Interface
this is started last, by typing:

Installing the software:

The most recent set of instructions is at:
Follow the instructions on that page, with possible clarifications or modifications as will be noted below.

Make sure that you install all of the prerequisites as listed on the URL noted above.  Cutting and pasting from that page to your terminal window may prevent your missing one or two of them.

When installing Qt5, I used the "Qt libraries 5.0.0 for Linux 32 bit (411 MB)"

My downloaded Qt5 file is therefore
so to install Qt5 after doing the chmod as indicated on the instruction page I type
sudo ./

Because I installed the 32 bit version of Qt5, I changed the line described under "Setting the path to qt5" to:
$ export PATH=/opt/Qt5.0.0/5.0.0/gcc/bin:/opt/Qt5.0.0/Tools/QtCreator/bin:$PATH

I also added to the end of my home/w3sz/.profile file the following line so that this path is always present:
export PATH=/opt/Qt5.0.0/5.0.0/gcc/bin:/opt/Qt5.0.0/Tools/QtCreator/bin:$PATH

If Qt5 has installed with no problems, then when you type qmake -v you should see something like:
$ qmake -v
QMake version 3.0
Using Qt version 5.0.0 in /opt/Qt5.0.0/5.0.0/gcc/lib

Under the heading "Setting QtCreator to use the qt5 libraries", my instructions changed to:
Navigate to /opt/Qt5.0.0/5.0.0/gcc/bin
because I am using 32 and not 64 bit Qt5.

I then built QtRadio by typing sudo qtcreator and doing the following:

Note that when I start QtCreator, I get a terminal error that doesn't cause any problems:
Qt at-spi: error getting the accessibility dbus address:  "Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken." Accessibility DBus not found. Falling back to session bus.

Once QtCreator comes up, Click on File > Open File or Project and move to your ghpsdr3-alex directory and click on

Then click on Build > Build All

If QtRadio doesn't build and you get a complaint about QtCreator not being able to find the softrock directories, then modify your file as follows:


TEMPLATE = subdirs

softrock.subdir = trunk/src/softrock
softrock.makefile = Makefile

SUBDIRS += qtradio softrock


TEMPLATE = subdirs

#softrock.subdir = trunk/src/softrock
#softrock.makefile = Makefile

SUBDIRS += qtradio # softrock

Note the addition of "#" in 3 places.


Once QtRadio has built successfully, you can run it by clicking on the green Run arrow on the lower left corner of the window, or by clicking Build > Run or you can close down QtCreator and just type QtRadio. 

Once QtRadio is built, you don't need to mess with QtCreator unless you are rebuilding after making changes in the source.

 Then to start the system, as noted at the top of this text, you need to sequentially start hpsdr-server, dspserver, and QtRadio:

hpsdr-server: this communicates with and controls Hermes
this is started first, by typing:
hpsdr-server --metis --samplerate 192000
note that both here and below where you see -- there are TWO hyphens, not one.

dspserver: this processes the data from hpsdr-server and communicates with the receiver client
this is started next, by typing:
dspserver --hpsdr --lo 0 --nocorrectiq

QtRadio: this is the radio client / Graphical User Interface
this is started last, by typing:

You can put this all in a bash script to start all three programs with one command.  That will save some typing.  I named my bash script qtstart and I put it in my home directory.  That way, when I open a terminal window I only need to type ./qtstart to get everything going.  Don't forget to make the file executable.  In Ubuntu that is easy to do from the Files application by right-clicking on the file and going to Properties > Permissions and checking the box "Allow executing file as program",  or you can do chmod  a=rwx qtstart from the terminal.

My file qtstart looks like this:

hpsdr-server --metis --samplerate 192000 &
sleep 1
dspserver --hpsdr --lo 0 --nocorrectiq &
sleep 1


The Operation of QtRadio is described at:

When you start QtRadio go to Receiver > Configure and do the following:

Under the Server tab, type in the IP address of your server and click Add Host.
I use when I am operating QtRadio on the Ubuntu 12.04 server machine.
I use when I am accessing the Ubuntu server using QtRadio running on my Windows XP Computer.

 Then click Receiver > Connect and you should be in business.

If you want to transmit with this software, you need change settings in your QtRadio instances and also in the dspserver configuration file. 

The changes that need to be made to the QtRadio settings are as follows:
Click on Receiver > Configure > Transmit  and then on line 1 type in the IP address of your server, and the username and password that you add to dspserver.conf (see below). 
For me, if I made the entries in dspserver.conf noted below, these entries would be:           w3sz      mypasswd            for the linux machine's QtRadio, and   w3sz      mypasswd            for the Windows XP machine's QtRadio
Then click Save.

Then click Allow Transmit and if desired Allow Transmit out of band and click Save. Then click Close

To make the changes to the dspserver configuration file, go to the file dspserver.conf which will be in your home directory on the computer where dspserver resides. Mine is at /home/w3sz/dspserver.conf

Once there, change tx from "no" to "yes".
Add a line that defines your username and password for the tx function.  I added the line w3sz="mypasswd". 
Add your username to the txrules group.  I added my call to txrules1_members.
Add the desired transmit rules to the list of rules.  I added/changed some listings to txrules1:  
("*",14.0,14.350), # mode, StartFreq Mhz, EndFreq Mhz

When I transmit using Metis/Penelope/Mercury, I get the expected carrier power output in the "Tune" position.
When I transmit using Hermes, everything looks like it is working properly but I only get a very weak signal out in the "Tune" position.
A quick check using PowerSDR confirms that the transmitter in Hermes is working fine and puts out the expected power.

Good luck and have fun!!


Copyright 1997-2012 COPYRIGHT Roger Rehr W3SZ. All Rights Reserved

I am nerdier than 100% of all people.  Are you a nerd? Click here to find out!

Brought to you by the folks at W3SZ