Difference between revisions of "Ghpsdr3-Qt"

From HPSDRwiki
Jump to: navigation, search
(Architecture)
 
(11 intermediate revisions by 2 users not shown)
Line 2: Line 2:
  
 
===C++/Qt version of the ghpsdr3===
 
===C++/Qt version of the ghpsdr3===
[[Image:|thumb|400px|right|Screenshot of the ghpsdr3-Qt GUI on 20 meters. (Click to enlarge)]]
+
 
 +
[[Image:QtHPSDRServer.png |right| QtHPSDRServer program status page. (Click to enlarge)]]
  
 
'''ghpsdr3-Qt''' is a software defined radio server/client or server/dspserver/client format C++/Qt program written specifically for HPSDR by John Melton, G0ORX/N6LYT.  
 
'''ghpsdr3-Qt''' is a software defined radio server/client or server/dspserver/client format C++/Qt program written specifically for HPSDR by John Melton, G0ORX/N6LYT.  
Line 12: Line 13:
 
To follow the development of this code look at John's Blog http://g0orx.blogspot.com/
 
To follow the development of this code look at John's Blog http://g0orx.blogspot.com/
  
 +
[[Image:QtHPSDRServer2.png |right| QtHPSDRServer program configuration page. (Click to enlarge)]]
 
===SVN===
 
===SVN===
 
The software is available from SVN and includes a precompiled executable in the bin directory.  There are now a compiled version of the 32-bit Windows version on the openHPSDR web page, For other platform you will need to compile the code yourself.  The README explains how to compile the source if you wish to modify the code.
 
The software is available from SVN and includes a precompiled executable in the bin directory.  There are now a compiled version of the 32-bit Windows version on the openHPSDR web page, For other platform you will need to compile the code yourself.  The README explains how to compile the source if you wish to modify the code.
Line 20: Line 22:
  
 
===Libraries===
 
===Libraries===
It uses a modifed version of DttSP that is ported from the Windows version. this code is compiledinto the QtDSPServer.  The DttSP code is provided with the SVN distribution.
+
It uses a modifed version of DttSP that is ported from the Windows version. this code is compiled into the QtDSPServer.  The DttSP code is provided with the SVN distribution.
  
 
This code was written to minimize external dependencies.  The only extern library is  
 
This code was written to minimize external dependencies.  The only extern library is  
  
  * libfftw3  which is the Fast Fourier Tranform library
+
  * libfftw3  which is the Fast Fourier Transformation library
  
  
 
===Architecture===
 
===Architecture===
[[Image:ghpsdr3.png|thumb|400px|right|Architecture of the server/dspserver/client configuration. (Click to enlarge)]]
+
[[Image:ghpsdr3.png |thumb |400px|right|Architecture of the server/dspserver/client configuration. (Click to enlarge)]]
 
The image illustrates the architecture of the ghpsdr3-Qt software chain.  The software works with either the single receiver verilog code (Mercury 2.9) or the multiple receiver verilog code or (Mercury 3.x).  If Mercury 2.9 is install only one receiver can be accessed.   
 
The image illustrates the architecture of the ghpsdr3-Qt software chain.  The software works with either the single receiver verilog code (Mercury 2.9) or the multiple receiver verilog code or (Mercury 3.x).  If Mercury 2.9 is install only one receiver can be accessed.   
  
Line 39: Line 41:
 
'''Link between Server and Receiver clients''' output is the same IQ signal format as the single receiver USB format except the data is sent over UDP link.  The commands are handled as TCP protocol format to allow acknowledgement of the command.
 
'''Link between Server and Receiver clients''' output is the same IQ signal format as the single receiver USB format except the data is sent over UDP link.  The commands are handled as TCP protocol format to allow acknowledgement of the command.
  
===Architecture===
 
[[Image:ghpsdr3.png|thumb|400px|right|Architecture of the server/dspserver/client configuration. (Click to enlarge)]]
 
The image illustrates the architecture of the ghpsdr3 software chain.  The software works with either the single receiver verilog code (Mercury 2.9) or the multiple receiver verilog code or (Mercury 3.0 experimental).  If Mercury 2.9 is install only one receiver can be accessed.  (Please not that there is a matching ozyfw-sdr1k.hex and Ozy_Janus.rbf file to go with the different versions of the Mercury code).
 
  
'''HPSDR''' box represented the hardware and the Mercury/Ozy,Penelope, Mercury/Magister,Penelope, or Mercury/OzyII,Penelope
+
'''Receiver Clients''' can be in many forms and it was designed to foster experimentation.  The first client is the same interface used in [[ghpsdr3 receiver|'''ghpsdr''']].  The second interface is a simple waterfall called [[ghpsdr3 monitor|'''monitor''']] used to keep track of activity on other bands.  Both of these programs the DSP code in in the GUI program.  These programs usually will be with a short distance of the server as the bandwidth is quite large for most home network connections.
  
'''Link between HPSDR and Server''' uses the communication protocol documented in USB Protocol v1.27 at the link on this page or in the SVN in the Documentation directory.
+
[[Image:QtRadio.png |right| QtRadio program. (Click to enlarge)]]
 +
In an effort to demonstrate world wide access to your receiver a third approach was developed.  In this method the receiver client is a [[ghpsdr3 dspserver|'''dspserver''']] that take the output of the [[ghpsdr3 Server|'''Server''']] and creates a low bandwidth version of the spectrum in 8 bit data, the audio data 8-bit ALAW audio format at only 480 sample size at 10 times a second.  The [[ghpsdr3 dspserver|'''dspserver''']] also accepts commands from the client.  To run multiple low bandwidth clients you must run a separate copy of [[ghpsdr3 dspserver|'''dspserver''']] for each client.
  
[[ghpsdr3 Server|'''Server''']] box is a software multiplexer.  It takes the multiple receiver communication protocol and divides it in to single receiver channels.   
+
The base code for the current [[ghpsdr3 jmonitor|'''jmonitor''']] is written in java.  It can be run as a program on a computer or within a web browser.  This code has also been ported to the [[ghpsdr3 iphone|'''iphone''']] and [[ghpsdr3 android|'''Android''']] platforms so that you can monitor your radios on the goAt the 2010 Dayton Hamvention, John Melton monitored his receiver in England from the TAPR booth on the Hamvention floor.
  
'''Link between Server and Receiver clients''' output is the same IQ signal format as the single receiver USB format except the data is sent over UDP link.  The commands are handled as TCP protocol format to allow acknowledgement of the command.
 
  
'''Receiver Clients''' can be in many forms and it was designed to foster experimentation.  The first client is the same interface used in [[ghpsdr3 receiver|'''ghpsdr''']]. The second interface is a simple waterfall called [[ghpsdr3 monitor|'''monitor''']] used to keep track of activity on other bands.  Both of these programs the DSP code in in the GUI program.  These programs usually will be with a short distance of the server as the bandwidth is quite large for most home network connections.
+
[[Image:QtLogger.png |right| QtLogger program. (Click to enlarge)]]
  
In an effort to demonstrate world wide access to your receiver a third approach was developed.  In this method the receiver client is a [[ghpsdr3 dspserver|'''dspserver''']] that take the output of the [[ghpsdr3 Server|'''Server''']] and creates a low bandwidth version of the spectrum in 8 bit data, the audio data 8-bit ALAW audio format at only 480 sample size at 10 times a second.  The [[ghpsdr3 dspserver|'''dspserver''']] also accepts commands from the client.  To run multiple low bandwidth clients you must run a separate copy of [[ghpsdr3 dspserver|'''dspserver''']] for each client. 
 
  
The base code for the current [[ghpsdr3 jmonitor|'''jmonitor''']] is written in java.  It can be run as a program on a computer or within a web browser.  This code has also been ported to the [[ghpsdr3 iphone|'''iphone''']] and [[ghpsdr3 android|'''Android''']] platforms so that you can monitor your radios on the go.  At the 2010 Dayton Hamvention, John Melton monitored his receiver in England from the TAPR booth on the Hamvention floor.
+
 
 +
 
 +
[[Category:Ghpsdr3]]

Latest revision as of 10:07, 5 May 2018

A cross platform HPSDR Radio platform

C++/Qt version of the ghpsdr3

QtHPSDRServer program status page. (Click to enlarge)

ghpsdr3-Qt is a software defined radio server/client or server/dspserver/client format C++/Qt program written specifically for HPSDR by John Melton, G0ORX/N6LYT.

The software is being developed on the Ubuntu version of Linux (specifically version 11.10). I also compiles and runs on Windows 7 and Windows XP, and MacOS

This version of ghpsdr3-Qt allows for the server and client to be on the same machine or separate machines. The server is written in C++/Qt and run on John and others are working on a full set of clients to run on multiple machines connecting to the servers through TCP/IP protocals.

To follow the development of this code look at John's Blog http://g0orx.blogspot.com/

QtHPSDRServer program configuration page. (Click to enlarge)

SVN

The software is available from SVN and includes a precompiled executable in the bin directory. There are now a compiled version of the 32-bit Windows version on the openHPSDR web page, For other platform you will need to compile the code yourself. The README explains how to compile the source if you wish to modify the code.

Since this code does not currently run on Windows here is the Linux svn command,

 svn co http://svn.tapr.org/repos_sdr_hpsdr/trunk/N6LYT/Qt

Libraries

It uses a modifed version of DttSP that is ported from the Windows version. this code is compiled into the QtDSPServer. The DttSP code is provided with the SVN distribution.

This code was written to minimize external dependencies. The only extern library is

* libfftw3  which is the Fast Fourier Transformation library


Architecture

Architecture of the server/dspserver/client configuration. (Click to enlarge)

The image illustrates the architecture of the ghpsdr3-Qt software chain. The software works with either the single receiver verilog code (Mercury 2.9) or the multiple receiver verilog code or (Mercury 3.x). If Mercury 2.9 is install only one receiver can be accessed.

HPSDR box represented the hardware and the Mercury/Ozy,Penelope, Mercury/Magister,Penelope, or Mercury/OzyII,Penelope

Link between HPSDR and Server uses the communication protocol documented in USB Protocol at the link on this page or in the SVN in the Documentation directory.

QtHPSDRServer box is a software multiplexer. It takes the multiple receiver communication protocol and divides it in to single receiver channels.

Link between Server and Receiver clients output is the same IQ signal format as the single receiver USB format except the data is sent over UDP link. The commands are handled as TCP protocol format to allow acknowledgement of the command.


Receiver Clients can be in many forms and it was designed to foster experimentation. The first client is the same interface used in ghpsdr. The second interface is a simple waterfall called monitor used to keep track of activity on other bands. Both of these programs the DSP code in in the GUI program. These programs usually will be with a short distance of the server as the bandwidth is quite large for most home network connections.

QtRadio program. (Click to enlarge)

In an effort to demonstrate world wide access to your receiver a third approach was developed. In this method the receiver client is a dspserver that take the output of the Server and creates a low bandwidth version of the spectrum in 8 bit data, the audio data 8-bit ALAW audio format at only 480 sample size at 10 times a second. The dspserver also accepts commands from the client. To run multiple low bandwidth clients you must run a separate copy of dspserver for each client.

The base code for the current jmonitor is written in java. It can be run as a program on a computer or within a web browser. This code has also been ported to the iphone and Android platforms so that you can monitor your radios on the go. At the 2010 Dayton Hamvention, John Melton monitored his receiver in England from the TAPR booth on the Hamvention floor.


QtLogger program. (Click to enlarge)