Added README which has history and some usage instructions.
This commit is contained in:
parent
efde2f1a1f
commit
b5097d309e
510
Source/README
Normal file
510
Source/README
Normal file
@ -0,0 +1,510 @@
|
||||
SDR front end for HPSDR
|
||||
|
||||
http://openhpsdr.org/index.php
|
||||
|
||||
|
||||
***********************************************************************
|
||||
OS, needed software and recommended hardware:
|
||||
|
||||
|
||||
- Windows Win7, Windows XP, 32 or 64 Bit.
|
||||
|
||||
- OpenGL capable graphic processor; must be at least OpenGL version 2.0.
|
||||
It has been tested on Nvidia and Ati (now AMD) chips. Also, Intel
|
||||
onboard graphic chips have been tested.
|
||||
|
||||
- At least a DualCore processor, better: QuadCore.
|
||||
|
||||
***********************************************************************
|
||||
Current limitations / Known issues:
|
||||
|
||||
- This version is still Beta !
|
||||
|
||||
- Only Rx by now.
|
||||
|
||||
- Chirp-Decoder mode has been disabled currently.
|
||||
|
||||
- "External" DSP mode, i.e. server functionality, is disabled currently
|
||||
(although implemented).
|
||||
|
||||
- This version does not yet contain Cuda or OpenCL kernels.
|
||||
|
||||
- Sampling rate 384 kHz requires quite a lot of computational resources
|
||||
when using 4 receivers!
|
||||
|
||||
***********************************************************************
|
||||
|
||||
Some short explanations:
|
||||
|
||||
If you right click with the mouse in the Pan a little window for
|
||||
controlling opens. You can 'fix' this window by clicking on the button on
|
||||
the top-right; otherwise it closes again if you leave with the mouse.
|
||||
These control popups can be opened for every receiver separately.
|
||||
|
||||
Let's go through the buttons (from top to down, left to right):
|
||||
|
||||
Pan Avg: turns averaging on/off.
|
||||
Pan Grid: turns grid on/off.
|
||||
Peak Hold: as it says.
|
||||
Lock Pan: tuning the 'VFO' with the mouse wheel or the big frequency
|
||||
display on the top of the app but keeping the center frequency
|
||||
fixed.
|
||||
Click VFO: left mouse click moves the 'VFO' to the location of the mouse.
|
||||
Mid=VFO: moves the center frequency to the position of the VFO frequency
|
||||
and centers the complete display again.
|
||||
VFO=Mid: moves the VFO frequency to the center frequency.
|
||||
|
||||
Line, Filled Line, Solid: different ways of displaying the power spectrum.
|
||||
Simple, Enhanced: different color schemes for the waterfall display.
|
||||
|
||||
All other buttons should be self-explanatory, and all these buttons are valid
|
||||
for the receiver where you opened the popup.
|
||||
|
||||
A further remark: if 'Pan Lock' and 'Click VFO' are turned off, left clicking
|
||||
and dragging moves the center frequency as normal. This is also true if you
|
||||
left-click and drag with the mouse over the frequency scale. But, if 'Pan Lock'
|
||||
is on, left-clicking and dragging in the Pan moves the VFO frequency, and
|
||||
left-clicking and dragging with mouse over the frequency scale moves the center
|
||||
frequency by keeping the VFO frequency fixed. This is very practical if you
|
||||
want to stay on the station you are listeing to, but want to look what's on the
|
||||
edges or outside the visible spectrum.
|
||||
|
||||
ESC to switch to/from full screen mode.
|
||||
|
||||
|
||||
***********************************************************************
|
||||
list of changes:
|
||||
|
||||
v0.3.2.13+ (N1GP changes):
|
||||
|
||||
- Took VK5ABN's cudaSDR version based off v0.3.2.13 but modified to use cuda cores for DSP.
|
||||
Ripped the cuda DSP out and put back in the QtDSP, added local sound, added more rcvrs (20),
|
||||
added ADC selection in the floating rx widget. Mostly use this to test HPSDR FPGA changes.
|
||||
|
||||
v0.3.2.13:
|
||||
|
||||
- Improved threading model (nothing to see on the GUI).
|
||||
|
||||
v0.3.2.12:
|
||||
|
||||
- Added 384 ksps sample rate. Currently this only works OK for maximal 4
|
||||
receivers!
|
||||
|
||||
- Bug fix: averaging per receiver corrected.
|
||||
|
||||
v0.3.2.11:
|
||||
|
||||
- Rx 0 (the main receiver) increases spectrum resolution by zooming the
|
||||
frequency scale now automatically up to 32768 bins FFT-size.
|
||||
|
||||
- For every receiver the Panadapter spectrum graphics can be selected
|
||||
seperately now; as well as the avering rate.
|
||||
|
||||
- Windows size is saved in windowsSettings.ini
|
||||
|
||||
|
||||
v0.3.2.10:
|
||||
|
||||
- additional control: up to now, the frequency scale could be moved up
|
||||
and down by clicking left-mouse on this scale. Now, to move this scale
|
||||
you have to hold the shift key AND left-click the mouse button.
|
||||
|
||||
If you don't hit the shift key and use the left-mouse button on the
|
||||
frequency scale the center frequency is moved accordingly (by keeping
|
||||
any difference to the VFO frequency constant).
|
||||
|
||||
v0.3.2.9:
|
||||
|
||||
- several bug fixes:
|
||||
NCO frequency adjusted when changing sample rate
|
||||
NCO frequency changing when tuning other receiver than the current one
|
||||
Thread stopping caused a crash when using more than one receiver
|
||||
|
||||
|
||||
v0.3.2.8:
|
||||
|
||||
- Bug fixes
|
||||
|
||||
v0.3.2.7:
|
||||
|
||||
- The Radio control Popup window opens now by clicking the right mouse
|
||||
button. These Popups can be opened for each receiver seperately, and
|
||||
can be made sticky. On the Popups you now find the controls for
|
||||
averaging, grid display, Peak-Hold function, 'VFO=Mid', and 'Mid=VFO',
|
||||
each of which is controlled seperately for each receiver window.
|
||||
|
||||
- The 'Locked Pan' feature has been extended by another mode called
|
||||
'Click VFO'. If only the 'Locked Pan' mode has been choosen, the VFO
|
||||
frequency is controlled by the mouse wheel or by dragging the mouse
|
||||
in the Pan/Waterfall. If in addition 'Click VFO' is choosen, the VFO
|
||||
frequency is controlled by clicking with the left mouse button, or by
|
||||
clicking and dragging.
|
||||
|
||||
- The status of 'Locked Pan', 'Click VFO' and all center and VFO
|
||||
frequencies are stored in the settings.ini, and are retrieved after a
|
||||
restart of the application.
|
||||
|
||||
v0.3.2.6:
|
||||
|
||||
- added possibility to fix the Panadapter/Waterfall spectra to the
|
||||
center frequency, and tune the VFO independently from this center
|
||||
frequency. So now we have differentiate between the 'center frequency'
|
||||
and the 'VFO frequency', which is the frequency at which audio is
|
||||
demodulated.
|
||||
|
||||
You can turn on this feature by clicking on the small button 'Lock Pan'
|
||||
in the Panadapter window top left. Then you can drag the VFO with the
|
||||
mouse (left click), or by dragging the mouse wheel (tuning in fixed
|
||||
mouse wheel steps). If you click in the Panadapter with right mouse
|
||||
button the hair cross shows up (as before), but then left clicking
|
||||
moves only the VFO frequency while the Panadapter is locked.
|
||||
|
||||
Two additional buttons gives the possibility to set either the VFO
|
||||
frequency to the center frequency ('vfo = mid'), or the center
|
||||
frequency to the current VFO frequency ('mid = vfo').
|
||||
|
||||
A note on the implementation: this is a feature which was already present
|
||||
in Cathy Moss' SDRMAX3 (but not the DSP related function), where the
|
||||
idea of the control of this feature is taken from. Another wonderful
|
||||
feature of Cathy's work which I very much appreciate.
|
||||
|
||||
The DSP implementation is adapted from cuteSDR by Moe Wheatley, AE4JY.
|
||||
It is actually an implementation for translating a frequency band using
|
||||
a quadrature oscillator, as described in Richard Lyons book 'Understanding
|
||||
Digital Signal Processing'. In fact, the implementation is fairly easy,
|
||||
and it was especially easy for me because of the very nice example code
|
||||
from Moe Wheatley's cuteSDR. I very much appreciate also his work on
|
||||
cuteSDR!
|
||||
|
||||
I am still experimenting with the features to control this behavior, and
|
||||
I welcome any clever ideas for doing this!
|
||||
|
||||
v0.3.2.5:
|
||||
|
||||
- added possibility to switch off firmware checks.
|
||||
|
||||
v0.3.2.4:
|
||||
|
||||
- added Metis FW V2.2
|
||||
|
||||
v0.3.2.3:
|
||||
|
||||
- Bug-fix: inital settings of demod mode corrected
|
||||
|
||||
- Bug-fix: sample-rate changing did not care about the filter settings.
|
||||
|
||||
v0.3.2.2:
|
||||
|
||||
- Bug-fix: wide band scope zooming now works correctly.
|
||||
|
||||
- Bug-fix: AGC mode 'User' caused an application crash.
|
||||
|
||||
- for Linux/MacOs only: improved font scaling on the control panel.
|
||||
|
||||
|
||||
v0.3.1.2:
|
||||
|
||||
- Bug-fix: a font missing caused an application crash if ADC overloads.
|
||||
|
||||
- Thanks to Berndt Wulf, VK5ABN, a socket option was adjusted.
|
||||
|
||||
- During HPSDR network device detection (Metis/Hermes) a message is shown
|
||||
on the status bar.
|
||||
|
||||
|
||||
v0.3.1.1:
|
||||
|
||||
- Bug-fix on the Metis/Hermes network connections.
|
||||
|
||||
- S-Meter font mismatch corrected.
|
||||
|
||||
|
||||
v0.3.1.0:
|
||||
|
||||
- Important: please use the new settings.ini with this release !
|
||||
|
||||
- The tool chain has been replaced by GCC (MinGW, MinGW-w64) and Eclipse
|
||||
CDT. The sources have been revised for the use of GCC.
|
||||
Good-bye Visual Studio! If you want to follow me on that way, just let
|
||||
me know. You might also ask me why I did that ;-)
|
||||
|
||||
- The HPSDR protocol is now fully implemented (Rx & Tx), but for Tx it is
|
||||
still a way to go.
|
||||
|
||||
- A major revision of the internal data structure has been completed.
|
||||
|
||||
- Alex interface has been finished. The Alex states are stored per band.
|
||||
|
||||
- Penny OC pins (Rx & Tx) interface ready. The values are stored per band.
|
||||
|
||||
- A CPU usage indicator has been added on the status bar. It shows the
|
||||
mean CPU usage percentage of cuSDR.
|
||||
|
||||
- DoubleClick in the Panadapter opens a little window for changing Band,
|
||||
Demod, Filtersize, AGC mode. If you move the mouse out of this window
|
||||
it closes after a short time. This is a feature which was available in
|
||||
similar form in SDRMAX III from Cathy Moss. Just another appreciation
|
||||
of her work!
|
||||
|
||||
- Growing the receiver windows (Pan + Waterfall) causes to increase the
|
||||
font sizes of the scales as well as the font size of the cross-hair
|
||||
information.
|
||||
|
||||
- The Mercury attenuator ('Preamp') values are now stored per band.
|
||||
|
||||
- The dBm scale resolutions on the Panadapter are now stored now per band.
|
||||
Note please: If you change the band by a band button in the Rx Ctrl
|
||||
widget, the stored value is restored. If you change band by altering the
|
||||
frequency (by the mouse wheel, or by dragging in the Panadapter, or by
|
||||
altering the big frequency display) the stored values are NOT restored.
|
||||
|
||||
- The mode of operation (DSP mode) is stored now per band.
|
||||
|
||||
- Added a new high resolution timer based on QueryPerformanceFrequency of
|
||||
Windows OS. A better control of the FPS value (frames per second) based
|
||||
on the high resolution timer has been implemented. The FPS values are
|
||||
stored per receiver in the settings.ini. Each receiver runs its own
|
||||
high-res timer.
|
||||
|
||||
- Added a time scale to the waterfall spectra, which varies with the FPS
|
||||
value.
|
||||
|
||||
- A first version of QtDSP has been implemented. DttSP is discarded.
|
||||
There is no noise reduction/noise blanker/notch filter present
|
||||
currently. Please note: this is by no means a judgement over DttSP!
|
||||
|
||||
- Warren Pratt's, NR0V, AGC is now implemented in QtDSP. Added graphical
|
||||
control for AGC gain threshold and hang threshold. Click on the orange
|
||||
colored button to turn AGC threshold/hang threshold lines on and off.
|
||||
|
||||
- Added volume mute functionality.
|
||||
|
||||
- Added local date & time display on the status bar.
|
||||
|
||||
- Some re-organization of the widget content.
|
||||
|
||||
- Added firmware version control for Mercury, Penelope/Pennylane, Metis
|
||||
and Hermes.
|
||||
|
||||
|
||||
v0.3.0.1:
|
||||
|
||||
- Major change on the GUI. Introduced docking windows.
|
||||
|
||||
- Edit your Call Sign in the Display settings.
|
||||
|
||||
v0.2.2.6:
|
||||
|
||||
- Changed way of getting firmware version numbers.
|
||||
|
||||
- Added warnings if another hardware has been selected as was discovered.
|
||||
|
||||
v0.2.2.5:
|
||||
|
||||
- Bug fixes (wide band, multi-Rx views, and more)
|
||||
|
||||
- S-Meter min/max-Bar (the red/orange one) improved: slow reset.
|
||||
|
||||
- Added an IP-packet 'LED' in order to indicate if there are packet losses.
|
||||
Useful if you encounter audio distortions caused by network problems.
|
||||
|
||||
- Added timers to control the SYNC, ADC, and IP Packets LEDs.
|
||||
|
||||
only cuSDR32:
|
||||
|
||||
- Provided *.pro/*.pri files, and tested compilation under minGW.
|
||||
(gcc-Version 4.7.0)
|
||||
|
||||
v0.2.2.4:
|
||||
|
||||
- Important bug fix: memory leak closed !
|
||||
|
||||
v0.2.2.3:
|
||||
|
||||
- Bug fix in the Peak-Hold function; zooming on the frequency scale can
|
||||
cause a crash of the application.
|
||||
|
||||
- Added Peak-Hold for the other display styles.
|
||||
|
||||
v0.2.2.2:
|
||||
|
||||
- Peak Hold for the Panadapter has been added. Works currently only for
|
||||
display style 'Line'.
|
||||
|
||||
v0.2.2.1:
|
||||
|
||||
- A new averaging method has been implemented. This method is taken from
|
||||
Richard Lyons' book 'Understanding Digital Signal Processing', 3rd ed.,
|
||||
p.791. It is called 'Dual-Mode Averaging', and consists of an exponential
|
||||
averaging together with a fast way of blending the moving averager.
|
||||
Note, this method introduces also a noise reduction, which can be seen
|
||||
on the 16k wide band spectrum if you turn averaging on and off.
|
||||
|
||||
v0.2.2.0:
|
||||
|
||||
- In order to ensure backward compatibility to HPSDR firmware versions,
|
||||
the start procedure has been changed. Now a first start is performed
|
||||
to read out the firmware versions of the connected HPSDR hardware.
|
||||
Then, with the correct initializations wrt the firmware versions, the
|
||||
final start is launched. This causes in general a longer starting time.
|
||||
|
||||
- Added possibility to show wide band data with 16k sample size (Hermes
|
||||
firmware > v1.6, Mercury firmware > v3.2).
|
||||
|
||||
- If there are two receivers selected, you now have the possibility to
|
||||
link the center frequency displays of the two receivers in the Waterfall
|
||||
display. This only makes sense if both receivers are on the same band.
|
||||
Then you can drag the frequency rulers of, e.g. receiver 1, to show only
|
||||
the Panadapter display, and receiver 2 to show only the Waterfall display.
|
||||
In this way you have a moving Panadapter display (receiver 1 in this case)
|
||||
and a fixed Waterfall display (receiver 2) with a line showing the
|
||||
frequency of receiver 1.
|
||||
|
||||
v0.2.1.2:
|
||||
|
||||
- Minor correction of the wideband display data wrt 20 dB attn.
|
||||
|
||||
v0.2.1:
|
||||
|
||||
- The DOS command window is replaced now by a log file. This file
|
||||
("cuSDR.log") is normally placed in the directory where cuSDR is
|
||||
started. If you have problems with the application, I would be glad
|
||||
if you could send me this log file.
|
||||
|
||||
|
||||
v0.2.0:
|
||||
|
||||
- many small changes/improvements/bug fixes
|
||||
- corrected a device discovery problem when more than one device is
|
||||
in the local network (Metis/Hermes)
|
||||
- Panadapter display (Filter, Frequency etc.)
|
||||
- finally a slider for the AGC gain (DttSP and QtDSP)
|
||||
- first instance of the QtDSP package, the Qt-adaptation of the
|
||||
SharpDSP package. Note: QtDSP package is not yet completed; e.g.
|
||||
the S-Meter is not yet working.
|
||||
- first implementation of Warren Pratt's, NR0V, ingenious AGC function.
|
||||
- Hermes (RX) support
|
||||
- Alexiares support prepared
|
||||
- First steps for the Tx path added; "Transmit" Tab added; "Ext Ctrl" Tab
|
||||
added; "PA" Tab added; "Alex" Tab added
|
||||
|
||||
v0.1.10:
|
||||
|
||||
- added averaging for wide band panadapter
|
||||
- fixed problem that Mercury/Metis are not correctly initialized after
|
||||
the first "Start" if more than one receiver is selected.
|
||||
- fixed wrong debug message in DOS-console after hitting "Start"
|
||||
command ("send Start command to Metis at ...")
|
||||
- fixed receiver display layout when switching from view1 to view2
|
||||
|
||||
v0.1.09:
|
||||
|
||||
- fixed problem when clicking the Windows close button and app is running
|
||||
- fixed missing GUI link / filter and filter group changes
|
||||
- fixed crashes when changing sample rate during receiving: inserted an
|
||||
additional mutex in method dspProcessing()
|
||||
- changed method initMetis() to connect to Metis/Hermes: it is now based on
|
||||
a time out
|
||||
- fixed some graphical problems when showing hair cross
|
||||
- hair cross is switched off now when you switch receiver
|
||||
|
||||
V0.1.08
|
||||
|
||||
Changes:
|
||||
- minor changes on the GUI; new S-Meter
|
||||
|
||||
|
||||
***********************************************************************
|
||||
Since there is no manual yet, here are the most important things to know,
|
||||
but the GUI should mostly be self-explaining.
|
||||
|
||||
The application is controlled by a number of widgets which opens by hitting
|
||||
the corresponding buttons, some of which are currently disabled. Just try
|
||||
before hitting "Start" to find out where to control all the parameters.
|
||||
Note, some of Buttons are disabled if the application is running (i.e
|
||||
receiving), that is, they can only be altered after hitting "Stop".
|
||||
|
||||
If you are connecting Metis directly to the PC, chose the correct network
|
||||
adapter with an APIPA address (see Metis manual) in the HPSDR widget.
|
||||
Otherwise, if you are on a local LAN with DHCP server, the application will
|
||||
check for the active network adapter. Remember, if your PC has already an
|
||||
IP address, e.g. from your router, and you disconnect the PC from the network
|
||||
in order to connect Metis to your PC, you have to deactivate and re-activate
|
||||
your network adapter (or simply restart you PC). This is NOT necessary if
|
||||
your PC has two network adapters, of course.
|
||||
|
||||
If you want to enable more than one receiver, please go to the "HPSDR" widget
|
||||
(-> HPSDR Button) when the application is stopped. Then choose in the right
|
||||
bottom the number of receivers. The corresponding number of receiver panels
|
||||
should show up. Then press "Start" and feel lucky. On the main button panel,
|
||||
right, you choose the receiver to control and listen to.
|
||||
|
||||
Every receiver panel can be controlled by itself. The scales are zoom-able
|
||||
(right mouse button). The dBm scale can be moved by the left mouse button.
|
||||
Mouse wheel for controlling frequency if you are in the panadapter. You can
|
||||
also drag in the panadapter holding down the left mouse button to change
|
||||
frequency.
|
||||
|
||||
If you move your mouse over the big frequency display, you can alter the
|
||||
digits by the mouse wheel directly. Clicking on the digits alter the mouse
|
||||
wheel's step size. The receiver panels are sizable. You can shut off the
|
||||
waterfall display by dragging the frequency scales to the bottom of each
|
||||
panel. Note, if you close a waterfall display by dragging the frequency scale
|
||||
to the bottom, there is nearly no change of CPU utilization due to the use of
|
||||
framebuffer objects of OpenGL.
|
||||
|
||||
On the Display widget you have some control over FPS and colors. Higher FPS
|
||||
means, more data per time unit are sent to the receiver panels, and more CPU
|
||||
resources are needed. Waterfall update is bound from below by 20 ms. The
|
||||
ESCAPE key switches between full screen view and normal view.
|
||||
|
||||
A lot of parameters are stored in a file settings.ini. You can copy/rename/edit
|
||||
this file, but always a file named settings.ini will be used. If you enter wrong
|
||||
values, the application will take default values. If you loose settings.ini, the
|
||||
application will create one for you.
|
||||
|
||||
In the settings.ini there is a parameter in the server section called
|
||||
'widebandData'. If 'widebandData=off', Metis/Hermes will be initialzed without
|
||||
sending wide band data, if 'widebandData=on', with sending wide band data.
|
||||
Be careful when editing settings.ini.
|
||||
|
||||
Have fun!
|
||||
|
||||
***********************************************************************
|
||||
Acknowledgements:
|
||||
|
||||
The writing of this software would not have been possible without
|
||||
previous work on famous software packages like:
|
||||
|
||||
- Catherine Moss' SDRMAX3 for QSR1: notably the best SDR-GUI written
|
||||
ever, at least in my eyes. I took her design idea for the zoom-able
|
||||
scales - with personal permission. It's a wonderful smooth,
|
||||
intelligent and working GUI concept!
|
||||
|
||||
- the SharpDSP package of Phil Covington (N8VB), which is used in KISS
|
||||
Konsole, and which has been the starting point for my CudaSharpDSP
|
||||
package.
|
||||
|
||||
- the wonderful KISS Konsole experimental software and all who have
|
||||
contributed to it, and where I started to learn about SDR programming,
|
||||
with lots of explanations. Special thanks to George, K9TRV and Phil,
|
||||
VK6APH, with whom I had some longer discussions about KISS code and
|
||||
techniques in the beginnings.
|
||||
|
||||
- the DttSP package, which I use currently for DSP processing.
|
||||
|
||||
- the MultiRx multiplexer function from gHPSDR3 by John Melton,
|
||||
G0ORX/N6LYT. Great stuff.
|
||||
|
||||
- People, who worked on PowerSDR; the Waterfall color scale from is taken
|
||||
from PowerSDR :-P
|
||||
|
||||
- to all Qt/OpenGL/OpenCL developers and their big number of example
|
||||
code and snippets!
|
||||
|
||||
Big thanks to the makers/contributors/organizers of the HPSDR hardware!
|
||||
|
||||
|
||||
Hermann, DL3HVH
|
||||
|
||||
The author can be reached at hvh.net@gmail.com
|
||||
Loading…
Reference in New Issue
Block a user