All Projects → pysdr → Pysdr

pysdr / Pysdr

Licence: gpl-3.0
A guide for using Python as a software-defined radio (SDR) framework, for extremely rapid development of SDR apps/research with beautiful GUIs

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pysdr

Noaa Apt
NOAA APT weather satellite image decoder, for Linux, Windows, RPi 2+ and OSX
Stars: ✭ 257 (+328.33%)
Mutual labels:  dsp, sdr, rtl-sdr
Airspy Fmradion
Software decoder for FM/AM broadcast radio with AirSpy R2 / Mini, Airspy HF+, and RTL-SDR
Stars: ✭ 59 (-1.67%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
urh
Universal Radio Hacker: Investigate Wireless Protocols Like A Boss
Stars: ✭ 9,060 (+15000%)
Mutual labels:  wireless, sdr, rtl-sdr
Centsdr
CentSDR: tiny handheld standalone software defined receiver with LCD display.
Stars: ✭ 76 (+26.67%)
Mutual labels:  dsp, sdr, software-defined-radio
RTLSDR-Airband
Multichannel AM/NFM demodulator
Stars: ✭ 487 (+711.67%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
Wavesdr
macOS native desktop Software Defined Radio app
Stars: ✭ 144 (+140%)
Mutual labels:  dsp, sdr, rtl-sdr
Btle
Bluetooth Low Energy (BLE) packet sniffer and transmitter for both standard and non standard (raw bit) based on Software Defined Radio (SDR).
Stars: ✭ 411 (+585%)
Mutual labels:  dsp, sdr, software-defined-radio
Soapy power
Obtain power spectrum from SoapySDR devices (RTL-SDR, Airspy, SDRplay, HackRF, bladeRF, USRP, LimeSDR, etc.)
Stars: ✭ 88 (+46.67%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
Gnss Sdr
GNSS-SDR, an open-source software-defined GNSS receiver
Stars: ✭ 801 (+1235%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
ScratchRadio
Educational software for use with the LimeSDR platform
Stars: ✭ 64 (+6.67%)
Mutual labels:  dsp, sdr, software-defined-radio
Limesdr workshop
Intro to software-defined radio with LimeSDR workshop
Stars: ✭ 68 (+13.33%)
Mutual labels:  dsp, sdr, wireless
Qspectrumanalyzer
Spectrum analyzer for multiple SDR platforms (PyQtGraph based GUI for soapy_power, hackrf_sweep, rtl_power, rx_power and other backends)
Stars: ✭ 677 (+1028.33%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
Gr Adsb
GNU Radio OOT module for demodulating and decoding ADS-B packets
Stars: ✭ 61 (+1.67%)
Mutual labels:  dsp, sdr, wireless
Gnuradio
GNU Radio – the Free and Open Software Radio Ecosystem
Stars: ✭ 3,297 (+5395%)
Mutual labels:  dsp, sdr, wireless
Dumpvdl2
VDL Mode 2 message decoder and protocol analyzer
Stars: ✭ 100 (+66.67%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
composable-sdr
SDR DSP utilities embedded in Haskell
Stars: ✭ 26 (-56.67%)
Mutual labels:  dsp, sdr, software-defined-radio
newsched
The GNU Radio 4.0 Runtime Proof Of Concept
Stars: ✭ 19 (-68.33%)
Mutual labels:  dsp, wireless, sdr
RTLion
Multipurpose RTL-SDR Framework for RTL2832 based DVB-T receivers
Stars: ✭ 88 (+46.67%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
Openwebrx
Open source, multi-user SDR receiver software with a web interface
Stars: ✭ 813 (+1255%)
Mutual labels:  sdr, rtl-sdr, software-defined-radio
Localradio
📻 LocalRadio is "Radio for Cord-Cutters" – a Software-Defined Radio (SDR) app for your Mac and mobile devices. With an inexpensive RTL-SDR USB device, LocalRadio provides a casual, home-based radio listening experience for your favorite local frequencies - FM broadcasts/free music/news/sports/weather/public safety & aviation scanner/etc.
Stars: ✭ 269 (+348.33%)
Mutual labels:  sdr, rtl-sdr

Summary

A "guide" for using Python as a software-defined radio (SDR) framework, with emphasis on extremely rapid development of SDR apps. This can be achieved through utilization of mature 3rd party packages/libraries. High sample rate performance is achieved via efficient hardware drivers and functions (e.g. using NumPy which relies on BLAS and LAPACK for efficient linear algebra computations and utilizes SIMD for vector operations).

PyQt5, including PyQtGraph, is used for creating pretty and high-refresh-rate GUIs.

VOLK with python wrappers can be used as a faster alternative to numpy.

Install Guide

As of late 2018, UHD's Python API is too new to be included in the UHD packaged with Ubuntu, so we will be installing it from source. Hopefully it will get packaged soon, which will make the steps below way shorter.

This guide requires using Ubuntu 18, mainly because the Boost packaged with Ubuntu 16 and 14 is several years old. In order to use these older distros you probably have to install Boost from source.

Before we start it's best you don't have UHD installed at the system level, so do sudo apt-get remove libuhd* and sudo apt-get remove uhd-host

We are going to install UHD, PyQT5, pyqtgraph, and all prereqs in an isolate python virtual evironment (not to be confused with a VM), which will let us blow away installs by just removing one directory, and make sure we don't mess up anything else installed on this system.

  • sudo apt-get install python3-pip git libboost-all-dev
  • cd ~
  • sudo pip3 install virtualenv (create the python virtual environment)
  • virtualenv -p python3 python_uhd_install (makes sure python3 is used)
  • cd python_uhd_install
  • echo "export LD_LIBRARY_PATH=\$VIRTUAL_ENV/lib/" >> bin/activate (adds lib to path)
  • . bin/activate
  • pip install numpy mako requests six pyqt5 pyqtgraph
  • mkdir src
  • cd src
  • git clone https://github.com/EttusResearch/uhd.git (we will be using master)
  • cd uhd/host
  • mkdir build
  • cd build
  • The following cmake command forces use of python3, disabled a bunch of UHD components we dont need (otherwise it takes ages), and installs UHD to lib within our virtualenv directory
  • cmake -DENABLE_PYTHON3=ON -DENABLE_TESTS=OFF -DENABLE_RFNOC=OFF -DENABLE_C_API=OFF -DENABLE_X300=OFF -DENABLE_B100=OFF -DENABLE_USRP1=OFF -DENABLE_USRP2=OFF -DENABLE_N230=OFF -DENABLE_N300=OFF -DENABLE_E320=OFF -DENABLE_OCTOCLOCK=OFF -DENABLE_MANUAL=OFF -DCMAKE_INSTALL_PREFIX=~/python_uhd_install/ ..
  • The output of the above command should include "LibUHD - Python API", "USB", "Utils", and "B200" in the list of enabled components. If not, don't move on
  • make -j8 (build with 8 threads)
  • make install (no sudo!)
  • Plug in your B200/B210/B200mini
  • ~/python_uhd_install/lib/uhd/utils/uhd_images_downloader.py
  • uhd_find_devices
  • Hopefully it shows up. If it yells about permissions try sudo apt-get install libusb-1.0-0-dev
  • uhd_usrp_probe (gives more info about your USRP)
  • At this point we will clone pysdr and run a test app
  • cd ~ (you can clone pysdr wherever you want)
  • git clone https://github.com/pysdr/pysdr.git
  • cd pysdr
  • python usrp_demo.py
  • A window should pop up, and you should see the spectrum of the FM band. What displays is very similar to uhd_fft if you have ever used that.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].