{ "info": { "author": "Michal Krenek (Mikos)", "author_email": "m.krenek@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: MacOS X", "Environment :: Win32 (MS Windows)", "Environment :: X11 Applications :: Qt", "Intended Audience :: End Users/Desktop", "Intended Audience :: Science/Research", "Intended Audience :: Telecommunications Industry", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Communications :: Ham Radio", "Topic :: Scientific/Engineering :: Visualization" ], "description": "QSpectrumAnalyzer\n=================\n\nSpectrum analyzer for multiple SDR platforms (PyQtGraph based GUI for soapy_power,\nrx_power, rtl_power, hackrf_sweep and other backends)\n\nScreenshots\n-----------\n\n.. image:: https://xmikos.github.io/qspectrumanalyzer/qspectrumanalyzer_screenshot.png\n\n.. image:: https://xmikos.github.io/qspectrumanalyzer/qspectrumanalyzer_screenshot2.png\n\nRequirements\n------------\n\n- Python >= 3.3\n- PyQt4 / PyQt5 / PySide / PySide2\n- Qt.py (https://github.com/mottosso/Qt.py)\n- PyQtGraph (http://www.pyqtgraph.org)\n- soapy_power (https://github.com/xmikos/soapy_power)\n- Optional: rx_tools / rtl-sdr / rtl_power_fftw / hackrf\n\nBackends\n--------\n\nUniversal SDR backends\n**********************\n\n- soapy_power (https://github.com/xmikos/soapy_power)\n\n``soapy_power`` is default recommended universal backend in QSpectrumAnalyzer.\nIt is based on `SoapySDR `_ and supports\nnearly all SDR platforms (RTL-SDR, HackRF, Airspy, SDRplay, LimeSDR, bladeRF,\nUSRP and some other SDR devices).\n\n- rx_power (https://github.com/rxseger/rx_tools)\n\n``rx_power`` (part of ``rx_tools``) is also based on SoapySDR and therefore\nsupports nearly all SDR platforms, but it is much slower than soapy_power, doesn't support\nnear real-time continuous measurement (minimum interval is 1 second, same as ``rtl_power``)\nand is little buggy.\n\nRTL-SDR backends\n****************\n\n- rtl_power (https://github.com/keenerd/rtl-sdr)\n\nYou should use `Keenerds fork of rtl-sdr `_\n(latest Git revision), because ``rtl_power`` in original rtl-sdr package (from osmocom.org)\nis broken (especially when used with cropping).\n\n- rtl_power_fftw (https://github.com/AD-Vega/rtl-power-fftw)\n\nAnother alternative for RTL-SDR is\n`rtl_power_fftw `_ which has various\nbenefits over ``rtl_power``. E.g. better FFT performance (thanks to\nuse of ``fftw`` library) and possibility to use much shorter acquisition time\nfor more real-time continuous measurement (minimum interval in original\n``rtl_power`` is 1 second, but in ``rtl_power_fftw`` you are only limited\nby number of frequency hops).\n\nHackRF backends\n***************\n\n- hackrf_sweep (https://github.com/mossmann/hackrf)\n\n``hackrf_sweep`` backend enables wideband spectrum monitoring by rapidly retuning the radio\nwithout requiring individual tuning requests from the host computer. This allows unprecedented\nsweep rate of 8 GHz per second.\n\nUsage\n-----\n\nStart QSpectrumAnalyzer by running ``qspectrumanalyzer``.\n\nYou can choose which backend you want to use in *File* -> *Settings*\n(or *Application menu* -> *Preferences* on Mac OS X), default is\n``soapy_power``. Sample rate, path to backend executable and additional\nbackend parameters can be also manually specified there. You can also\nset waterfall plot history size. Default is 100 lines, be aware that\nreally large sweeps (with a lot of bins) would require a lot of system\nmemory, so don't make this number too big.\n\nControls should be intuitive, but if you want consistent results, you should\nturn off automatic gain control (set gain to some fixed number) and also set\ncrop to 20% or more. For finding out ppm correction factor for your rtl-sdr\nstick, use `kalibrate-rtl `_.\n\nYou can move and zoom plot with mouse, change plot settings or export plots\nfrom right-click menu. Waterfall plot black/white levels and color lookup\ntable can be changed in mini-histogram widget (on *Levels* tab).\n\nInstallation\n------------\n\nArch Linux:\n***********\n\nStable version:\n::\n\n git clone https://aur.archlinux.org/qspectrumanalyzer.git\n cd qspectrumanalyzer\n makepkg -sri\n\nGit master branch:\n::\n\n git clone https://aur.archlinux.org/qspectrumanalyzer-git.git\n cd qspectrumanalyzer-git\n makepkg -sri\n\nOr simply use `pacaur `_ (or any other AUR helper)\nwhich will also automatically install all QSpectrumAnalyzer dependencies:\n::\n\n pacaur -S qspectrumanalyzer\n pacaur -S qspectrumanalyzer-git\n\nUbuntu:\n*******\n::\n\n # Add SoapySDR PPA to your system\n sudo add-apt-repository -y ppa:myriadrf/drivers\n\n # Update list of packages\n sudo apt-get update\n\n # Install basic dependencies\n sudo apt-get install python3-pip python3-pyqt5 python3-numpy python3-scipy soapysdr python3-soapysdr\n\n # Install SoapySDR drivers for your hardware (e.g. RTL-SDR, Airspy, HackRF, LimeSDR, etc.)\n sudo apt-get install soapysdr-module-rtlsdr soapysdr-module-airspy soapysdr-module-hackrf soapysdr-module-lms7\n\n # Install QSpectrumAnalyzer\n sudo pip3 install qspectrumanalyzer\n\nWarning! ``pip`` will install packages system-wide by default, but you\nshould always use your distribution package manager for this.\n\nYou can install it locally only for your current user by running this (without ``sudo``):\n::\n\n pip3 install --user qspectrumanalyzer\n\nExecutables will be then placed in ``~/.local/bin`` directory, you can add it to your\nPATH in ``~/.bashrc``.\n\nIf you want to install QSpectrumAnalyzer directly from Git master branch, you can use this procedure:\n::\n\n git clone https://github.com/xmikos/qspectrumanalyzer.git\n cd qspectrumanalyzer\n pip3 install --user .\n\nTodo:\n-----\n\n- show scan progress\n- allow setting LNB LO frequency\n- save & load FFT history (allow big waterfall plot saved to file)\n- automatic peak detection / highlighting\n- display average noise level\n- frequency markers / bookmarks with notes (even importing / exporting .csv file with\n predefined channels, etc.)\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/xmikos/qspectrumanalyzer", "keywords": "", "license": "GNU GPLv3", "maintainer": "", "maintainer_email": "", "name": "QSpectrumAnalyzer", "package_url": "https://pypi.org/project/QSpectrumAnalyzer/", "platform": "", "project_url": "https://pypi.org/project/QSpectrumAnalyzer/", "project_urls": { "Homepage": "https://github.com/xmikos/qspectrumanalyzer" }, "release_url": "https://pypi.org/project/QSpectrumAnalyzer/2.1.0/", "requires_dist": null, "requires_python": "", "summary": "Spectrum analyzer for multiple SDR platforms (PyQtGraph based GUI for soapy_power, rx_power, rtl_power, hackrf_sweep and other backends)", "version": "2.1.0" }, "last_serial": 2721105, "releases": { "1.1": [ { "comment_text": "", "digests": { "md5": "be19af61322ca2978bf6dc7cbdcfe894", "sha256": "1e4dc58ad376e1fdd0ca09b2aa1c4a9cd0474bed8333010ab1601a48bda1e617" }, "downloads": -1, "filename": "QSpectrumAnalyzer-1.1.tar.gz", "has_sig": false, "md5_digest": "be19af61322ca2978bf6dc7cbdcfe894", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23761, "upload_time": "2015-04-24T14:41:18", "url": "https://files.pythonhosted.org/packages/9d/a8/c9eaa82cbe91bee72b244cf4f380797ad2822feb9e5442307d8d49e94b52/QSpectrumAnalyzer-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "fd0511ea90ba4b848c2eb1c4ccb7b448", "sha256": "d3f5dfaa846beb402d8f402f38c79f174815e11a1a062bd4ea7dbd581758e53e" }, "downloads": -1, "filename": "QSpectrumAnalyzer-1.1.1.tar.gz", "has_sig": false, "md5_digest": "fd0511ea90ba4b848c2eb1c4ccb7b448", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29050, "upload_time": "2015-04-26T20:20:09", "url": "https://files.pythonhosted.org/packages/21/c8/7e6346e56539bc001e405ff88becf14abbf6c77334a6d5864b3d684b1070/QSpectrumAnalyzer-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "a34780f34f93ae3842e9e439b4797ead", "sha256": "8c4057291bade021eeacad766c14bac81b83ac2415a8c8e98c8ee056619af12c" }, "downloads": -1, "filename": "QSpectrumAnalyzer-1.2.0.tar.gz", "has_sig": false, "md5_digest": "a34780f34f93ae3842e9e439b4797ead", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30794, "upload_time": "2015-12-10T00:54:12", "url": "https://files.pythonhosted.org/packages/62/04/6d43fee1f732e69ffbe373f1843d1577df64ea6689b70ce57771e92dff5b/QSpectrumAnalyzer-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "f5c73e203457951aaf5842f4b5f67d83", "sha256": "fc533c56460818af6d2db65cd979cad55ab49c5c1037ea61cf68995a4b7bdf21" }, "downloads": -1, "filename": "QSpectrumAnalyzer-1.3.0.tar.gz", "has_sig": false, "md5_digest": "f5c73e203457951aaf5842f4b5f67d83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33364, "upload_time": "2015-12-14T01:26:48", "url": "https://files.pythonhosted.org/packages/d5/54/5a062009911873180a52b5a5395a7d0b0c3d51ab0821ed1a74bcc7414252/QSpectrumAnalyzer-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "86540ac736d9867de73dc19c7ef90387", "sha256": "b8de4a4cb17cab9168c49aa7d71929f59e329934c2367e816973b1c61b87e3da" }, "downloads": -1, "filename": "QSpectrumAnalyzer-1.4.0.tar.gz", "has_sig": false, "md5_digest": "86540ac736d9867de73dc19c7ef90387", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39548, "upload_time": "2016-05-17T00:56:24", "url": "https://files.pythonhosted.org/packages/9b/23/ea4cdfdd37e8a6301297e43c90df709de55a2a69ba9a6bdbea12d118949a/QSpectrumAnalyzer-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "8f4d0d34ec885e8cc4e517ad26f33538", "sha256": "6d848dd643aa3802b7f6c09229d5a94b528f44c7a3e26e63aab9d1578742d734" }, "downloads": -1, "filename": "QSpectrumAnalyzer-1.5.0.tar.gz", "has_sig": false, "md5_digest": "8f4d0d34ec885e8cc4e517ad26f33538", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47172, "upload_time": "2017-03-10T16:59:55", "url": "https://files.pythonhosted.org/packages/46/fd/b53d64a49fe4afe12ff79d4895aaad953c1ed78caec397eba69a43e56351/QSpectrumAnalyzer-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "88b05fed65619c6e398e9f424376bfe9", "sha256": "36c731f2044f93f818e908f2565194b3d97b1c7d81268fa8966d978ed71c7c36" }, "downloads": -1, "filename": "QSpectrumAnalyzer-1.6.0.tar.gz", "has_sig": false, "md5_digest": "88b05fed65619c6e398e9f424376bfe9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47632, "upload_time": "2017-03-13T16:47:45", "url": "https://files.pythonhosted.org/packages/05/57/d46ca98f55894634e601814c5061e2f4ef95fd94cfc176643866fff6c8db/QSpectrumAnalyzer-1.6.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "36cf6814b14c976e2de7c92d0c17cb54", "sha256": "78ca125a36c8ff3fda15a3f1a7c7b46d8ac461fe7dac2263b33b4333391c3bf7" }, "downloads": -1, "filename": "QSpectrumAnalyzer-2.0.0.tar.gz", "has_sig": false, "md5_digest": "36cf6814b14c976e2de7c92d0c17cb54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47707, "upload_time": "2017-03-17T14:16:41", "url": "https://files.pythonhosted.org/packages/fb/eb/c807d7360e290145418bd64eee310fbb4888f54e707111f8e8609845734e/QSpectrumAnalyzer-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "3bed0be4d4609d27613331d0fb85e8dd", "sha256": "c042dc2530ee96052ff54a883c4dd4c59fb553dfd1d3a84a2a639f4fee4714ae" }, "downloads": -1, "filename": "QSpectrumAnalyzer-2.1.0.tar.gz", "has_sig": false, "md5_digest": "3bed0be4d4609d27613331d0fb85e8dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49137, "upload_time": "2017-03-21T16:48:20", "url": "https://files.pythonhosted.org/packages/b6/74/cda53cf28eb5325b8fb63f0e5f0ce77945ea276836e40f65cceed55ea4f9/QSpectrumAnalyzer-2.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3bed0be4d4609d27613331d0fb85e8dd", "sha256": "c042dc2530ee96052ff54a883c4dd4c59fb553dfd1d3a84a2a639f4fee4714ae" }, "downloads": -1, "filename": "QSpectrumAnalyzer-2.1.0.tar.gz", "has_sig": false, "md5_digest": "3bed0be4d4609d27613331d0fb85e8dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49137, "upload_time": "2017-03-21T16:48:20", "url": "https://files.pythonhosted.org/packages/b6/74/cda53cf28eb5325b8fb63f0e5f0ce77945ea276836e40f65cceed55ea4f9/QSpectrumAnalyzer-2.1.0.tar.gz" } ] }