Update README.rst
This commit is contained in:
parent
e7b998f69d
commit
dc27e90653
85
README.rst
85
README.rst
@ -1,7 +1,8 @@
|
|||||||
QSpectrumAnalyzer
|
QSpectrumAnalyzer
|
||||||
=================
|
=================
|
||||||
|
|
||||||
Spectrum analyzer for RTL-SDR (GUI for rtl_power based on PyQtGraph)
|
Spectrum analyzer for multiple SDR platforms (PyQtGraph based GUI for soapy_power,
|
||||||
|
rx_power, rtl_power, hackrf_sweep and other backends)
|
||||||
|
|
||||||
Screenshots
|
Screenshots
|
||||||
-----------
|
-----------
|
||||||
@ -16,14 +17,40 @@ Requirements
|
|||||||
- Python >= 3.3
|
- Python >= 3.3
|
||||||
- PyQt >= 4.5
|
- PyQt >= 4.5
|
||||||
- PyQtGraph (http://www.pyqtgraph.org)
|
- PyQtGraph (http://www.pyqtgraph.org)
|
||||||
- rtl-sdr (https://github.com/keenerd/rtl-sdr)
|
- soapy_power / rx_tools / rtl-sdr / rtl_power_fftw / hackrf
|
||||||
- Optional: rtl_power_fftw (https://github.com/AD-Vega/rtl-power-fftw)
|
|
||||||
|
Backends
|
||||||
|
--------
|
||||||
|
|
||||||
|
Universal SDR backends
|
||||||
|
**********************
|
||||||
|
|
||||||
|
- soapy_power (https://github.com/xmikos/soapy_power)
|
||||||
|
|
||||||
|
``soapy_power`` is default recommended universal backend in QSpectrumAnalyzer.
|
||||||
|
It is based on `SoapySDR <https://github.com/pothosware/SoapySDR>`_ and supports
|
||||||
|
nearly all SDR platforms (RTL-SDR, HackRF, Airspy, SDRplay, LimeSDR, bladeRF,
|
||||||
|
USRP and some other SDR devices).
|
||||||
|
|
||||||
|
- rx_power (https://github.com/rxseger/rx_tools)
|
||||||
|
|
||||||
|
``rx_power`` (part of ``rx_tools``) is also based on SoapySDR and therefore
|
||||||
|
supports nearly all SDR platforms, but it is much slower than soapy_power, doesn't support
|
||||||
|
near real-time continuous measurement (minimum interval is 1 second - same as ``rtl_power``)
|
||||||
|
and is little buggy.
|
||||||
|
|
||||||
|
RTL-SDR backends
|
||||||
|
****************
|
||||||
|
|
||||||
|
- rtl_power (https://github.com/keenerd/rtl-sdr)
|
||||||
|
|
||||||
You should use `Keenerds fork of rtl-sdr <https://github.com/keenerd/rtl-sdr>`_
|
You should use `Keenerds fork of rtl-sdr <https://github.com/keenerd/rtl-sdr>`_
|
||||||
(latest Git revision), because ``rtl_power`` in original rtl-sdr (from osmocom.org)
|
(latest Git revision), because ``rtl_power`` in original rtl-sdr package (from osmocom.org)
|
||||||
is broken (especially when used with cropping).
|
is broken (especially when used with cropping).
|
||||||
|
|
||||||
Another alternative is
|
- rtl_power_fftw (https://github.com/AD-Vega/rtl-power-fftw)
|
||||||
|
|
||||||
|
Another alternative for RTL-SDR is
|
||||||
`rtl_power_fftw <https://github.com/AD-Vega/rtl-power-fftw>`_ which has various
|
`rtl_power_fftw <https://github.com/AD-Vega/rtl-power-fftw>`_ which has various
|
||||||
benefits over ``rtl_power``. E.g. better FFT performance (thanks to
|
benefits over ``rtl_power``. E.g. better FFT performance (thanks to
|
||||||
use of ``fftw`` library) and possibility to use much shorter acquisition time
|
use of ``fftw`` library) and possibility to use much shorter acquisition time
|
||||||
@ -31,17 +58,26 @@ for more real-time continuous measurement (minimum interval in original
|
|||||||
``rtl_power`` is 1 second, but in ``rtl_power_fftw`` you are only limited
|
``rtl_power`` is 1 second, but in ``rtl_power_fftw`` you are only limited
|
||||||
by number of frequency hops).
|
by number of frequency hops).
|
||||||
|
|
||||||
|
HackRF backends
|
||||||
|
***************
|
||||||
|
|
||||||
|
- hackrf_sweep (https://github.com/mossmann/hackrf)
|
||||||
|
|
||||||
|
``hackrf_sweep`` backend enables wideband spectrum monitoring by rapidly retuning the radio
|
||||||
|
without requiring individual tuning requests from the host computer. This allows unprecedented
|
||||||
|
sweep rate of 8 GHz per second.
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Start QSpectrumAnalyzer by running ``qspectrumanalyzer``.
|
Start QSpectrumAnalyzer by running ``qspectrumanalyzer``.
|
||||||
|
|
||||||
You can choose if you want to use ``rtl_power`` or ``rtl_power_fftw`` backend in
|
You can choose which backend you want to use in *File* -> *Settings*
|
||||||
*File* -> *Settings* (default is ``rtl_power``). Path to ``rtl_power``
|
(default is ``soapy_power``). Sample rate and path to backend executable
|
||||||
(or ``rtl_power_fftw``) executable can be also manually specified there. You can also
|
can be also manually specified there. You can also set waterfall plot
|
||||||
set waterfall plot history size in there. Default is 100 lines, be aware that
|
history size. Default is 100 lines, be aware that really large sweeps
|
||||||
really large sweeps (with a lot of bins) would require a lot of system memory, so
|
(with a lot of bins) would require a lot of system memory,
|
||||||
don't make this number too big.
|
so don't make this number too big.
|
||||||
|
|
||||||
Controls should be intuitive, but if you want consistent results, you should
|
Controls should be intuitive, but if you want consistent results, you should
|
||||||
turn off automatic gain control (set it to some fixed number) and also set
|
turn off automatic gain control (set it to some fixed number) and also set
|
||||||
@ -55,19 +91,31 @@ table can be changed in mini-histogram widget (on *Levels* tab).
|
|||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
|
||||||
**Arch Linux:**
|
Arch Linux:
|
||||||
|
***********
|
||||||
|
|
||||||
|
Stable version:
|
||||||
::
|
::
|
||||||
|
|
||||||
git clone https://aur.archlinux.org/qspectrumanalyzer.git
|
git clone https://aur.archlinux.org/qspectrumanalyzer.git
|
||||||
cd qspectrumanalyzer
|
cd qspectrumanalyzer
|
||||||
makepkg -sri
|
makepkg -sri
|
||||||
|
|
||||||
|
Git master branch:
|
||||||
|
::
|
||||||
|
|
||||||
|
git clone https://aur.archlinux.org/qspectrumanalyzer-git.git
|
||||||
|
cd qspectrumanalyzer-git
|
||||||
|
makepkg -sri
|
||||||
|
|
||||||
Or simply use `pacaur <https://aur.archlinux.org/packages/pacaur>`_ (or any other AUR helper):
|
Or simply use `pacaur <https://aur.archlinux.org/packages/pacaur>`_ (or any other AUR helper):
|
||||||
::
|
::
|
||||||
|
|
||||||
pacaur -S qspectrumanalyzer
|
pacaur -S qspectrumanalyzer
|
||||||
|
pacaur -S qspectrumanalyzer-git
|
||||||
|
|
||||||
**Debian / Ubuntu:**
|
Debian / Ubuntu:
|
||||||
|
****************
|
||||||
::
|
::
|
||||||
|
|
||||||
sudo apt-get install python3-pip python3-pyqt4 python3-numpy
|
sudo apt-get install python3-pip python3-pyqt4 python3-numpy
|
||||||
@ -84,9 +132,20 @@ You can install it locally only for your current user by running this (without `
|
|||||||
Executables will be then placed in ``~/.local/bin`` directory, you can add it to your
|
Executables will be then placed in ``~/.local/bin`` directory, you can add it to your
|
||||||
PATH in ``~/.bashrc``.
|
PATH in ``~/.bashrc``.
|
||||||
|
|
||||||
|
If you want to install QSpectrumAnalyzer directly from Git master branch, you can use this procedure:
|
||||||
|
::
|
||||||
|
|
||||||
|
git clone https://github.com/xmikos/qspectrumanalyzer.git
|
||||||
|
cd qspectrumanalyzer
|
||||||
|
pip3 install --user .
|
||||||
|
|
||||||
Todo:
|
Todo:
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
- finish soapy_power backend (new universal default backend)
|
||||||
|
- show scan progress
|
||||||
|
- allow setting LNB LO frequency
|
||||||
|
- save & load FFT history (allow big waterfall plot saved to file)
|
||||||
- automatic peak detection / highlighting
|
- automatic peak detection / highlighting
|
||||||
- display average noise level
|
- display average noise level
|
||||||
- frequency markers / bookmarks with notes (even importing / exporting .csv file with
|
- frequency markers / bookmarks with notes (even importing / exporting .csv file with
|
||||||
|
Loading…
Reference in New Issue
Block a user