Skip to content

8cH9azbsFifZ/ghpsdr3-alex

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

This is a modification of the excellent Software Defined Radio software by John Melton.  The original sources are in an svn repo revision 1999. See:

http://openhpsdr.org/wiki/index.php?title=Ghpsdr3

The changes are in trunk/src/: 

softrock     - added an IF offset of 9khz (ala PSDR-IQ).  Works with all softrocks.
dspserver    - added IF offset of 9khz.  More robust audio and spectrum transfers.
server       - hpsdr protocol with full control of sdr-widget/Mobo/SR.  Only for sdr-widget.
receiver     - Makefile modified to compile in x86_64, changed local-audio to direct alsa output, changed portaudio to use callback.
               To run under Ubuntu with pulseaudio:  $ ./ghpsdr --local-audio 1 --audio-device pulse
QtRadio      - added dialog to store server ip addresses.  Fixed high cpu util bug.  Implemented 16 bit PCM audio.  			See below for codec2 encoding and decoding.  Implemented a separate high priority thread for
		Audio with improved sound quality.

There are four branches, master, new-qt, audio-thread and aconf.

The master branch uses the 'old' QtMultimedia directory structure which will build in older distributions such as Ubuntu 10.04.  The new-qt and other branches use the QtMobility diectory structure which will be used in the upcoming new version of Qt.  Ubuntu 11.04 or later has this new QtMobility structure.

The QtRadio audio quality is vastly improved with the audio codes running in a separate, high priority thread from the main GUI thread.  This has been implemented in the master, audio-thread and aconf branches.

Building the software
=====================

If you are new to this, use the aconf branch to build all the following software:  softrock, dspserver and QtRadio.

$ cd ghpsdr3-alex
$ git checkout aconf
$ autoreconf -i
$ ./configure
$ make all
$ sudo make install

Then the 3 programs will be installed in /usr/local/bin.

Note you will need some dev packages to be installed for using Qt (used by QtRadio), audio devices and USB, including:

libqt4-opengl-dev
glutg3-dev
libportaudio19-dev
libusb-dev
libpulse-dev

If you prefer to use qmake-qt4 for building QtRadio, you can use the audio-thread branch.

Running the software
====================

To run the softrock server (defaults to using pulse for IQ input.  So 
use pulse chooser to set the default pulse source to the IQ sound 
card).  You also need to run pulse in network mode.  Use Pulseaudio Device Chooser
to set up network access by checking the various option boxes.

$ softrock --si570 --iq --samplerate 48000|96000|192000

(If you find your I/Q is reversed, use --qi instead of -iq

To run the dspserver: 

$ dspserver 

Then you can run QtRadio to connect to the dspserver that is running. 

For sdr-widget user only
========================
As an alternative to softrock server, you can use the modified 
"server", which has been customized to connect to the sdr-widget using 
the hpsdr protocol.  You need to setup sdr-widget for the hpsdr 
protocol (with the WidgetControl.py tool), and then run server: 

cd ~/ghpsdr3-alex/trunk/bin 
./server --si570 --receivers 1 --samplerate 48000|96000|192000

After that, you start dspserver (to connect to this server) and 
QtRadio etc. 


QtRadio with codec2 low bit rate audio encoding and decoding
============================================================
We are adding a low bit rate audio codec called codec 2 to QtRadio/dspserver.  You need
to download and build the codec2 library.  See:

http://www.rowetel.com/blog/?page_id=452

$ svn co https://freetel.svn.sourceforge.net/svnroot/freetel/codec2
$ cd codec2
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig

Compiling with clang instead of default gcc
===========================================
If using aconf branch:

$ ./configure CC=clang CXX=clang

For other branches I have modified the Makefile of server, softrock and dspserver to use clang if you do:

$ make CC=clang

Otherwise it will use the default gcc

The one big advantage of clang over gcc is the more meaningful error/warning messages and other
options to help with debugging.



About

Modifications of John Melton's ghpsdr3

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 57.8%
  • C++ 32.9%
  • Java 4.6%
  • SuperCollider 2.9%
  • Python 0.7%
  • Objective-C 0.6%
  • Other 0.5%