HiQSDR-Software

From HiQSDR
Jump to: navigation, search

Software

Quisk

Quisk is a software for SDR receivers and transceivers written by James Ahlstrom N2ADR.
On the N2ADR Quisk Website you will find all Information about Quisk from James Ahlstrom N2ADR
Read the Quisk Changelog: Quisk changelog

Quisk is a simple SDR program meant for experimenters and homebrewers.
It does not have all the features of PowerSDR, but a few menus to adjust its parameters; you must edit a config file to even change parameters. Since Quisk 4.0.0 has now configuration screens to display and edit its settings.
The sample rate can easily be changed in the Config Window.
At least it is easy to write your own Python code to control Quisk and the HiQSDR.

Quisk Config window

Another slider labeled "Zo" is used to zoom (expand) the graph screen scale so that narrow signals can be examined.
The center of the graph is changed to the tuning frequency when zoom is turned on.
To cancel zoom, move the slider back to the bottom position.
You can tune as usual even if zoom is on.

Quisk Zoom


Quisk 40m

The latest Quisk Documentation from James Ahlstrom N2ADR can be found here: Quisk Dokumentation


Quisk Installation Windows

At the start of your Quisk installation, you first have to download and install some libraries.
Quisk needs the Python 2.7.5 and wxPython 2.8 unicode libraries, you will find all precompiled libraries on the Python and wx Python website.

You must install a 32-bit version of Python 2.7 and wxPython before you install Quisk.
You must use the 32-bit version even if you have 64-bit Windows because the Quisk extension module is 32-bit.


Installation of the Libraries

Here are the download websites:
Website Python 2.7.5 for Windows
wxPython 32bit unicode for Windows

Direct Download links to the precompiled binary:

  • First download and install the precompiled binary python-2.7.5.msi

python-2.7.5.msi

  • As next download and install the precompiled binary wxPython2.8-win32-unicode-py27.

Since Quisk 3.6.18 the Windows installer now works with the new WxPython 3.0. Previously it required 2.x.:
wxPython2.8-win32-unicode-2.8.12.1-py27.exe
wxPython3.0-win32-3.0.2.0-py27.exe

If you got problems on starting Quisk with message "Quisk requires Python 2.7 - Not found" now Python installation was not correct registred on key HKEY_LOCAL_MACHINE. Create the registry entry yourself or run the python.org Python installer. The registry key is: Root='HKLM' Key='Software\Python\PythonCore\2.7\InstallPath'

See message: http://quisk.973856.n3.nabble.com/Quisk-Windows-Installer-MSI-Fails-Python-2-7-Not-Found-td4006740.html

Thanks to Volker and Sid for this information.


Install the Quisk binary

  • At last download and install the latest Quisk Version from James Ahlstrom N2ADR:

quisk-4.1.12.win32-py2.7.msi Windows
Dont forget to make a quisk_conf.py see Quisk configuration
Remarks: Quisk installs itself as a package in site-packages under Python 2.7.
Windows path= c:\Python27\Lib\site-packages\quisk
To uninstall Quisk, use Control Panel/ Add Remove Programs.
You may need to adjust the config file parameters data_poll_usec and latency_millisecs depending on your hardware.


Quisk Installation Linux

At the start of your Quisk installation, you first have to install or download some libraries and development files.
Quisk needs some libraries, most of the files are probably installed ready to use from your Distribution.
To run and compile the Quisk Software under Linux it is necessary to have installed the following Packages for your Distribution:
(Please use the appropriate packet name of your distribution, maybe they are different)

  • python-all, the Python programming language library
  • python-all-dev, the development files for the Python language
  • python-serial, pyserial - module encapsulating access for the serial port
  • python-wxgtk2.8, the wxPython package used for the Graphical User Interface
  • libfftw3, the fast fourier transform library
  • libfftw3-dev, the development files for the Fast Fourier Transform library
  • libasound2, Advanced Linux Sound Architecture library ALSA
  • libasound2-dev, the development files for the ALSA library
  • portaudio19, PortAudio audio I/O library
  • portaudio19-dev, development files for the PortAudio audio I/O library
  • libpulse0, Client library PulseAudio sound server tnx Helge DF7EM
  • libpulse-dev, development files for the PulseAudio sound server tnx Helge DF7EM

Packages with -dev contain the development header-files; they are only needed if you want to newly compile quisk.


Installation of the Libraries

The installation depends on the package management software of your Linux distribution. Please use the Package Manager or Console Tool (apt-get, yum ...) to install the packages from the distribution repository. (Synaptic, Kpackage, Software-Center)

Synaptic

To install all needed libraries on Debian/Ubuntu open a console and do the following command:

sudo apt-get install python-all python-all-dev python-serial python-wxgtk2.8 \
         libfftw3-3 libfftw3-dev \
         libasound2 libasound2-dev \
         libportaudio2 portaudio19-dev

This command check the depencies and install all needed libraries, maybe the package manager have to remove some packages.


Download and Extract the Quisk tar.gz file

  • Download the latest Quisk Version from James Ahlstrom N2ADR:

quisk-4.1.12.tar.gz Linux
Save the quisk-X.X.XX.tar.gz to your home directory, open a console and extract the tar.gz with "tar xvzf ./quisk-X.X.XX.tar.gz".

All files extracted to the directory "quisk-X.X.XX" change to this Quisk directory using "cd quisk-X.X.XX".
Remark: X.X.XX are spaceholder to version number of Quisk
Now you are ready to compile Quisk with "make" or start quisk with "python ./quisk.py"
It is recommended to compile Quisk with "make" on your system to have the correct binary. (32Bit /64Bit)


Quisk Configuration

Quisk does not have a menu to control changes to its operating parameters.
Instead, you must create and edit your own configuration file.
For Linux, the default configuration file name is ".quisk_conf.py" in your home directory, that is "~/.quisk_conf.py".
For Windows, the default configuration file name is quisk_conf.py in your My Documents folder. (For German Windows versions, you must use the "Eigene Dateien" folder instead of "My Documents").

  • Linux config file: ~/.quisk_conf.py (hidden file)
  • Windows config file: My Documents/quisk_conf.py

Under Linux, a dot at the beginning of the file name indicates a hidden file.
To see the hidden files and directories configure your file browser to show hidden files or open a Terminal Window and use "ls -a". This shows all files of the directory.

Directory quisk_conf


Linux quisk_conf.py

The following is an example of a .quisk_conf.py file for use with the HiQSDR and Quisk for Linux from Hubert DG7MGY:

# This is a sample config file for the N2ADR 2010 transceiver hardware and for the
# improved version HiQSDR.  If you use the HiQSDR you should upgrade your firmware
# to version 1.3.

from hiqsdr import quisk_hardware

# ------------------ IMD FDX Button -----------------------------------------------------
# If you want Quisk to add a button to generate a 2-tone IMD test signal,
# set this to 1.  This feature requires the microphone to work.
add_imd_button = 1
# If you want Quisk to add a full duplex button (transmit and receive at the
# same time), set this to 1.
add_fdx_button = 1
# ---------------------------------------------------------------------------------------

# ----------------- Latency, Refresh ----------------------------------------------------

# latency_millisecs determines how many samples are in the soundcard play buffer.
# A larger number makes it less likely that you will run out of samples to play,
# but increases latency.  It is OK to suffer a certain number of play buffer 
# underruns in order to get lower latency. (150)
latency_millisecs = 150
# The graph_refresh is the frequency at which the graph is updated,
# and should be about 5 to 10 Hertz.  Higher rates require more processor power.
graph_refresh = 7			# update the graph at this rate in Hertz
# ----------------------------------------------------------------------------------------

# --------------- Screen and Look --------------------------------------------------------
# Select the default screen when Quisk starts:
default_screen = 'WFall'
# Select the way the waterfall screen scrolls:
# waterfall_scroll_mode = 0 or 1	#  scroll at a constant rate.
waterfall_scroll_mode = 1	# scroll faster at the top so that a new signal appears sooner.
filter_display = 1		# Display filter bandwith graph screen
# Select the initial size in pixels (minimum 1) of the graph at the top of the waterfall.
waterfall_graph_size = 80
waterfall_y_scale = 120
waterfall_y_zero  = 20
waterfall_graph_y_scale = 60
waterfall_graph_y_zero = 80
waterfall_graph_size = 160
# The width of the graph data as a fraction of the total screen size.  This
# will be adjusted by Quisk to accommodate preferred FFT sizes.  It can
# not be changed once Quisk starts.  It can not be made too small because
# of the space needed for all the buttons.
graph_width = 0.80
# This controls the speed of the graph peak hold.  Lower numbers give a longer time constant.
graph_peak_hold_1 = 0.25
graph_peak_hold_2 = 0.10
# ----------------------------------------------------------------------------------------

# ------------------------------ Hardware HiQSDR Transceiver -----------------------------
#use_rx_udp = 1					# Use this for the N2ADR 2010 hardware
use_rx_udp = 2					# Use this for the HiQSDR
rx_udp_ip = "192.168.2.196"		# Sample source IP address
rx_udp_port = 0xBC77			# Sample source UDP port
#rx_udp_clock = 122880000  		# ADC sample rate in Hertz Original
#rx_udp_clock = 122880325  		# ADC sample rate in Hertz Measured
rx_udp_clock = 122880272  		# ADC sample rate in Hertz 10Mhz WWV
rx_udp_decimation = 8 * 8 * 8	# Decimation from clock to UDP sample rate
sample_rate = int(float(rx_udp_clock) / rx_udp_decimation + 0.5)	# Don't change this
correct_smeter = 20.5 			# S-Meter 
# ----------------------------------------------------------------------------------------

# ---------------------------- Sound and microphone --------------------------------------
name_of_sound_play = "hw:0,0"  #name_of_sound_play hw:0,0
#name_of_sound_capture = ""    #name of sound capture hw:0,0
playback_rate = 48000
microphone_name = "hw:0,0"
tx_ip = rx_udp_ip
tx_audio_port = 0xBC79
mic_out_volume = 0.7	 # Microphone output volume (after all processing) as a fraction 0.0 to 0.7
# Microphone audio processing:
# The original audio processing used mic_clip = 4.0; mic_preemphasis = -1.0
# For no mic audio processing, use mic_clip = 1.0; mic_preemphasis = 0.0
mic_clip = 1.0			# Mic amplitude clipping; larger numbers give more clipping
mic_preemphasis = 0.4		# Mic pre-emphasis 0.0 (none) to 1.0; or -1.0 for a Butterworth filter(0.7=DX)(0.3/=OK)
# ----------------------------------------------------------------------------------------

# ------------------ TX ------------------------------------------------------------------
# For the N2ADR 2010 transceiver described in QEX, and for the improved version HiQSDR,
# see the sample config file in the hiqsdr package directory, and set these:
# tx_level sets the transmit level 0 to 255 for each band.  The None band is the default.
# The config screen has a slider 0 to 100% so you can reduce the transmit power.  The sliders
# only appear if your hardware defines the method SetTxLevel().  The hardware only supports a
# power adjustment range of 20 dB, so zero is still a small amount of power.
tx_level = {None:120, '60':120}     # Adjust your power for each band
# Digital modes reduce power by the percentage on the config screen.
# The maximum value of the slider is digital_tx_level.
digital_tx_level = 50		# The slider on the config screen is 100% maximum.
# 10W MPPA Amplifier tx_level=120 ; 1W FA Amplifier tx_level=100

# Select the method to test the state of the key; see is_key_down.c
key_method = ""	# No keying, or internal method
# key_method = "/dev/parport0"	# Use the named parallel port
# key_method = "/dev/ttyS0"	# Use the named serial port
# key_method = "192.168.1.44"	# Use UDP from this address
# If you are using keying, key-down throws away the current capture buffer
# and starts a sidetone with a rise time of 5 milliseconds.  For
# key-up, the sidetone is ended with a fall time of 5 milliseconds, then
# a silent period starts, then normal audio starts with a rise time of
# 5 milliseconds.  The length of the silent period is given by keyupDelay,
# but will be at least the time necessary to collect enough samples to
# refill the filters.  A larger keyupDelay may be needed to accomodate
# antenna switching or other requirement of your hardware.
keyupDelay = 23					# extra milliseconds silence on key up (23)
# Some hardware must be polled to get the key up/down state.  This is the time
# between polls in milliseconds.  Use zero to turn off the poll.
key_poll_msec = 0

# ----------------------------------------------------------------------------------------

# ------------------ Filter settings -----------------------------------------------------
# If you use the HiQSDR hardware, set these:
# The HiQSDR_BandDict sets the preselect (4 bits) on the X1 connector.
HiQSDR_BandDict = {'160':1, '80':2, '40':3, '30':4, '20':5, '15':6, '17':7, '12':8, '10':9, '6':10, }
#HiQSDR_BandDict = {'160':1, '80':2, '40':3, '30':4, '20':5, '15':6, '17':7, '12':8, '10':9, '6':10, '80X':11, '40X':12 }

# For each band, this dictionary gives the lower and upper band edges.  Frequencies
# outside these limits will not be remembered as the last frequency in the band.
BandEdge = {
	'160':( 1800000,  2000000),
	'80' :( 3500000,  3800000),
	'40' :( 7000000,  7200000),
	'30' :(10100000, 10150000),
	'20' :(14000000, 14350000),
	'17' :(18068000, 18168000),
	'15' :(21000000, 21450000),
	'12' :(24890000, 24990000),
	'10' :(28000000, 29700000),
	'6'  :(50000000, 54000000),
#	'40X' :( 7000000, 7200000),
#	'80X' :( 3500000,  38000000),
	}
# For each band, this dictionary gives the initial center frequency, tuning
# frequency as an offset from the center frequency, and the mode.  This is
# no longer too useful because the persistent_state feature saves and then
# overwrites these values anyway.
bandState = {'Audio':(0, 0, 'LSB'),
	'160':( 1890000, -10000, 'LSB'),
	'80' :( 3660000, -10000, 'LSB'),
	'40' :( 7100000, -0, 'LSB'),
	'30':(10120000, -10000, 'CWL'),
	'20' :(14200000, -10000, 'USB'),
	'17' :(18120000,  10000, 'USB'), 
	'15':(21250000, -10000, 'USB'),
	'12' :(24940000,  10000, 'USB'),
	'10' :(28400000, -10000, 'USB'),
	'Time':( 5000000, 0, 'AM'),
	'6' :(50040000,  10000, 'USB'),
#	'40X' :( 7100000, 0, 'LSB'),
#	'80X' :( 3600000, 0, 'LSB'),
	}
# This is the list of band buttons that Quisk displays, and it should have
# a length of 12.  Empty buttons can have a null string "" label.
# Note that the 60 meter band and the Time band have buttons that support
# multiple presses.
bandLabels = ['Audio', '160', '80', '40', '30', '20', '17', '15', '12', '10', '6', ('Time',) * len(bandTime)]
#bandLabels = ['Audio', '160', '80', '40', '30', '20', '17', '15', '12', '10', '6','80X', '40X', ('Time',) * len(bandTime)]

# ----------------------------------------------------------------------------------------

# ---------------- Digital Mode ----------------------------------------------------------
# The "DGTL" mode mostly acts like USB, but it sends received audio to an external
# program that can decode digital modes, and receives audio to transmit.
# The only program currently supported is Fldigi.  Set Fldigi to USB, XML-RPC control.
digital_xmlrpc_url = "http://localhost:7362"	# URL for control by XML-RPC
# Input audio from an external program for use with mode DGTL.  The input must be
# stereo at 48000 sps, and you must set mic_sample_rate to 48000 also.
digital_input_name = "hw:Loopback,0"		# device name for transmit audio
# digital_input_name = 'hw:Loopback,0'
# Output audio to an external program for use with mode DGTL.  The output is
# stereo at the same sample rate as the radio sound playback.
digital_output_name = digital_input_name	# device name for received audio
# digital_output_name = digital_input_name
#
# You can control Quisk from Hamlib.  Set the Hamlib rig to 2 and the device for rig 2 to
# localhost:4575, or other hamlib_port as used by Quisk.
hamlib_port = 4575		# Standard port for Quisk control.  Set the port in Hamlib to 4575 too.
#hamlib_port = 4532		# Default port for rig 2.  Use this if you can not set the Hamlib port.
#hamlib_port = 0		# Turn off Hamlib control.
# ----------------------------------------------------------------------------------------

# ---------------- Mouse  ----------------------------------------------------------------
mouse_wheelmod = 50 # Round frequency when using mouse wheel
# ----------------------------------------------------------------------------------------


Windows quisk_conf.py

The following is an example of a .quisk_conf.py file for use with the HiQSDR and Quisk for Windows from Helmut DB1CC:

 # This is the working config file for HiQSDR transceiver hardware.
 # modified for receiving and transmittig with HiQSDR
 # please modify the band limits and buttons to your needs!

 # to activate a option remove the #-sign
 # to inactivate a option start line with #-sign

 #from n2adr import hardware_transceiver as quisk_hardware
 from hiqsdr import quisk_hardware

 # Module for additional widgets (advanced usage).
 #quisk_widgets = None

 # Select the default screen when Quisk starts:
 #default_screen = 'Graph'
 default_screen = 'WFall'
 #default_screen = 'Config'

 # The width of the graph data as a fraction of the total screen size.  This
 # will be adjusted by Quisk to accommodate preferred FFT sizes.  It can
 # not be changed once Quisk starts.  It can not be made too small because
 # of the space needed for all the buttons.  If you have two displays, Quisk
 # will try to fill both, so set graph_width to 0.4 or smaller.
 graph_width = 0.9

 # This controls the speed of the graph peak hold.  Lower numbers give a longer time constant.
 graph_peak_hold_1 = 0.15
 graph_peak_hold_2 = 0.05

 # Select the default mode when Quisk starts (overruled by persistent_state):
 # default_mode = 'FM'
 default_mode = 'LSB'

 # Select the way the waterfall screen scrolls:
 waterfall_scroll_mode = 0	#  scroll at a constant rate.
 #waterfall_scroll_mode = 1	# scroll faster at the top so that a new signal appears sooner.
 # Select the initial size in pixels (minimum 1) of the graph at the top of the waterfall.
 waterfall_graph_size = 80

 # These are the initial values for the Y-scale and Y-zero sliders for each screen.
 # The sliders go from zero to 160.
 graph_y_scale = 100
 graph_y_zero  = 0
 waterfall_y_scale = 100
 waterfall_y_zero  = 5
 waterfall_graph_y_scale = 100
 waterfall_graph_y_zero = 50
 scope_y_scale = 80
 scope_y_zero  = 0		# Currently doesn't do anything
 filter_y_scale = 90
 filter_y_zero  = 0               # Module for additional widgets (advanced usage).
 quisk_widgets = None

 add_imd_button = 1
 add_fdx_button = 1

 # The graph_refresh is the frequency at which the graph is updated,
 # and should be about 5 to 10 Hertz.  Higher rates require more processor power.
 graph_refresh = 15			# update the graph at this rate in Hertz

 # This converts from dB to S-units for the S-meter (it is in S-units).
 correct_smeter = 20.9                     # correct 50uV=S9

 # latency_millisecs determines how many samples are in the soundcard play buffer.
 # A larger number makes it less likely that you will run out of samples to play,
 # but increases latency.  It is OK to suffer a certain number of play buffer 
 # underruns in order to get lower latency.

 latency_millisecs = 20		# latency time in milliseconds


 #use_rx_udp = 1					# Use this for the N2ADR 2010 hardware
 use_rx_udp = 2					# Use this for the HiQSDR

 rx_udp_ip = "192.168.2.196"		# Sample source IP address
 rx_udp_port = 0xBC77		# Sample source UDP port
 rx_udp_clock = 122873000  		# ADC sample rate in Hertz
 rx_udp_decimation = 8 * 8 * 8	# Decimation from clock to UDP sample rate
 sample_rate = int(float(rx_udp_clock) / rx_udp_decimation + 0.5)	# Don't change this

# Quisk can access your sound card through PortAudio or through ALSA drivers.

# In PortAudio, soundcards have an index number 0, 1, 2, ... and a name.
# The name can be something like "HDA NVidia: AD198x Analog (hw:0,0)" or
# "surround41".  In Quisk, all PortAudio device names start with "portaudio".
# A device name like "portaudio#6" directly specifies the index.  A name like
# "portaudio:text" means to search for "text" in all available devices.  And
# there is a default device "portaudiodefault".  So these portaudio names are useful:
#name_of_sound_capt = "portaudio:(hw:0,0)"		# First sound card
#name_of_sound_capt = "portaudio:(hw:1,0)"		# Second sound card, etc.
#name_of_sound_capt = "portaudio#1"				# Directly specified index
#name_of_sound_capt = "portaudiodefault"		# May give poor performance on capture

# In ALSA, soundcards have these names.  The "hw" devices are the raw
# hardware devices, and should be used for soundcard capture.
#name_of_sound_capt = "hw:0"					# First sound card
#name_of_sound_capt = "hw:1"					# Second sound card, etc.
#name_of_sound_capt = "plughw"
#name_of_sound_capt = "plughw:1"
#name_of_sound_capt = "default"

# In Windows, soundcards names are taken from the systems mixer device.
# Example: Lautsprecher, Speaker, Microphone

 name_of_sound_capt = ""		# We do not capture from the soundcard
 name_of_sound_play = "Lautsprecher"
 data_poll_usec = 10000
 playback_rate = 48000

 microphone_name = "Microphone"
 tx_ip = rx_udp_ip
 key_method = "192.168.2.196"	# Use internal method
 tx_audio_port = 0xBC79
 mic_out_volume = 0.7

 # Microphone audio processing:
 # The original audio processing used mic_clip = 4.0; mic_preemphasis = -1.0
 # For no mic audio processing, use mic_clip = 1.0; mic_preemphasis = 0.0

 mic_clip = 3.0			    # Mic amplitude clipping; larger numbers give more clipping
 mic_preemphasis = 0.7		# Mic pre-emphasis 0.0 (none) to 1.0; or -1.0 for a Butterworth filter

 # The "DGTL" mode mostly acts like USB, but it sends received audio to an external
 # program that can decode digital modes, and receives audio to transmit.
 # The only program currently supported is Fldigi.  Set Fldigi to USB, XML-RPC control.
 digital_xmlrpc_url = "http://localhost:7362"	# URL for control by XML-RPC
 # Input audio from an external program for use with mode DGTL.  The input must be
 # stereo at 48000 sps.
 #digital_input_name = "VirtualSound"		# device name for transmit audio
 # digital_input_name = 'hw:Loopback,0'
 # Output audio to an external program for use with mode DGTL.  The output is
 # stereo at the same sample rate as the radio sound playback.
 #digital_output_name = "VirtualSound"	# device name for received audio
 # digital_output_name = digital_input_name

 # These are the filter bandwidths for each mode:
 FilterBwCW	= (200, 300, 400, 500, 1000, 3000)
 FilterBwSSB	= (1800, 2000, 2200, 2500, 2800, 3300)
 FilterBwAM	= (4000, 5000, 6000, 7000, 8000, 9000)
 FilterBwFM	= (8000, 10000, 12000, 15000, 17000, 20000)
 FilterBwIMD	= (1800, 2000, 2200, 2500, 2800, 3300)
 FilterBwEXT	= (8000, 10000, 12000, 15000, 17000, 20000)

 # For each band, this dictionary gives the lower and upper band edges.  Frequencies
 # outside these limits will not be remembered as the last frequency in the band.
 BandEdge = {
  	'160':( 1800000,  2000000),	'80' :( 3500000,  3800000),
 	'60' :( 5300000,  5430000),	'40' :( 7000000,  7200000),
	'30' :(10100000, 10150000),	'20' :(14000000, 14350000),	
	'17' :(18068000, 18168000), '15' :(21000000, 21450000),
	'12' :(24890000, 24990000),	'10' :(28000000, 29700000),
	'6'  :(50000000, 54000000),
	}

 # If you use the HiQSDR hardware, set these:
 # The HiQSDR_BandDict sets the preselect (4 bits) on the X1 connector.
 HiQSDR_BandDict = {'160':1, '80':2, '40':3, '30':4, '20':5, '17':6, '15':7, '12':8, '10':9, '6':10, '80X':11, '40X':12 }

 # For each band, this dictionary gives the lower and upper band edges.  Frequencies
 # outside these limits will not be remembered as the last frequency in the band.
 BandEdge = {
	'160':( 1800000,  2000000),	'80' :( 3500000,  3800000),
	'40' :( 7000000,  7200000),
	'30' :(10100000, 10150000),	'20' :(14000000, 14350000),	
	'17' :(18068000, 18168000), '15' :(21000000, 21450000),
	'12' :(24890000, 24990000),	'10' :(28000000, 29700000),
	'6'  :(50000000, 54000000), '40X' :( 7000000, 7200000),
     '80X' :( 3500000,  38000000), 
	}

 # For each band, this dictionary gives the initial center frequency, tuning
 # frequency as an offset from the center frequency, and the mode.  This is
 # no longer too useful because the persistent_state feature saves and then
 # overwrites these values anyway.
 bandState = {'Audio':(0, 0, 'LSB'),
      '160':( 1890000, -10000, 'LSB'), '80' :( 3660000, -10000, 'LSB'),
      '40' :( 7100000, -0, 'LSB'),  '30':(10120000, -10000, 'CWL'),
      '20' :(14200000, -10000, 'USB'), '17' :(18120000,  10000, 'USB'), 
      '15':(21250000, -10000, 'USB'),
      '12' :(24940000,  10000, 'USB'), '10' :(28400000, -10000, 'USB'),
      'Time':( 5000000, 0, 'AM'), '6' :(50040000,  10000, 'USB'),
      '40X' :( 7100000, 0, 'LSB'), '80X' :( 3700000, 0, 'LSB'),
	}

 # This is the list of band buttons that Quisk displays, and it should have
 # a length of 12.  Empty buttons can have a null string "" label.
 # Note that the 60 meter band and the Time band have buttons that support
 # multiple presses.
 bandLabels = ['Audio', '160', '80', '40', '30', '20', '17',
	'15', '12', '10', '6','80X', '40X', ('Time',) * len(bandTime)]

 # For the N2ADR 2010 transceiver described in QEX, and for the improved version HiQSDR,
 # see the sample config file in the hiqsdr package directory, and set these:
 # tx_level sets the transmit level 0 to 255 for each band.  The None band is the default.
 tx_level = {None:30}	#  Use this to change your transmit level.

 # Mode DGTL uses this instead of tx_level, so you can reduce the power.
 digital_tx_level = 20

 # Define colors used by all widgets in wxPython colour format:
 color_bg		= 'light steel blue'	# Lower screen background
 color_graph		= 'lemonchiffon1'		# Graph background
 color_gl		= 'grey'				# Lines on the graph
 color_btn		= 'steelblue2'			# button color
 color_check_btn	= 'yellow2'				# color of a check button when it is checked
 color_cycle_btn	= 'goldenrod3'			# color of a cycle button when it is checked
 color_adjust_btn	= 'orange3'			# color of an adjustable button when it is checked
 color_test		= 'hot pink'			# color of a button used for test (turn off for tx)
 color_freq		= 'lightcyan1'			# background color of frequency and s-meter
 color_entry		= color_freq			# frequency entry box
 color_disable	= 'white'				# text color for a disabled button

Save this file as .quisk_conf.py to your Home Directory.
To change the parameters, use your favorite text editor, open the desired file to make your changes and save it.
Linux "gedit" is a good and easy choice and is normally installed with your system.
To run gedit with the opened .quisk_conf.py, use "gedit ~/.quisk_conf.py"

quisk_conf.py


QSDR/Gnuradio and HiQScope from Stefan DL2STG

Stefan Goerg DL2STG has written some impressive software and tools with many features.
More information is available at HiQSDR Website of Stefan DL2STG

  • HiQScope, shows the full spectrum from 0 to 61 MHz
  • gr-hiqsdr is an extension to make HiQSDR usable with GNU Radio project
QSDR


ghpsdr3-alex from Andrea Montefusco IW0HDV

The ghpsdr3-alex project is a modification of the Software Defined Radio (SDR) software by John Melton G0ORX/N6LYT
At a computer connected to a HiQSDR, the server part is running and allows a locally or remote connected client to control and use the HiQSDR.
Client connections can also be done via the internet.
First run the "hardware server" part and then the "dspserver". Now you can connect with your client QtRadio or qtmonitor.
Information about ghpsdr-alex at the website "The ghpsdr3-alex Project"

QtRadio


Ghpsdr3-alex Linux installation

The installation of ghpsdr3-alex dspserver and QtRadio client are described at the QtRadio Linux installation.

But the new QtRadio are based on Qt5 library the installation of Qt5 are described at QtRadio-Installing Qt5

Follow the instructions from the QtRadio Linux site


dspserver config

To have a working and password secured dspserver.conf make sure that the entry "call =" are in lower case otherwise the tx password dont work with QtRadio.

My working dspserver.conf with two users as example:

# Simple config file for ghpsdr3's dspserver.
# default file is located at ~/dspserver.conf when dsp server is started with --share
# The information below will be supplied to a web database which will aid QtRadio
# users find active dspservers to connect to.  You may also see the current list at
# http://napan.ca/qtradio/qtradio.pl
# valid fields are call, location, band, rig and ant
# lines must end with ; and any characters after a # is a comment and ignored
# field values must be enclosed with " ie: "xxxx"
# This default file will be created if dspserver is started with the --share option and ~/dspserver.cfg does not exist
# You may also start dspserver with an alternate config file by starting dspserver with --shareconfig  /home/alternate_filename.conf
# Note field names are all lowercase!

call = "dg7mgy";
location = "JN58dl/Germany";
band = "80-10m";
rig = "HiQSDR/Presl/10W";
ant = "Windom FD-4";
share = "yes"; # Can be yes, no
lookupcountry = "no"; # Can be yes, no

#### Following are new TX options #####

tx = "password";  #Can be: no, yes, password
user = "dg7mgy";

dg7mgy = "XXXXXXXX";  #add users/passwords one per line (Remove leading # ! max 20 characters each
dl8fhe = "XXXXXXXX";  #add users/passwords one per line (Remove leading # ! max 20 characters each

# groupnames = ["txrules1", "txgroup1"];  #add group or rulesset names in ["name1", "name2"]; format (max 20 characters each
groupnames = ["txgroup1"];  #add group or rulesset names in ["name1", "name2"]; format (max 20 characters each

# Add user names in ["call1", "call2"]; format to list members for each groupname above with an suffix of "_members" 
#txrules1_members = ["dg7mgy", "dl8fhe"];
txgroup1_members = ["dg7mgy", "dl8fhe"];

# Rule sets are defined as group or rulesset name =( ("mode", StartFreq in Mhz, End Freq in Mhz),("mode", StartFreq in Mhz, End Freq in Mhz) );
#  Valid modes are  * SSB, CW, AM, DIG, FM, DRM ,SAM, SPEC Where * means any mode is OK
#  The two rules below allow any mode on 20M and CW only on the bottom 100Khz of 80M
#  You can make as many rules and rulesets as you wish. The first matching rule will allow TX

#txrules1 = (("*",14.0,14.350), ("CW",3.5,3.6));# mode, StartFreq Mhz, EndFreq Mhz
txgroup1 = (("*",3.600,3.800),("*",7.000,7.200),("*",14.050,14.350) ,("*",18.100,18.170),("*",21.100,21.450),  ("*",28.100,28.970));
QtRadio TX config


SSL certificate for dspserver

New versions of ghpsdr3-alex dspserver support ssl connections to use this future create the X.509 certificate in your home directory with the followed instructions.

openssl genrsa -out pkey 2048
openssl req -new -key pkey -out cert.req
openssl x509 -req -days 365 -in cert.req -signkey pkey -out cert

Now the dspserver and QtRadio use this certificate.


Now have fun with Quisk and the HiQSDR