├── .gitignore ├── .gitmodules ├── README.md ├── adsb ├── README.md ├── adsb.sh └── gr-air-modes.sh ├── ais ├── README.md └── ais.sh ├── files ├── archives │ ├── esound-common_0.2.41-11_all.deb │ ├── i965-va-driver_1.7.0-1_amd64.deb │ ├── liba52-0.7.4_0.7.4-18_amd64.deb │ ├── libaacs0_0.8.1-1_amd64.deb │ ├── libass5_0.13.1-1_amd64.deb │ ├── libaudiofile1_0.3.6-2ubuntu0.15.10.1_amd64.deb │ ├── libaudiofile1_0.3.6-2ubuntu0.16.04.1_amd64.deb │ ├── libavcodec-ffmpeg56_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb │ ├── libavformat-ffmpeg56_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb │ ├── libavutil-ffmpeg54_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb │ ├── libbdplus0_0.1.2-1_amd64.deb │ ├── libbluray1_1%3a0.9.2-2_amd64.deb │ ├── libbs2b0_3.1.0+dfsg-2.2_amd64.deb │ ├── libcrystalhd3_1%3a0.0~git20110715.fdd2f19-11build1_amd64.deb │ ├── libdca0_0.0.5-7build1_amd64.deb │ ├── libdirectfb-1.2-9_1.2.10.0-5.1_amd64.deb │ ├── libdvdnav4_5.0.3-1_amd64.deb │ ├── libdvdread4_5.0.3-1_amd64.deb │ ├── libenca0_1.18-1_amd64.deb │ ├── libesd0_0.2.41-11_amd64.deb │ ├── libfaad2_2.8.0~cvs20150510-1_amd64.deb │ ├── libgme0_0.6.0-3ubuntu0.16.04.1_amd64.deb │ ├── libgsm1_1.0.13-4_amd64.deb │ ├── libllvm4.0_1%3a4.0-1ubuntu1~16.04.2_amd64.deb │ ├── libmad0_0.15.1b-8ubuntu1_amd64.deb │ ├── libmodplug1_1%3a0.8.8.5-2_amd64.deb │ ├── libmp3lame0_3.99.5+repack1-9build1_amd64.deb │ ├── libmpeg2-4_0.5.1-7_amd64.deb │ ├── libmpg123-0_1.22.4-1_amd64.deb │ ├── libopenal-data_1%3a1.16.0-3_all.deb │ ├── libopenal1_1%3a1.16.0-3_amd64.deb │ ├── libopenjpeg5_1%3a1.5.2-3.1_amd64.deb │ ├── libpostproc-ffmpeg53_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb │ ├── libschroedinger-1.0-0_1.0.11-2.1build1_amd64.deb │ ├── libshine3_3.1.0-4_amd64.deb │ ├── libsnappy1v5_1.1.3-2_amd64.deb │ ├── libsoxr0_0.1.2-1_amd64.deb │ ├── libssh-gcrypt-4_0.6.3-4.3_amd64.deb │ ├── libswresample-ffmpeg1_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb │ ├── libswscale-ffmpeg3_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb │ ├── libtwolame0_0.3.13-1.2_amd64.deb │ ├── libva1_1.7.0-1_amd64.deb │ ├── libvdpau1_1.1.1-3ubuntu1_amd64.deb │ ├── libvorbisidec1_1.0.2+svn18153-0.2_amd64.deb │ ├── libx264-148_2%3a0.148.2643+git5c65704-1_amd64.deb │ ├── libx265-79_1.9-3_amd64.deb │ ├── libxvidcore4_2%3a1.3.4-1_amd64.deb │ ├── libzvbi-common_0.2.35-10_all.deb │ ├── libzvbi0_0.2.35-10_amd64.deb │ ├── mesa-vdpau-drivers_17.0.7-0ubuntu0.16.04.2_amd64.deb │ ├── mplayer_2%3a1.2.1-1ubuntu1_amd64.deb │ ├── va-driver-all_1.7.0-1_amd64.deb │ ├── vdpau-driver-all_1.1.1-3ubuntu1_amd64.deb │ └── vdpau-va-driver_0.7.4-5_amd64.deb ├── example.sbd.zip └── hackrf-2017.02.1.zip ├── flightgear-install.sh ├── fm ├── README.md └── fm_channelizer.grc ├── gnuradio └── README.md ├── images ├── gqrx_fm.png ├── hackrf_one.jpeg ├── pagermon.jpeg ├── portapack.jpg └── shortcuts.png ├── iridium ├── README.md └── iridium_install.sh ├── nrsc5 ├── README.md ├── nrsc5-example.sh └── nrsc5-install.sh ├── pocsag ├── README.md ├── pagermon.sh └── process.json └── portapack └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "iridium/gr-iridium"] 2 | path = iridium/gr-iridium 3 | url = https://github.com/muccc/gr-iridium 4 | [submodule "iridium/iridium-toolkit"] 5 | path = iridium/iridium-toolkit 6 | url = https://github.com/muccc/iridium-toolkit 7 | [submodule "iridium/liquid-dsp"] 8 | path = iridium/liquid-dsp 9 | url = https://github.com/jgaeddert/liquid-dsp 10 | [submodule "iridium/osmo-ir77"] 11 | path = iridium/osmo-ir77 12 | url = https://git.osmocom.org/osmo-ir77 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Software Defined Radio - live examples 2 | 3 | ![HackRF One](/images/hackrf_one.jpeg) 4 | 5 | ## Equipment List 6 | * [HackRF](https://greatscottgadgets.com/hackrf/) by (Great Scott Gadgets) 7 | * [RTL-SDR](https://en.wikipedia.org/wiki/List_of_software-defined_radios) (Wikipedia) 8 | * [Portapack](https://store.sharebrained.com/products/portapack-for-hackrf-one-kit) 9 | 10 | ## Scenarios 11 | 12 | This is a set of example scenarios you can use either as a stand-alone programme or with GNURadio and either a HackRF One or an RTL-SDR. 13 | 14 | All scripts included in this repository are intended to be run from the provided GNURadio LiveUSB. 15 | 16 | For better performance, more space, and permanency you should install Ubuntu 16.04 LTS directly onto a computer and run these scripts from there. 17 | 18 | After downloading (cloning) the repository, run any of the following commands within their respective folders. 19 | 20 | * [ADSB](/adsb/) 21 | * `$ sh adsb.sh` using [dump1090](https://github.com/antirez/dump1090) 22 | * `$ sh adsb_quit.sh` (to stop the dump1090 programme) 23 | * `$ sh gr-air-modes.sh` for GNURadio ADSB support 24 | * `$ sh flightgear-install.sh` to setup AIS/ADSB support for [http://www.flightgear.org](http://www.flightgear.org) 25 | * *warning* Flightgear is 500+ MB of downloads and will only work on a dedicated Ubuntu install. 26 | 27 | * [AIS](/ais/) 28 | * `$ sh ais.sh` 29 | 30 | * [FM Broadcasting](/fm/) 31 | * `$ sh afm_channelizer.sh` 32 | 33 | * [Iridium](/iridium/) 34 | * `$ sh iridium_install.sh` 35 | 36 | * [NRSC5](/nrsc5/) 37 | * `$ sh nrsc5.sh` 38 | 39 | * [POCSAG](/pocsag/) 40 | * `$ sh pagermon.sh` 41 | 42 | * [Using the GNURadio Live Environment](/gnuradio/) 43 | * GNURadio is the main Software Defined Radio tool 44 | 45 | * [Portapack](/portapack/) 46 | * The HackRF portability add-on 47 | * 'Havock' — custom mischief firmware 48 | 49 | ## Getting Starting 50 | 51 | The software in this repository is the start of an installation and demonstration package for getting started with Software Defined Radio on ships. 52 | 53 | It is meant to be used with the [GNU Radio Live SDR Environment](https://wiki.gnuradio.org/index.php/GNU_Radio_Live_SDR_Environment) 54 | 55 | The livesdr image is based on Ubuntu Linux 16.04.2 LTS, 64-bit edition, and has additional software installed beyond the defaults supplied by Ubuntu. 56 | 57 | note: _If you create a new USB stick with GNURadioLive on it, be sure that the USB stick is at least 8GB._ 58 | 59 | ### Pre-Installed SDR Hardware Drivers 60 | 61 | Drivers for these GNU Radio-compatible SDR peripherals have been pre-installed: 62 | 63 | - Ettus Research UHD release_003_009_006 64 | - Great Scott Gadgets HackRF products 65 | - Nuand bladeRF products 66 | - osmoSDR RTL-SDR driver 67 | - AirSpy 68 | 69 | Each of these provides its own set of utilities and files. Please consult the manufacturers' documentation for more information. 70 | 71 | ### Pre-Installed GNU Radio Applications 72 | 73 | There are many 3rd-party applications, demos, drivers, and block libraries produced by the GNU Radio community. Below is a list of pre-installed packages that highlight some of the diverse capabilities of GNU Radio: 74 | 75 | - gr-osmosdr, a set of blocks supporting various hardware SDRs and applications, and related dependencies 76 | - gr-fosphor, a GPU-accelerated real-time spectrum analyzer display 77 | - gqrx, a narrowband SDR receiver application by Alexandru Csete 78 | - GNSS-SDR, a fully software-based GPS, Galileo, and GLONASS real time receiver 79 | - gr-specest, an implementation of several spectral estimation algorithms 80 | - OpenLTE, an open source 3GPP LTE implementation 81 | - gr-nacl, wrapper blocks around NaCL encryption library 82 | - gr-acars2 83 | - gr-adsb, an ADS-B modem 84 | - gr-ais, an AIS modem 85 | - gr-ax25, AX25 86 | - gr-burst, a burst PSK modem 87 | - gr-cdma, a CDMA phy 88 | - gr-eventstream 89 | - gr-gsm, blocks and tools for receiving GSM transmissions 90 | - gr-ieee-80211, an IEEE 802.11a/g/p transceiver 91 | - gr-ldpc, an implementation of generic LDPC codecs 92 | - gr-lte, an implementation of a 3GPP LTE receiver 93 | - gr-mapper, extra symbol/bit mapping tools 94 | - gr-paint, spectrum painting block 95 | - gr-radar, the GNU Radio Radar Toolbox 96 | - gr-rds, an implementation of broadcast FM radio RDS reception 97 | - gr-specest, Spectrum estimation blocks 98 | 99 | 100 | ### Setup 101 | 102 | When attempting to capture a particular frequency it's important to have a [Passband Filter](https://en.wikipedia.org/wiki/Passband). 103 | 104 | Filters such as the MiniCircuits VBFZ-1690-S+ L-Band are used with [L band](https://en.wikipedia.org/wiki/L_band). 105 | 106 | Low energy signals can be amplified with a [Low Noise Amplifier](https://en.wikipedia.org/wiki/Low-noise_amplifier) such as the TQP3M9037-PCB LNA from Qorvo. Or the [LNA4ALL](http://lna4all.blogspot.ca/) from Adam. 107 | 108 | ### SDR - where to start? 109 | 110 | * Michael Ossmann's [Software Defined Radio with HackRF](https://greatscottgadgets.com/sdr/) video course is a great place to start 111 | * Adam's [YouTube test videos](https://www.youtube.com/user/9a4qv) for LNA/Filter experiments 112 | * Guided [tutorial](https://wiki.gnuradio.org/index.php/Guided_Tutorial_Introduction) in GNURadio Companion 113 | * GNURadio [tutorials](https://www.gnuradio.org/category/tutorial/) 114 | * [Signal identification guide](https://www.sigidwiki.com/wiki/Signal_Identification_Guide) 115 | 116 | ### Where to get help 117 | 118 | * GNURadio [email list](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio) 119 | * 120 | 121 | -------------------------------------------------------------------------------- /adsb/README.md: -------------------------------------------------------------------------------- 1 | # ADSB 2 | [ADSB](https://en.wikipedia.org/wiki/Automatic_dependent_surveillance_%E2%80%93_broadcast) 3 | 4 | # usage 5 | 6 | * [ADSB](/adsb/) 7 | * `$ sh adsb.sh` using [dump1090](https://github.com/antirez/dump1090) 8 | * `$ sh adsb_quit.sh` (to stop the dump1090 programme) 9 | * `$ sh gr-air-modes.sh` for GNURadio ADSB support 10 | * `$ sh flightgear-install.sh` to setup AIS/ADSB support for [http://www.flightgear.org](http://www.flightgear.org) 11 | * *warning* Flightgear is 500+ MB of downloads and will only work on a dedicated Ubuntu install. 12 | 13 | ## dump1090 14 | 15 | [dump1090](https://github.com/antirez/dump1090.git) is an ADSB decoder 16 | 17 | ## gr-air-modes && Flightgear 18 | 19 | ### gr-air-modes 20 | 21 | [gr-air-modes](https://github.com/bistromath/gr-air-modes) implements a software-defined radio receiver for Mode S 22 | transponder signals, including ADS-B reports from equipped aircraft. 23 | 24 | Interesting files and libraries included with the package: 25 | 26 | * apps/modes_rx: The main application. 27 | * apps/get_correlated_records.py: Demonstration program for computing 28 | multilaterated time error for two unsynchronized receiver stations. 29 | * lib/air_modes_int_and_dump.cc: Unused integrate-and-dump filter for 30 | demodulating Mode S waveforms. 31 | * lib/air_modes_preamble.cc: Mode S preamble detector. 32 | * lib/air_modes_slicer.cc: Bit slicer (1 vs 0) and packet aggregator. 33 | * lib/modes_crc.cc: Computes parity check for Mode S packets. 34 | * python/altitude.py: Mode S altitude encoding/decoding routines 35 | * python/cpr.py: Compact Position Reporting encoder/decoder 36 | * python/modes_flightgear.py: FlightGear (open-source flight simulator) 37 | plugin which inserts live traffic into the simulator via the 38 | multiplayer interface. 39 | * python/mlat.py: Multilateration algorithms for determining position of 40 | non-ADS-B-equipped or non-cooperative aircraft using multiple 41 | receivers. 42 | * python/modes_kml.py: KML output plugin for Google Earth. 43 | * python/modes_parse.py: Mode S/ADS-B packet parsing routines. 44 | * python/modes_print.py: Human-readable printout plugin 45 | * python/modes_raw_server.py: UDP output plugin for raw data output 46 | * python/modes_sbs1.py: SBS-1-compatible output plugin for use with 47 | Virtual Radar Server, PlanePlotter, or other compatible programs. 48 | * python/modes_sql.py: SQLite interface for storing reports in a 49 | database. 50 | * python/Quaternion.py: Quaternion library used to calculate 51 | orientation of aircraft for FlightGear plugin. 52 | 53 | 54 | # Flightgear 55 | 56 | [http://www.flightgear.org/](http://www.flightgear.org/) 57 | 58 | FlightGear is an open-source flight simulator. It supports Windows, Mac, and Linux. 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /adsb/adsb.sh: -------------------------------------------------------------------------------- 1 | # ADSB presentation in Firefox 2 | cd ~ 3 | if [ ! -d "dump1090" ]; then 4 | git clone https://github.com/antirez/dump1090.git 5 | cd dump1090 6 | make 7 | fi 8 | 9 | cd ~/dump1090 10 | 11 | case "$(pidof dump1090 | wc -w)" in 12 | 13 | 0) echo "Starting dump1090" 14 | ./dump1090 --net >/dev/null 2>&1 & 15 | firefox localhost:8080 >/dev/null 2>&1 & 16 | ;; 17 | 1) echo "Killing dump1090" 18 | pkill -9 dump1090 19 | pkill -9 firefox 20 | ;; 21 | esac 22 | -------------------------------------------------------------------------------- /adsb/gr-air-modes.sh: -------------------------------------------------------------------------------- 1 | # ADSB presentation in Flightgear 2 | 3 | if [ ! -d "gr-air-modes" ]; then 4 | cd ~ 5 | git clone https://github.com/bistromath/gr-air-modes 6 | cd gr-air-modes 7 | mkdir build 8 | cd build 9 | cmake ../ 10 | make 11 | sudo make install 12 | sudo ldconfig 13 | fi 14 | 15 | # case "$(pidof mode_rx | wc -w)" in 16 | 17 | # 0) echo "Starting Flightgear" 18 | # ./dump1090 --net >/dev/null 2>&1 & 19 | # firefox localhost:8080 >/dev/null 2>&1 & 20 | # ;; 21 | # 1) echo "Killing dump1090" 22 | # pkill -9 dump1090 23 | # pkill -9 firefox 24 | # ;; 25 | # esac -------------------------------------------------------------------------------- /ais/README.md: -------------------------------------------------------------------------------- 1 | # AIS 2 | 3 | _"The automatic identification system (AIS) is an automatic tracking system used on ships and by vessel traffic services (VTS). When satellites are used to detect AIS signatures, the term Satellite-AIS (S-AIS) is used. AIS information supplements marine radar, which continues to be the primary method of collision avoidance for water transport."_ — [Automatic Identification System](https://en.wikipedia.org/wiki/Automatic_identification_system) 4 | 5 | [rtl_ais](https://github.com/dgiardini/rtl-ais), a simple AIS tuner and generic dual-frequency FM demodulator 6 | OS: Linux, Windows, OSX. 7 | Hardware: RTLSDR 8 | 9 | Run: 10 | `$ sh /ais.sh` 11 | 12 | This script will download and install the `rtl-ais`, opencpn, and necessary libraries. (88 MB total downloads) 13 | 14 | There are a range of AIS decoders to experiment with. 15 | - [gnuais](http://gnuais.sourceforge.net/) 16 | - [AISdeco2](http://xdeco.org/) 17 | -------------------------------------------------------------------------------- /ais/ais.sh: -------------------------------------------------------------------------------- 1 | # AIS 2 | 3 | if [ $(dpkg-query -W -f='${Status}' rtl-sdr 2>/dev/null | grep -c "ok installed") -eq 0 ]; 4 | then 5 | sudo apt-get install rtl-sdr libusb-1.0-0-dev; 6 | fi 7 | 8 | if [ $(dpkg-query -W -f='${Status}' opencpn 2>/dev/null | grep -c "ok installed") -eq 0 ]; 9 | then 10 | sudo add-apt-repository ppa:opencpn/opencpn -y 11 | sudo apt-get update 12 | sudo apt-get install opencpn -y # Getting 88 MB of files(!) 13 | # TODO: create local repository for apt packages 14 | fi 15 | 16 | if [ ! -d "$HOME/rtl-ais" ]; then 17 | cd $HOME 18 | git clone https://github.com/dgiardini/rtl-ais 19 | cd $HOME/rtl-ais 20 | make 21 | fi 22 | 23 | 24 | # $HOME/rtl_ais -p 0 -R on -n -h 127.0.0.1 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /files/archives/esound-common_0.2.41-11_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/esound-common_0.2.41-11_all.deb -------------------------------------------------------------------------------- /files/archives/i965-va-driver_1.7.0-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/i965-va-driver_1.7.0-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/liba52-0.7.4_0.7.4-18_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/liba52-0.7.4_0.7.4-18_amd64.deb -------------------------------------------------------------------------------- /files/archives/libaacs0_0.8.1-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libaacs0_0.8.1-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libass5_0.13.1-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libass5_0.13.1-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libaudiofile1_0.3.6-2ubuntu0.15.10.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libaudiofile1_0.3.6-2ubuntu0.15.10.1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libaudiofile1_0.3.6-2ubuntu0.16.04.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libaudiofile1_0.3.6-2ubuntu0.16.04.1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libavcodec-ffmpeg56_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libavcodec-ffmpeg56_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libavformat-ffmpeg56_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libavformat-ffmpeg56_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libavutil-ffmpeg54_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libavutil-ffmpeg54_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libbdplus0_0.1.2-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libbdplus0_0.1.2-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libbluray1_1%3a0.9.2-2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libbluray1_1%3a0.9.2-2_amd64.deb -------------------------------------------------------------------------------- /files/archives/libbs2b0_3.1.0+dfsg-2.2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libbs2b0_3.1.0+dfsg-2.2_amd64.deb -------------------------------------------------------------------------------- /files/archives/libcrystalhd3_1%3a0.0~git20110715.fdd2f19-11build1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libcrystalhd3_1%3a0.0~git20110715.fdd2f19-11build1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libdca0_0.0.5-7build1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libdca0_0.0.5-7build1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libdirectfb-1.2-9_1.2.10.0-5.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libdirectfb-1.2-9_1.2.10.0-5.1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libdvdnav4_5.0.3-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libdvdnav4_5.0.3-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libdvdread4_5.0.3-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libdvdread4_5.0.3-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libenca0_1.18-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libenca0_1.18-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libesd0_0.2.41-11_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libesd0_0.2.41-11_amd64.deb -------------------------------------------------------------------------------- /files/archives/libfaad2_2.8.0~cvs20150510-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libfaad2_2.8.0~cvs20150510-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libgme0_0.6.0-3ubuntu0.16.04.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libgme0_0.6.0-3ubuntu0.16.04.1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libgsm1_1.0.13-4_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libgsm1_1.0.13-4_amd64.deb -------------------------------------------------------------------------------- /files/archives/libllvm4.0_1%3a4.0-1ubuntu1~16.04.2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libllvm4.0_1%3a4.0-1ubuntu1~16.04.2_amd64.deb -------------------------------------------------------------------------------- /files/archives/libmad0_0.15.1b-8ubuntu1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libmad0_0.15.1b-8ubuntu1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libmodplug1_1%3a0.8.8.5-2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libmodplug1_1%3a0.8.8.5-2_amd64.deb -------------------------------------------------------------------------------- /files/archives/libmp3lame0_3.99.5+repack1-9build1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libmp3lame0_3.99.5+repack1-9build1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libmpeg2-4_0.5.1-7_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libmpeg2-4_0.5.1-7_amd64.deb -------------------------------------------------------------------------------- /files/archives/libmpg123-0_1.22.4-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libmpg123-0_1.22.4-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libopenal-data_1%3a1.16.0-3_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libopenal-data_1%3a1.16.0-3_all.deb -------------------------------------------------------------------------------- /files/archives/libopenal1_1%3a1.16.0-3_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libopenal1_1%3a1.16.0-3_amd64.deb -------------------------------------------------------------------------------- /files/archives/libopenjpeg5_1%3a1.5.2-3.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libopenjpeg5_1%3a1.5.2-3.1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libpostproc-ffmpeg53_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libpostproc-ffmpeg53_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libschroedinger-1.0-0_1.0.11-2.1build1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libschroedinger-1.0-0_1.0.11-2.1build1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libshine3_3.1.0-4_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libshine3_3.1.0-4_amd64.deb -------------------------------------------------------------------------------- /files/archives/libsnappy1v5_1.1.3-2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libsnappy1v5_1.1.3-2_amd64.deb -------------------------------------------------------------------------------- /files/archives/libsoxr0_0.1.2-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libsoxr0_0.1.2-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libssh-gcrypt-4_0.6.3-4.3_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libssh-gcrypt-4_0.6.3-4.3_amd64.deb -------------------------------------------------------------------------------- /files/archives/libswresample-ffmpeg1_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libswresample-ffmpeg1_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libswscale-ffmpeg3_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libswscale-ffmpeg3_7%3a2.8.11-0ubuntu0.16.04.1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libtwolame0_0.3.13-1.2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libtwolame0_0.3.13-1.2_amd64.deb -------------------------------------------------------------------------------- /files/archives/libva1_1.7.0-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libva1_1.7.0-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libvdpau1_1.1.1-3ubuntu1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libvdpau1_1.1.1-3ubuntu1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libvorbisidec1_1.0.2+svn18153-0.2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libvorbisidec1_1.0.2+svn18153-0.2_amd64.deb -------------------------------------------------------------------------------- /files/archives/libx264-148_2%3a0.148.2643+git5c65704-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libx264-148_2%3a0.148.2643+git5c65704-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libx265-79_1.9-3_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libx265-79_1.9-3_amd64.deb -------------------------------------------------------------------------------- /files/archives/libxvidcore4_2%3a1.3.4-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libxvidcore4_2%3a1.3.4-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/libzvbi-common_0.2.35-10_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libzvbi-common_0.2.35-10_all.deb -------------------------------------------------------------------------------- /files/archives/libzvbi0_0.2.35-10_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/libzvbi0_0.2.35-10_amd64.deb -------------------------------------------------------------------------------- /files/archives/mesa-vdpau-drivers_17.0.7-0ubuntu0.16.04.2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/mesa-vdpau-drivers_17.0.7-0ubuntu0.16.04.2_amd64.deb -------------------------------------------------------------------------------- /files/archives/mplayer_2%3a1.2.1-1ubuntu1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/mplayer_2%3a1.2.1-1ubuntu1_amd64.deb -------------------------------------------------------------------------------- /files/archives/va-driver-all_1.7.0-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/va-driver-all_1.7.0-1_amd64.deb -------------------------------------------------------------------------------- /files/archives/vdpau-driver-all_1.1.1-3ubuntu1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/vdpau-driver-all_1.1.1-3ubuntu1_amd64.deb -------------------------------------------------------------------------------- /files/archives/vdpau-va-driver_0.7.4-5_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/archives/vdpau-va-driver_0.7.4-5_amd64.deb -------------------------------------------------------------------------------- /files/example.sbd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/example.sbd.zip -------------------------------------------------------------------------------- /files/hackrf-2017.02.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/files/hackrf-2017.02.1.zip -------------------------------------------------------------------------------- /flightgear-install.sh: -------------------------------------------------------------------------------- 1 | # Install the Flightgear package 2 | if [ $(dpkg-query -W -f='${Status}' flightgear 2>/dev/null | grep -c "ok installed") -eq 0 ]; 3 | then 4 | sudo apt-get update; 5 | sudo apt-get install flightgear -y; 6 | fi 7 | 8 | # TODO 9 | # Setup AIS and ADSB selectors and the relevant software to feed into Flightgear -------------------------------------------------------------------------------- /fm/README.md: -------------------------------------------------------------------------------- 1 | # FM 2 | 3 | _"FM broadcasting is a method of radio broadcasting using frequency modulation (FM) technology. Invented in 1933 by American engineer Edwin Armstrong, it is used worldwide to provide high-fidelity sound over broadcast radio."_ — [FM Broadcasting](https://en.wikipedia.org/wiki/FM_broadcasting) 4 | 5 | _"In communications, a system is wideband when the message bandwidth significantly exceeds the coherence bandwidth of the channel. Some communication links have such a high data rate that they are forced to use a wide bandwidth; other links may have relatively low data rates, but deliberately use a wider bandwidth than "necessary" for that data rate in order to gain other advantages"_ — [FM Wideband](https://en.wikipedia.org/wiki/Wideband) 6 | 7 | ## GQRX 8 | 9 | ![gqrx](/images/gqrx_fm.png) 10 | 11 | [Gqrx](http://gqrx.dk/) is an open source software defined radio receiver (SDR) powered by the GNU Radio and the Qt graphical toolkit. 12 | 13 | Gqrx is free software, licensed under the GNU General Public license allowing anyone to fix and modify it for their use. Gqrx offers features like: 14 | 15 | * Discover devices attached to the computer. 16 | * Process I/Q data from the supported devices. 17 | * Change frequency, gain and apply various corrections (frequency, I/Q balance). 18 | * AM, SSB, CW, FM-N and FM-W (mono and stereo) demodulators. 19 | * Special FM mode for NOAA APT. 20 | * Variable band pass filter. 21 | * AGC, squelch and noise blankers. 22 | * FFT plot and waterfall. 23 | * Record and playback audio to / from WAV file. 24 | * Record and playback raw baseband data. 25 | * Spectrum analyzer mode where all signal processing is disabled. 26 | * Basic remote control through TCP connection. 27 | * Streaming audio output over UDP. -------------------------------------------------------------------------------- /fm/fm_channelizer.grc: -------------------------------------------------------------------------------- 1 | 2 | 3 | Wed Mar 19 19:19:28 2014 4 | 5 | options 6 | 7 | id 8 | fm_channelizer 9 | 10 | 11 | _enabled 12 | True 13 | 14 | 15 | title 16 | 17 | 18 | 19 | author 20 | 21 | 22 | 23 | description 24 | 25 | 26 | 27 | window_size 28 | 1280, 1024 29 | 30 | 31 | generate_options 32 | qt_gui 33 | 34 | 35 | category 36 | Custom 37 | 38 | 39 | run_options 40 | prompt 41 | 42 | 43 | run 44 | True 45 | 46 | 47 | max_nouts 48 | 0 49 | 50 | 51 | realtime_scheduling 52 | 53 | 54 | 55 | _coordinate 56 | (10, 10) 57 | 58 | 59 | _rotation 60 | 0 61 | 62 | 63 | 64 | variable 65 | 66 | id 67 | audio_rate 68 | 69 | 70 | _enabled 71 | True 72 | 73 | 74 | value 75 | 44.1e3 76 | 77 | 78 | _coordinate 79 | (701, 438) 80 | 81 | 82 | _rotation 83 | 0 84 | 85 | 86 | 87 | variable 88 | 89 | id 90 | address 91 | 92 | 93 | _enabled 94 | True 95 | 96 | 97 | value 98 | "" 99 | 100 | 101 | _coordinate 102 | (173, 11) 103 | 104 | 105 | _rotation 106 | 0 107 | 108 | 109 | 110 | variable 111 | 112 | id 113 | ch_rate 114 | 115 | 116 | _enabled 117 | True 118 | 119 | 120 | value 121 | 200e3 122 | 123 | 124 | _coordinate 125 | (248, 11) 126 | 127 | 128 | _rotation 129 | 0 130 | 131 | 132 | 133 | variable 134 | 135 | id 136 | gain 137 | 138 | 139 | _enabled 140 | True 141 | 142 | 143 | value 144 | 15 145 | 146 | 147 | _coordinate 148 | (329, 11) 149 | 150 | 151 | _rotation 152 | 0 153 | 154 | 155 | 156 | variable 157 | 158 | id 159 | channels 160 | 161 | 162 | _enabled 163 | True 164 | 165 | 166 | value 167 | 100 168 | 169 | 170 | _coordinate 171 | (399, 12) 172 | 173 | 174 | _rotation 175 | 0 176 | 177 | 178 | 179 | variable 180 | 181 | id 182 | ch_bw 183 | 184 | 185 | _enabled 186 | True 187 | 188 | 189 | value 190 | 125e3 191 | 192 | 193 | _coordinate 194 | (480, 13) 195 | 196 | 197 | _rotation 198 | 0 199 | 200 | 201 | 202 | variable 203 | 204 | id 205 | ch_tb 206 | 207 | 208 | _enabled 209 | True 210 | 211 | 212 | value 213 | 100e3 214 | 215 | 216 | _coordinate 217 | (560, 13) 218 | 219 | 220 | _rotation 221 | 0 222 | 223 | 224 | 225 | variable 226 | 227 | id 228 | atten 229 | 230 | 231 | _enabled 232 | True 233 | 234 | 235 | value 236 | 60 237 | 238 | 239 | _coordinate 240 | (641, 13) 241 | 242 | 243 | _rotation 244 | 0 245 | 246 | 247 | 248 | variable 249 | 250 | id 251 | pfb_taps 252 | 253 | 254 | _enabled 255 | True 256 | 257 | 258 | value 259 | firdes.low_pass_2(1, samp_rate, ch_bw, ch_tb, atten, firdes.WIN_HANN) 260 | 261 | 262 | _coordinate 263 | (712, 13) 264 | 265 | 266 | _rotation 267 | 0 268 | 269 | 270 | 271 | variable 272 | 273 | id 274 | samp_rate 275 | 276 | 277 | _enabled 278 | True 279 | 280 | 281 | value 282 | 20e6 283 | 284 | 285 | _coordinate 286 | (204, 76) 287 | 288 | 289 | _rotation 290 | 0 291 | 292 | 293 | 294 | variable 295 | 296 | id 297 | center_freq 298 | 299 | 300 | _enabled 301 | True 302 | 303 | 304 | value 305 | 97.9e6 306 | 307 | 308 | _coordinate 309 | (293, 76) 310 | 311 | 312 | _rotation 313 | 0 314 | 315 | 316 | 317 | qtgui_freq_sink_x 318 | 319 | id 320 | qtgui_freq_sink_x_0 321 | 322 | 323 | _enabled 324 | True 325 | 326 | 327 | type 328 | complex 329 | 330 | 331 | name 332 | QT GUI Plot 333 | 334 | 335 | fftsize 336 | 4096 337 | 338 | 339 | wintype 340 | firdes.WIN_FLATTOP 341 | 342 | 343 | fc 344 | 0 345 | 346 | 347 | bw 348 | samp_rate 349 | 350 | 351 | autoscale 352 | False 353 | 354 | 355 | ymin 356 | -140 357 | 358 | 359 | ymax 360 | 10 361 | 362 | 363 | nconnections 364 | 1 365 | 366 | 367 | update_time 368 | 0.10 369 | 370 | 371 | gui_hint 372 | 0,0,1,2 373 | 374 | 375 | label1 376 | 377 | 378 | 379 | width1 380 | 1 381 | 382 | 383 | color1 384 | "blue" 385 | 386 | 387 | alpha1 388 | 1.0 389 | 390 | 391 | label2 392 | 393 | 394 | 395 | width2 396 | 1 397 | 398 | 399 | color2 400 | "red" 401 | 402 | 403 | alpha2 404 | 1.0 405 | 406 | 407 | label3 408 | 409 | 410 | 411 | width3 412 | 1 413 | 414 | 415 | color3 416 | "green" 417 | 418 | 419 | alpha3 420 | 1.0 421 | 422 | 423 | label4 424 | 425 | 426 | 427 | width4 428 | 1 429 | 430 | 431 | color4 432 | "black" 433 | 434 | 435 | alpha4 436 | 1.0 437 | 438 | 439 | label5 440 | 441 | 442 | 443 | width5 444 | 1 445 | 446 | 447 | color5 448 | "cyan" 449 | 450 | 451 | alpha5 452 | 1.0 453 | 454 | 455 | label6 456 | 457 | 458 | 459 | width6 460 | 1 461 | 462 | 463 | color6 464 | "magenta" 465 | 466 | 467 | alpha6 468 | 1.0 469 | 470 | 471 | label7 472 | 473 | 474 | 475 | width7 476 | 1 477 | 478 | 479 | color7 480 | "yellow" 481 | 482 | 483 | alpha7 484 | 1.0 485 | 486 | 487 | label8 488 | 489 | 490 | 491 | width8 492 | 1 493 | 494 | 495 | color8 496 | "dark red" 497 | 498 | 499 | alpha8 500 | 1.0 501 | 502 | 503 | label9 504 | 505 | 506 | 507 | width9 508 | 1 509 | 510 | 511 | color9 512 | "dark green" 513 | 514 | 515 | alpha9 516 | 1.0 517 | 518 | 519 | affinity 520 | 521 | 522 | 523 | _coordinate 524 | (459, 102) 525 | 526 | 527 | _rotation 528 | 0 529 | 530 | 531 | 532 | pfb_decimator_ccf 533 | 534 | id 535 | pfb_decimator_ccf_0 536 | 537 | 538 | _enabled 539 | True 540 | 541 | 542 | decim 543 | channels 544 | 545 | 546 | taps 547 | pfb_taps 548 | 549 | 550 | channel 551 | channel 552 | 553 | 554 | atten 555 | 100 556 | 557 | 558 | fft_rot 559 | True 560 | 561 | 562 | fft_filts 563 | True 564 | 565 | 566 | affinity 567 | 568 | 569 | 570 | minoutbuf 571 | 0 572 | 573 | 574 | maxoutbuf 575 | 0 576 | 577 | 578 | _coordinate 579 | (460, 215) 580 | 581 | 582 | _rotation 583 | 0 584 | 585 | 586 | 587 | analog_wfm_rcv 588 | 589 | id 590 | analog_wfm_rcv 591 | 592 | 593 | _enabled 594 | True 595 | 596 | 597 | quad_rate 598 | ch_rate 599 | 600 | 601 | audio_decimation 602 | int(ch_rate/audio_rate) 603 | 604 | 605 | affinity 606 | 607 | 608 | 609 | minoutbuf 610 | 0 611 | 612 | 613 | maxoutbuf 614 | 0 615 | 616 | 617 | _coordinate 618 | (319, 344) 619 | 620 | 621 | _rotation 622 | 0 623 | 624 | 625 | 626 | pfb_arb_resampler_xxx 627 | 628 | id 629 | pfb_arb_resampler_xxx_0 630 | 631 | 632 | _enabled 633 | True 634 | 635 | 636 | type 637 | fff 638 | 639 | 640 | rrate 641 | audio_rate/50000 642 | 643 | 644 | taps 645 | 646 | 647 | 648 | nfilts 649 | 32 650 | 651 | 652 | atten 653 | 100 654 | 655 | 656 | affinity 657 | 658 | 659 | 660 | minoutbuf 661 | 0 662 | 663 | 664 | maxoutbuf 665 | 0 666 | 667 | 668 | _coordinate 669 | (532, 328) 670 | 671 | 672 | _rotation 673 | 0 674 | 675 | 676 | 677 | blocks_multiply_const_vxx 678 | 679 | id 680 | blocks_multiply_const_vxx 681 | 682 | 683 | _enabled 684 | True 685 | 686 | 687 | type 688 | float 689 | 690 | 691 | const 692 | volume 693 | 694 | 695 | vlen 696 | 1 697 | 698 | 699 | affinity 700 | 701 | 702 | 703 | minoutbuf 704 | 0 705 | 706 | 707 | maxoutbuf 708 | 0 709 | 710 | 711 | _coordinate 712 | (396, 454) 713 | 714 | 715 | _rotation 716 | 0 717 | 718 | 719 | 720 | audio_sink 721 | 722 | id 723 | audio_sink 724 | 725 | 726 | _enabled 727 | True 728 | 729 | 730 | samp_rate 731 | int(audio_rate) 732 | 733 | 734 | device_name 735 | 736 | 737 | 738 | ok_to_block 739 | True 740 | 741 | 742 | num_inputs 743 | 1 744 | 745 | 746 | affinity 747 | 748 | 749 | 750 | _coordinate 751 | (573, 454) 752 | 753 | 754 | _rotation 755 | 0 756 | 757 | 758 | 759 | qtgui_freq_sink_x 760 | 761 | id 762 | qtgui_freq_sink_x_0_0 763 | 764 | 765 | _enabled 766 | True 767 | 768 | 769 | type 770 | complex 771 | 772 | 773 | name 774 | QT GUI Plot 775 | 776 | 777 | fftsize 778 | 1024 779 | 780 | 781 | wintype 782 | firdes.WIN_BLACKMAN_hARRIS 783 | 784 | 785 | fc 786 | 0 787 | 788 | 789 | bw 790 | samp_rate 791 | 792 | 793 | autoscale 794 | False 795 | 796 | 797 | ymin 798 | -140 799 | 800 | 801 | ymax 802 | 10 803 | 804 | 805 | nconnections 806 | 1 807 | 808 | 809 | update_time 810 | 0.10 811 | 812 | 813 | gui_hint 814 | 1,0,1,1 815 | 816 | 817 | label1 818 | 819 | 820 | 821 | width1 822 | 1 823 | 824 | 825 | color1 826 | "blue" 827 | 828 | 829 | alpha1 830 | 1.0 831 | 832 | 833 | label2 834 | 835 | 836 | 837 | width2 838 | 1 839 | 840 | 841 | color2 842 | "red" 843 | 844 | 845 | alpha2 846 | 1.0 847 | 848 | 849 | label3 850 | 851 | 852 | 853 | width3 854 | 1 855 | 856 | 857 | color3 858 | "green" 859 | 860 | 861 | alpha3 862 | 1.0 863 | 864 | 865 | label4 866 | 867 | 868 | 869 | width4 870 | 1 871 | 872 | 873 | color4 874 | "black" 875 | 876 | 877 | alpha4 878 | 1.0 879 | 880 | 881 | label5 882 | 883 | 884 | 885 | width5 886 | 1 887 | 888 | 889 | color5 890 | "cyan" 891 | 892 | 893 | alpha5 894 | 1.0 895 | 896 | 897 | label6 898 | 899 | 900 | 901 | width6 902 | 1 903 | 904 | 905 | color6 906 | "magenta" 907 | 908 | 909 | alpha6 910 | 1.0 911 | 912 | 913 | label7 914 | 915 | 916 | 917 | width7 918 | 1 919 | 920 | 921 | color7 922 | "yellow" 923 | 924 | 925 | alpha7 926 | 1.0 927 | 928 | 929 | label8 930 | 931 | 932 | 933 | width8 934 | 1 935 | 936 | 937 | color8 938 | "dark red" 939 | 940 | 941 | alpha8 942 | 1.0 943 | 944 | 945 | label9 946 | 947 | 948 | 949 | width9 950 | 1 951 | 952 | 953 | color9 954 | "dark green" 955 | 956 | 957 | alpha9 958 | 1.0 959 | 960 | 961 | affinity 962 | 963 | 964 | 965 | _coordinate 966 | (709, 207) 967 | 968 | 969 | _rotation 970 | 0 971 | 972 | 973 | 974 | qtgui_time_sink_x 975 | 976 | id 977 | qtgui_time_sink_x_0 978 | 979 | 980 | _enabled 981 | True 982 | 983 | 984 | type 985 | complex 986 | 987 | 988 | name 989 | QT GUI Plot 990 | 991 | 992 | size 993 | 1024 994 | 995 | 996 | srate 997 | samp_rate 998 | 999 | 1000 | autoscale 1001 | False 1002 | 1003 | 1004 | ymin 1005 | -1 1006 | 1007 | 1008 | ymax 1009 | 1 1010 | 1011 | 1012 | nconnections 1013 | 1 1014 | 1015 | 1016 | update_time 1017 | 0.10 1018 | 1019 | 1020 | entags 1021 | True 1022 | 1023 | 1024 | gui_hint 1025 | 1,1,1,1 1026 | 1027 | 1028 | tr_mode 1029 | qtgui.TRIG_MODE_FREE 1030 | 1031 | 1032 | tr_slope 1033 | qtgui.TRIG_SLOPE_POS 1034 | 1035 | 1036 | tr_level 1037 | 0.0 1038 | 1039 | 1040 | tr_delay 1041 | 0 1042 | 1043 | 1044 | tr_chan 1045 | 0 1046 | 1047 | 1048 | tr_tag 1049 | "" 1050 | 1051 | 1052 | label1 1053 | 1054 | 1055 | 1056 | width1 1057 | 1 1058 | 1059 | 1060 | color1 1061 | "blue" 1062 | 1063 | 1064 | style1 1065 | 1 1066 | 1067 | 1068 | marker1 1069 | -1 1070 | 1071 | 1072 | alpha1 1073 | 1.0 1074 | 1075 | 1076 | label2 1077 | 1078 | 1079 | 1080 | width2 1081 | 1 1082 | 1083 | 1084 | color2 1085 | "red" 1086 | 1087 | 1088 | style2 1089 | 1 1090 | 1091 | 1092 | marker2 1093 | -1 1094 | 1095 | 1096 | alpha2 1097 | 1.0 1098 | 1099 | 1100 | label3 1101 | 1102 | 1103 | 1104 | width3 1105 | 1 1106 | 1107 | 1108 | color3 1109 | "green" 1110 | 1111 | 1112 | style3 1113 | 1 1114 | 1115 | 1116 | marker3 1117 | -1 1118 | 1119 | 1120 | alpha3 1121 | 1.0 1122 | 1123 | 1124 | label4 1125 | 1126 | 1127 | 1128 | width4 1129 | 1 1130 | 1131 | 1132 | color4 1133 | "black" 1134 | 1135 | 1136 | style4 1137 | 1 1138 | 1139 | 1140 | marker4 1141 | -1 1142 | 1143 | 1144 | alpha4 1145 | 1.0 1146 | 1147 | 1148 | label5 1149 | 1150 | 1151 | 1152 | width5 1153 | 1 1154 | 1155 | 1156 | color5 1157 | "cyan" 1158 | 1159 | 1160 | style5 1161 | 1 1162 | 1163 | 1164 | marker5 1165 | -1 1166 | 1167 | 1168 | alpha5 1169 | 1.0 1170 | 1171 | 1172 | label6 1173 | 1174 | 1175 | 1176 | width6 1177 | 1 1178 | 1179 | 1180 | color6 1181 | "magenta" 1182 | 1183 | 1184 | style6 1185 | 1 1186 | 1187 | 1188 | marker6 1189 | -1 1190 | 1191 | 1192 | alpha6 1193 | 1.0 1194 | 1195 | 1196 | label7 1197 | 1198 | 1199 | 1200 | width7 1201 | 1 1202 | 1203 | 1204 | color7 1205 | "yellow" 1206 | 1207 | 1208 | style7 1209 | 1 1210 | 1211 | 1212 | marker7 1213 | -1 1214 | 1215 | 1216 | alpha7 1217 | 1.0 1218 | 1219 | 1220 | label8 1221 | 1222 | 1223 | 1224 | width8 1225 | 1 1226 | 1227 | 1228 | color8 1229 | "dark red" 1230 | 1231 | 1232 | style8 1233 | 1 1234 | 1235 | 1236 | marker8 1237 | -1 1238 | 1239 | 1240 | alpha8 1241 | 1.0 1242 | 1243 | 1244 | label9 1245 | 1246 | 1247 | 1248 | width9 1249 | 1 1250 | 1251 | 1252 | color9 1253 | "dark green" 1254 | 1255 | 1256 | style9 1257 | 1 1258 | 1259 | 1260 | marker9 1261 | -1 1262 | 1263 | 1264 | alpha9 1265 | 1.0 1266 | 1267 | 1268 | affinity 1269 | 1270 | 1271 | 1272 | _coordinate 1273 | (709, 111) 1274 | 1275 | 1276 | _rotation 1277 | 0 1278 | 1279 | 1280 | 1281 | uhd_usrp_source 1282 | 1283 | id 1284 | uhd_usrp_source_0 1285 | 1286 | 1287 | _enabled 1288 | True 1289 | 1290 | 1291 | type 1292 | fc32 1293 | 1294 | 1295 | otw 1296 | 1297 | 1298 | 1299 | stream_args 1300 | 1301 | 1302 | 1303 | stream_chans 1304 | [] 1305 | 1306 | 1307 | dev_addr 1308 | address 1309 | 1310 | 1311 | sync 1312 | pc_clock 1313 | 1314 | 1315 | clock_rate 1316 | 0.0 1317 | 1318 | 1319 | num_mboards 1320 | 1 1321 | 1322 | 1323 | clock_source0 1324 | gpsdo 1325 | 1326 | 1327 | time_source0 1328 | gpsdo 1329 | 1330 | 1331 | sd_spec0 1332 | 1333 | 1334 | 1335 | clock_source1 1336 | 1337 | 1338 | 1339 | time_source1 1340 | 1341 | 1342 | 1343 | sd_spec1 1344 | 1345 | 1346 | 1347 | clock_source2 1348 | 1349 | 1350 | 1351 | time_source2 1352 | 1353 | 1354 | 1355 | sd_spec2 1356 | 1357 | 1358 | 1359 | clock_source3 1360 | 1361 | 1362 | 1363 | time_source3 1364 | 1365 | 1366 | 1367 | sd_spec3 1368 | 1369 | 1370 | 1371 | clock_source4 1372 | 1373 | 1374 | 1375 | time_source4 1376 | 1377 | 1378 | 1379 | sd_spec4 1380 | 1381 | 1382 | 1383 | clock_source5 1384 | 1385 | 1386 | 1387 | time_source5 1388 | 1389 | 1390 | 1391 | sd_spec5 1392 | 1393 | 1394 | 1395 | clock_source6 1396 | 1397 | 1398 | 1399 | time_source6 1400 | 1401 | 1402 | 1403 | sd_spec6 1404 | 1405 | 1406 | 1407 | clock_source7 1408 | 1409 | 1410 | 1411 | time_source7 1412 | 1413 | 1414 | 1415 | sd_spec7 1416 | 1417 | 1418 | 1419 | nchan 1420 | 1 1421 | 1422 | 1423 | samp_rate 1424 | samp_rate 1425 | 1426 | 1427 | center_freq0 1428 | center_freq 1429 | 1430 | 1431 | gain0 1432 | tun_gain 1433 | 1434 | 1435 | ant0 1436 | TX/RX 1437 | 1438 | 1439 | bw0 1440 | 0 1441 | 1442 | 1443 | center_freq1 1444 | 0 1445 | 1446 | 1447 | gain1 1448 | 0 1449 | 1450 | 1451 | ant1 1452 | 1453 | 1454 | 1455 | bw1 1456 | 0 1457 | 1458 | 1459 | center_freq2 1460 | 0 1461 | 1462 | 1463 | gain2 1464 | 0 1465 | 1466 | 1467 | ant2 1468 | 1469 | 1470 | 1471 | bw2 1472 | 0 1473 | 1474 | 1475 | center_freq3 1476 | 0 1477 | 1478 | 1479 | gain3 1480 | 0 1481 | 1482 | 1483 | ant3 1484 | 1485 | 1486 | 1487 | bw3 1488 | 0 1489 | 1490 | 1491 | center_freq4 1492 | 0 1493 | 1494 | 1495 | gain4 1496 | 0 1497 | 1498 | 1499 | ant4 1500 | 1501 | 1502 | 1503 | bw4 1504 | 0 1505 | 1506 | 1507 | center_freq5 1508 | 0 1509 | 1510 | 1511 | gain5 1512 | 0 1513 | 1514 | 1515 | ant5 1516 | 1517 | 1518 | 1519 | bw5 1520 | 0 1521 | 1522 | 1523 | center_freq6 1524 | 0 1525 | 1526 | 1527 | gain6 1528 | 0 1529 | 1530 | 1531 | ant6 1532 | 1533 | 1534 | 1535 | bw6 1536 | 0 1537 | 1538 | 1539 | center_freq7 1540 | 0 1541 | 1542 | 1543 | gain7 1544 | 0 1545 | 1546 | 1547 | ant7 1548 | 1549 | 1550 | 1551 | bw7 1552 | 0 1553 | 1554 | 1555 | center_freq8 1556 | 0 1557 | 1558 | 1559 | gain8 1560 | 0 1561 | 1562 | 1563 | ant8 1564 | 1565 | 1566 | 1567 | bw8 1568 | 0 1569 | 1570 | 1571 | center_freq9 1572 | 0 1573 | 1574 | 1575 | gain9 1576 | 0 1577 | 1578 | 1579 | ant9 1580 | 1581 | 1582 | 1583 | bw9 1584 | 0 1585 | 1586 | 1587 | center_freq10 1588 | 0 1589 | 1590 | 1591 | gain10 1592 | 0 1593 | 1594 | 1595 | ant10 1596 | 1597 | 1598 | 1599 | bw10 1600 | 0 1601 | 1602 | 1603 | center_freq11 1604 | 0 1605 | 1606 | 1607 | gain11 1608 | 0 1609 | 1610 | 1611 | ant11 1612 | 1613 | 1614 | 1615 | bw11 1616 | 0 1617 | 1618 | 1619 | center_freq12 1620 | 0 1621 | 1622 | 1623 | gain12 1624 | 0 1625 | 1626 | 1627 | ant12 1628 | 1629 | 1630 | 1631 | bw12 1632 | 0 1633 | 1634 | 1635 | center_freq13 1636 | 0 1637 | 1638 | 1639 | gain13 1640 | 0 1641 | 1642 | 1643 | ant13 1644 | 1645 | 1646 | 1647 | bw13 1648 | 0 1649 | 1650 | 1651 | center_freq14 1652 | 0 1653 | 1654 | 1655 | gain14 1656 | 0 1657 | 1658 | 1659 | ant14 1660 | 1661 | 1662 | 1663 | bw14 1664 | 0 1665 | 1666 | 1667 | center_freq15 1668 | 0 1669 | 1670 | 1671 | gain15 1672 | 0 1673 | 1674 | 1675 | ant15 1676 | 1677 | 1678 | 1679 | bw15 1680 | 0 1681 | 1682 | 1683 | center_freq16 1684 | 0 1685 | 1686 | 1687 | gain16 1688 | 0 1689 | 1690 | 1691 | ant16 1692 | 1693 | 1694 | 1695 | bw16 1696 | 0 1697 | 1698 | 1699 | center_freq17 1700 | 0 1701 | 1702 | 1703 | gain17 1704 | 0 1705 | 1706 | 1707 | ant17 1708 | 1709 | 1710 | 1711 | bw17 1712 | 0 1713 | 1714 | 1715 | center_freq18 1716 | 0 1717 | 1718 | 1719 | gain18 1720 | 0 1721 | 1722 | 1723 | ant18 1724 | 1725 | 1726 | 1727 | bw18 1728 | 0 1729 | 1730 | 1731 | center_freq19 1732 | 0 1733 | 1734 | 1735 | gain19 1736 | 0 1737 | 1738 | 1739 | ant19 1740 | 1741 | 1742 | 1743 | bw19 1744 | 0 1745 | 1746 | 1747 | center_freq20 1748 | 0 1749 | 1750 | 1751 | gain20 1752 | 0 1753 | 1754 | 1755 | ant20 1756 | 1757 | 1758 | 1759 | bw20 1760 | 0 1761 | 1762 | 1763 | center_freq21 1764 | 0 1765 | 1766 | 1767 | gain21 1768 | 0 1769 | 1770 | 1771 | ant21 1772 | 1773 | 1774 | 1775 | bw21 1776 | 0 1777 | 1778 | 1779 | center_freq22 1780 | 0 1781 | 1782 | 1783 | gain22 1784 | 0 1785 | 1786 | 1787 | ant22 1788 | 1789 | 1790 | 1791 | bw22 1792 | 0 1793 | 1794 | 1795 | center_freq23 1796 | 0 1797 | 1798 | 1799 | gain23 1800 | 0 1801 | 1802 | 1803 | ant23 1804 | 1805 | 1806 | 1807 | bw23 1808 | 0 1809 | 1810 | 1811 | center_freq24 1812 | 0 1813 | 1814 | 1815 | gain24 1816 | 0 1817 | 1818 | 1819 | ant24 1820 | 1821 | 1822 | 1823 | bw24 1824 | 0 1825 | 1826 | 1827 | center_freq25 1828 | 0 1829 | 1830 | 1831 | gain25 1832 | 0 1833 | 1834 | 1835 | ant25 1836 | 1837 | 1838 | 1839 | bw25 1840 | 0 1841 | 1842 | 1843 | center_freq26 1844 | 0 1845 | 1846 | 1847 | gain26 1848 | 0 1849 | 1850 | 1851 | ant26 1852 | 1853 | 1854 | 1855 | bw26 1856 | 0 1857 | 1858 | 1859 | center_freq27 1860 | 0 1861 | 1862 | 1863 | gain27 1864 | 0 1865 | 1866 | 1867 | ant27 1868 | 1869 | 1870 | 1871 | bw27 1872 | 0 1873 | 1874 | 1875 | center_freq28 1876 | 0 1877 | 1878 | 1879 | gain28 1880 | 0 1881 | 1882 | 1883 | ant28 1884 | 1885 | 1886 | 1887 | bw28 1888 | 0 1889 | 1890 | 1891 | center_freq29 1892 | 0 1893 | 1894 | 1895 | gain29 1896 | 0 1897 | 1898 | 1899 | ant29 1900 | 1901 | 1902 | 1903 | bw29 1904 | 0 1905 | 1906 | 1907 | center_freq30 1908 | 0 1909 | 1910 | 1911 | gain30 1912 | 0 1913 | 1914 | 1915 | ant30 1916 | 1917 | 1918 | 1919 | bw30 1920 | 0 1921 | 1922 | 1923 | center_freq31 1924 | 0 1925 | 1926 | 1927 | gain31 1928 | 0 1929 | 1930 | 1931 | ant31 1932 | 1933 | 1934 | 1935 | bw31 1936 | 0 1937 | 1938 | 1939 | affinity 1940 | 1941 | 1942 | 1943 | minoutbuf 1944 | 0 1945 | 1946 | 1947 | maxoutbuf 1948 | 0 1949 | 1950 | 1951 | _coordinate 1952 | (13, 124) 1953 | 1954 | 1955 | _rotation 1956 | 0 1957 | 1958 | 1959 | 1960 | analog_agc2_xx 1961 | 1962 | id 1963 | analog_agc2_xx_0 1964 | 1965 | 1966 | _enabled 1967 | True 1968 | 1969 | 1970 | type 1971 | complex 1972 | 1973 | 1974 | attack_rate 1975 | 1e-1 1976 | 1977 | 1978 | decay_rate 1979 | 1e-2 1980 | 1981 | 1982 | reference 1983 | 1.0 1984 | 1985 | 1986 | gain 1987 | 1.0 1988 | 1989 | 1990 | max_gain 1991 | 65536 1992 | 1993 | 1994 | affinity 1995 | 1996 | 1997 | 1998 | minoutbuf 1999 | 0 2000 | 2001 | 2002 | maxoutbuf 2003 | 0 2004 | 2005 | 2006 | _coordinate 2007 | (260, 140) 2008 | 2009 | 2010 | _rotation 2011 | 0 2012 | 2013 | 2014 | 2015 | variable_qtgui_range 2016 | 2017 | id 2018 | channel 2019 | 2020 | 2021 | _enabled 2022 | True 2023 | 2024 | 2025 | label 2026 | Channel 2027 | 2028 | 2029 | value 2030 | 0 2031 | 2032 | 2033 | start 2034 | 0 2035 | 2036 | 2037 | stop 2038 | channels 2039 | 2040 | 2041 | step 2042 | 1 2043 | 2044 | 2045 | widget 2046 | counter_slider 2047 | 2048 | 2049 | orient 2050 | Qt.Horizontal 2051 | 2052 | 2053 | min_len 2054 | 200 2055 | 2056 | 2057 | gui_hint 2058 | 2,0,1,1 2059 | 2060 | 2061 | _coordinate 2062 | (13, 393) 2063 | 2064 | 2065 | _rotation 2066 | 0 2067 | 2068 | 2069 | 2070 | variable_qtgui_range 2071 | 2072 | id 2073 | tun_gain 2074 | 2075 | 2076 | _enabled 2077 | True 2078 | 2079 | 2080 | label 2081 | Gain (dB) 2082 | 2083 | 2084 | value 2085 | gain 2086 | 2087 | 2088 | start 2089 | 0 2090 | 2091 | 2092 | stop 2093 | 31.5 2094 | 2095 | 2096 | step 2097 | 0.5 2098 | 2099 | 2100 | widget 2101 | counter_slider 2102 | 2103 | 2104 | orient 2105 | Qt.Horizontal 2106 | 2107 | 2108 | min_len 2109 | 200 2110 | 2111 | 2112 | gui_hint 2113 | 2,1,1,1 2114 | 2115 | 2116 | _coordinate 2117 | (13, 267) 2118 | 2119 | 2120 | _rotation 2121 | 0 2122 | 2123 | 2124 | 2125 | variable_qtgui_range 2126 | 2127 | id 2128 | volume 2129 | 2130 | 2131 | _enabled 2132 | True 2133 | 2134 | 2135 | label 2136 | Volume 2137 | 2138 | 2139 | value 2140 | 0.1 2141 | 2142 | 2143 | start 2144 | 0 2145 | 2146 | 2147 | stop 2148 | 10 2149 | 2150 | 2151 | step 2152 | 0.1 2153 | 2154 | 2155 | widget 2156 | counter_slider 2157 | 2158 | 2159 | orient 2160 | Qt.Horizontal 2161 | 2162 | 2163 | min_len 2164 | 200 2165 | 2166 | 2167 | gui_hint 2168 | 3,0,1,2 2169 | 2170 | 2171 | _coordinate 2172 | (124, 267) 2173 | 2174 | 2175 | _rotation 2176 | 0 2177 | 2178 | 2179 | 2180 | uhd_usrp_source_0 2181 | analog_agc2_xx_0 2182 | 0 2183 | 0 2184 | 2185 | 2186 | pfb_decimator_ccf_0 2187 | qtgui_time_sink_x_0 2188 | 0 2189 | 0 2190 | 2191 | 2192 | pfb_decimator_ccf_0 2193 | qtgui_freq_sink_x_0_0 2194 | 0 2195 | 0 2196 | 2197 | 2198 | analog_agc2_xx_0 2199 | pfb_decimator_ccf_0 2200 | 0 2201 | 0 2202 | 2203 | 2204 | analog_agc2_xx_0 2205 | qtgui_freq_sink_x_0 2206 | 0 2207 | 0 2208 | 2209 | 2210 | pfb_decimator_ccf_0 2211 | analog_wfm_rcv 2212 | 0 2213 | 0 2214 | 2215 | 2216 | blocks_multiply_const_vxx 2217 | audio_sink 2218 | 0 2219 | 0 2220 | 2221 | 2222 | pfb_arb_resampler_xxx_0 2223 | blocks_multiply_const_vxx 2224 | 0 2225 | 0 2226 | 2227 | 2228 | analog_wfm_rcv 2229 | pfb_arb_resampler_xxx_0 2230 | 0 2231 | 0 2232 | 2233 | 2234 | -------------------------------------------------------------------------------- /gnuradio/README.md: -------------------------------------------------------------------------------- 1 | # GNURadio Live Environment 2 | 3 | _"Creating a bootable USB drive with the Live SDR Environment on it takes more effort, but results in a GNU Radio development environment that can be extended and have work saved across multiple sessions. This is useful to avoid having to modify existing operating system installations and software configurations on a PC or laptop."_ - [Johnathan Corgan](https://www.gnuradio.org/blog/using-gnu-radio-live-sdr-environment/) 4 | 5 | The Live Environment has a small number of shortcuts available through the desktop and sidebar. 6 | 7 | The GNU Radio Companion is accessible by clicking the GNU Radio logo on either the left side launchbar or the desktop, or by opening a terminal window and entering grc. 8 | 9 | ![shortcuts](/images/shortcuts.png) 10 | 11 | A terminal window may be opened by clicking on the terminal icon on the left or by typing Ctrl-Alt-T. 12 | 13 | The GNU Radio documentation maybe opened in the Firefox browser by clicking the documentation link on the desktop. 14 | 15 | A local copy of the online GNU Radio Tutorials may be opened in the Firefox browser by clicking the tutorial link on the desktop. 16 | 17 | A shortcut to all of the GNU Radio examples is in the live user home directory under ‘examples’. You can navigate there from a terminal to run the Python scripts, or from the File|Open menu inside the GNU Radio companion. -------------------------------------------------------------------------------- /images/gqrx_fm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/images/gqrx_fm.png -------------------------------------------------------------------------------- /images/hackrf_one.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/images/hackrf_one.jpeg -------------------------------------------------------------------------------- /images/pagermon.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/images/pagermon.jpeg -------------------------------------------------------------------------------- /images/portapack.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/images/portapack.jpg -------------------------------------------------------------------------------- /images/shortcuts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gyaresu/sdr/61714462a3e017fe10042aa1bb2e549b381a5809/images/shortcuts.png -------------------------------------------------------------------------------- /iridium/README.md: -------------------------------------------------------------------------------- 1 | # Iridium 2 | [Iridium](https://en.wikipedia.org/wiki/Iridium_satellite_constellation#Satellites) 3 | 4 | ## Preamble 5 | Provided are the instructions to start a custom Live (running in RAM) Ubuntu Operating System (OS) to enable the operation of software specific to demodulating Iridium satellite messages. 6 | The user should have an understanding of Software Defined Radios, Linux, Git, Python, awk, sed, grep, installing software from source code, including setting PATH and ENVIRONMENT variables for custom software. 7 | This guide assumes you have the required knowledge. 8 | If in doubt please refer to provided pdf documents on prior research and the README.md files that accompany each included software package. 9 | 10 | ### Code examples will be highlighted like below: 11 | 12 | ```# Example: Do Things and Stuff 13 | if [ ! -d $HOME/thing ]; then 14 | cd $HOME 15 | do stuff 16 | export PATH="$PATH:$SOMEPLACE" 17 | fi 18 | ``` 19 | 20 | ## Original work: 21 | All source code and installation scripts have been packaged into a repository stored on GitHub. 22 | Required software has been included as git submodules. 23 | 24 | https://github.com/gyaresu/sdr 25 | 26 | You’ll find example Iridium install scripts for the software in the sdr source code folder 27 | 28 | Copy the folder named sdr from the external hard drive to the GNURadioLive home directory (/home/ubuntu/). 29 | 30 | Within the sdr folder you will find folders for each type of SDR toolchain and at least one setup script which will install the required software packages from source. 31 | 32 | As this is a Live Operating System, you will need to do this each time the OS is rebooted. (So just don’t reboot often) 33 | 34 | ## Equipment 35 | A dedicated computer with an x86-64 processor and at least 2GB of RAM. 36 | Virtual machines cannot handle virtual USB v2 speeds required for a full 10-12 MHz of bandwidth from the SDR 37 | HackRF One Software Defined Radio 38 | Micro USB cable. Short and try different ones if you get a lot of RF noise. 39 | At least one Low Noise Amplifier (LNA) and one L-Band filter - refer to schematic 40 | Power sources for LNA and computer. 41 | 42 | ## Operating System 43 | 44 | GNURadioLive provided on USB and as a separate ISO file 45 | 46 | Download: https://wiki.gnuradio.org/index.php/GNU_Radio_Live_SDR_Environment 47 | 48 | Build your own (advanced): https://github.com/gnuradio/gnuradio-livesdr 49 | 50 | Software (download and keep the latest versions with SDR kit in an external drive) 51 | 52 | Each of these software packages come with more detailed information in their respective README.md files 53 | * gr-iridium: https://github.com/muccc/gr-iridium GNURadio module for demodulation and packet capture 54 | * iridium-toolkit: https://github.com/muccc/iridium-toolkit 55 | * Toolkit for decoding and packet interpretation Google KML mapping tool 56 | * Packet-to-voice decoding 57 | * Statistical analysis and other tools 58 | * liquid-dsp: https://github.com/jgaeddert/liquid-dsp 59 | * inspectrum: https://github.com/miek/inspectrum 60 | * osmo-ir77: https://git.osmocom.org/osmo-ir77 61 | 62 | ## Booting up 63 | 64 | USBs have been provided and are already imaged with the Ubuntu 16.04 GNURadioLive OS 65 | 66 | Upon startup you will need to change network settings to “Internet (DHCP assigned)” 67 | 68 | All commands for the provided tools are run from within a terminal. Default is GNOME Terminal 3.18.3 but use any unicode enabled shell you are comfortable with. 69 | 70 | Mount the external drive and copy the directory named `sdr` to the home directory. `/home/ubuntu` in this case. 71 | 72 | From here you can go into the iridium folder and run the install script: 73 | 74 | ``` 75 | $ cd /home/ubuntu/sdr/iridium/ 76 | $ sh iridium_install.sh 77 | ``` 78 | 79 | This build script takes all the required software packages in the folder, compiles them, sets their environment variables. Note that the build and install script will reinstall all the software if run multiple times. 80 | 81 | ## Running the software 82 | Make sure the HackRF One (H1) is installed by using the following command to show you that it is recognised and also which version of the firmware is installed on the H1. (A firmware binary been included in the directory `sdr/files/hackrf-2017.02.1.zip`) 83 | 84 | ``` 85 | $ hackrf_info 86 | hackrf_info version: unknown 87 | libhackrf version: unknown (0.5) 88 | Found HackRF 89 | Index: 0 90 | Serial number: 0000000000000000457863c82e33551f 91 | Board ID Number: 2 (HackRF One) 92 | Firmware Version: 2017.02.1 (API:1.02) 93 | Part ID Number: 0xa000cb3c 0x00484f3e 94 | ``` 95 | 96 | ## Capturing the iridium bitstream 97 | The two example configuration files are: 98 | 99 | ``` 100 | /home/ubuntu/sdr/iridium/gr-iridium/examples/hackrf.conf 101 | /home/ubuntu/sdr/iridium/gr-iridium/examples/hackrf-10msps.conf 102 | ``` 103 | 104 | If you are using the LNA4ALL directly before the HackRF then you can edit the `hackrf.conf` file and turn on the “bias-t”. 105 | 106 | The bias-t will output 3.5V directly into the modified LNA4ALL Low Noise Amplifer: 107 | WARNING: Only do this if the LNA is attached and in the correct position or you risk equipment destruction 108 | 109 | Uncomment line 4 in hackrf.conf for bias-t power out: 110 | Before: 111 | 112 | `#device_args='hackrf=0,bias=1'` 113 | 114 | After: 115 | 116 | `device_args='hackrf=0,bias=1'` 117 | 118 | Now you can run the following command to dump only the packetized bitstream which gets an “A:OK” for completeness. 119 | 120 | ``` 121 | iridium-extractor -D 4 ~/sdr/iridium/gr-iridium/examples/hackrf.conf | grep "A:OK" > /tmp/output.bits 122 | Example capture output: 123 | 1456890563 | i: 44/s | i_avg: 47/s | q: 40 | q_max: 184 | o: 43/s | ok: 62% | ok: 27/s | ok_avg: 48% | ok: 2748 | ok_avg: 22/s | d: 0 124 | 1456890623 | i: 39/s | i_avg: 44/s | q: 2 | q_max: 74 | o: 40/s | ok: 49% | ok: 20/s | ok_avg: 48% | ok: 3960 | ok_avg: 21/s | d: 0 125 | 1456890684 | i: 55/s | i_avg: 47/s | q: 0 | q_max: 87 | o: 55/s | ok: 52% | ok: 28/s | ok_avg: 49% | ok: 5698 | ok_avg: 23/s | d: 0 126 | ``` 127 | 128 | ## Parsing the captured packets 129 | One the `/tmp/output.bits` file starts to get content you can open a second terminal and parse the data with a Python tool to convert the packets into recognised data types. Included in that will be SBD messages. 130 | 131 | `$ python ~/sdr/iridium/iridium-toolkit/iridium-parser.py /tmp/output.bits /tmp/output.parsed` 132 | 133 | Keep in mind you may have thousands of packets so being able to parse the converted data into something useful is where grep/sed/awk will be useful tools. 134 | 135 | ## Example parsing output: 136 | You’re going to get massive data files and interpreting them is the next challenge. Because you’re not just getting the single stream of data for a single device. You’re getting the firehose of all data, from all devices, in at least your 400 square km region. 137 | 138 | An individual commercial Iridium transceiver will lock on and only give you only the data that matches a stream sequentially. 139 | So we need to filter out the sequences manually and there are a few ways to do that. 140 | 141 | 142 | ### Print only the number of characters we specify after a particular pattern (SBD): 143 | 144 | ``` 145 | awk '/SBD/ { 146 | match($0, /SBD/); print substr($0, RSTART +5, RLENGTH + 20); 147 | }' file_name.sbd | grep -E -o "^v\.&.*|^0{4}.*|^_6.*$" 148 | 149 | 150 | SBD: v.&.7.....M._87_01_0 151 | SBD: 0000_01805_461D_0070 152 | SBD: _6_01_0030_CC04B509. 153 | 154 | awk '/SBD/ {match($0, /SBD/); print substr($0, RSTART +5, RLENGTH + 20);}' ~/tmp/2017-06-01.sbd | grep -E -o "^v\.&.*|^0{4}.*|^_6.*$" > ~/samples/2017-06-01.mpackets 155 | Add 4 lines into one 156 | perl -pi -e 's/\n// if $.%4 input_file.sbd 157 | Interpreting the data 158 | GPS location from an M3Iv7 Fishing Aggregation Device: 159 | 160 | SBD: ....F..$..*FAB:M3Iv7 161 | SBD: 323 4000.856S 12405. 162 | SBD: 880E TVG:878 693 585 163 | ``` 164 | 165 | ## Other Linux tools 166 | Create a folder to store screenshots in (i.e. ~/screenshots) 167 | 168 | `$ gnome-screenshot -w -B -f ~/screenshots/$(date '+%Y-%m-%d_%H-%M-%S').png` 169 | 170 | 171 | -------------------------------------------------------------------------------- /iridium/iridium_install.sh: -------------------------------------------------------------------------------- 1 | # GNU Radio Live SDR setup scripit 2 | # https://wiki.gnuradio.org/index.php/GNU_Radio_Live_SDR_Environment 3 | # gareth@greenpeace.org 4 | # 2017-06-21 5 | 6 | ## If installing from source remember to 7 | 8 | # $ git clone https://github.com/gyaresu/sdr 9 | # $ git submodule update --init --recursive 10 | # $ cd iridium 11 | # $ sh iridium_install.sh 12 | 13 | # Install the GNURadio Iridium Decoder 14 | if [ $(dpkg-query -W -f='${Status}' iridium-extractor 2>/dev/null | grep -c "ok installed") -eq 0 ]; then 15 | cd $HOME/sdr/iridium/gr-iridium 16 | if [ -d build ]; then 17 | cd build 18 | sudo make uninstall 19 | cd .. 20 | rm -rf build 21 | fi 22 | mkdir build 23 | cd build 24 | cmake .. -Wno-dev 25 | make 26 | sudo make install 27 | sudo ldconfig 28 | fi 29 | 30 | # Install the Iridium phone call audio codec 31 | if [ -d $HOME/sdr/iridium/osmo-ir77/codec ]; then 32 | cd $HOME/sdr/iridium/osmo-ir77/codec 33 | if [ -f ir77_ambe_decode ]; then 34 | make clean 35 | fi 36 | make 37 | fi 38 | 39 | 40 | # Add Iridium Decoder and audio programmes to $PATH and export to local shell 41 | if [ $(cat ~/.profile | grep -c codec) -lt 1 ]; then 42 | echo PATH="$PATH:$HOME/sdr/iridium/iridium-toolkit" >> $HOME/.profile 43 | export PATH="$PATH:$HOME/sdr/iridium/iridium-toolkit" 44 | export PATH="$PATH:$HOME/sdr/iridium/osmo-ir77/codec" 45 | fi 46 | -------------------------------------------------------------------------------- /nrsc5/README.md: -------------------------------------------------------------------------------- 1 | # NRSC-5 2 | [NRSC-5](https://en.wikipedia.org/wiki/HD_Radio) HD Digital Radio 3 | 4 | [RECEIVING NRSC-5](http://theori.io/research/nrsc-5-c) 5 | 6 | [NRSC-5 receiver for rtl-sdr](https://github.com/theori-io/nrsc5/) 7 | 8 | RSC-5-C is the standard for digital terrestial radio in the United States. 9 | 10 | ```python 11 | $ nrsc5 -p 63 -g 490 -w output1071 107.1 0 12 | 13 | $ nrsc5 -r output1071 0 14 | 15 | $ nrsc5 -o - -f adts 90.5 0 | mplayer - 16 | ``` 17 | 18 | 19 | ## A GNU Radio implementation of HD Radio (NRSC-5) 20 | 21 | GNURadio code on Github: [gr-nrsc5](https://github.com/argilo/gr-nrsc5) 22 | 23 | The goal of this project is to implement an HD Radio receiver and transmitter in GNU Radio. HD Radio is standardized in NRSC-5. The latest version of the standard is NRSC-5-D, which can be found at http://www.nrscstandards.org/NRSC-5-D.asp. 24 | 25 | So far only a transmitter has been implemented. A stand-alone receiver for RTL-SDR is available here: https://github.com/theori-io/nrsc5/ -------------------------------------------------------------------------------- /nrsc5/nrsc5-example.sh: -------------------------------------------------------------------------------- 1 | if [ -d $HOME/nrsc5 ]; then 2 | xz -d < $HOME/nrsc5/support/sample.xz | nrsc5 -r - 0 3 | else 4 | echo "Please run the nrsc5-install.sh script" 5 | fi -------------------------------------------------------------------------------- /nrsc5/nrsc5-install.sh: -------------------------------------------------------------------------------- 1 | # http://theori.io/research/nrsc-5-c 2 | # Listening to HD Radio (NRSC-5) 3 | 4 | # Install the HD Radio software 5 | if [ ! -d $HOME/nrsc5 ]; then 6 | cd $HOME 7 | git clone https://github.com/theori-io/nrsc5.git 8 | sudo apt-get install libao-dev -y 9 | cd nrsc5 10 | mkdir build 11 | cd build 12 | cmake .. 13 | make 14 | sudo make install 15 | echo "Installation successfull" 16 | fi 17 | 18 | -------------------------------------------------------------------------------- /pocsag/README.md: -------------------------------------------------------------------------------- 1 | # POCSAG 2 | 3 | POCSAG ([Post Office Code Standardisation Advisory Group](https://en.wikipedia.org/wiki/POCSAG)) is a pager protocol. 4 | 5 | ![pagermon](/images/pagermon.jpeg) 6 | 7 | [PagerMon](https://github.com/davidmckenzie/pagermon) is an API driven client/server framework for parsing and displaying pager messages from multimon-ng. 8 | 9 | It is built around POCSAG messages, but should easily support other message types as required. 10 | 11 | The UI is built around a Node/Express/Angular/Bootstrap stack, while the client scripts are Node scripts that receive piped input. 12 | 13 | ## run 14 | 15 | `$ sh pocsag.sh` 16 | 17 | This script will build and install all the software required to run the PagerMon interface. -------------------------------------------------------------------------------- /pocsag/pagermon.sh: -------------------------------------------------------------------------------- 1 | # https://github.com/davidmckenzie/pagermon 2 | 3 | # TODO rewrite and configure this to work with Bash 4 | 5 | sudo apt-get install npm sqlite3 6 | sudo npm install npm@latest -g 7 | sudo npm install pm2 -g 8 | sudo ln -s /usr/bin/nodejs /usr/bin/node 9 | git clone https://github.com/davidmckenzie/pagermon 10 | cp ~/gnuradio-live-setup/pocsag/process.json ~/pagermon/server/process.json 11 | sudo chown -R $USER:$(id -gn $USER) /home/ubuntu/.config 12 | cd ~/pagermon/server 13 | npm install 14 | export NODE_ENV=production 15 | pm2 start process.json 16 | cd ~/pagermon/client 17 | npm install 18 | 19 | -------------------------------------------------------------------------------- /pocsag/process.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "pagermon", 3 | "cwd" : "/home/ubuntu/pagermon/server", 4 | "script" : "app.js", 5 | "node_args" : ["--harmony"], 6 | "log_date_format" : "YYYY-MM-DD HH:mm Z", 7 | "error_file" : "logs/node-app.stderr.log", 8 | "out_file" : "logs/node-app.stdout.log", 9 | "pid_file" : "pids/node-geo-api.pid", 10 | "instances" : 1, //or 0 => 'max' 11 | "min_uptime" : "200s", // 200 seconds, defaults to 1000 12 | "max_restarts" : 10, // defaults to 15 13 | "max_memory_restart": "100M", // 1 megabytes, e.g.: "2G", "10M", "100K", 1024 the default unit is byte. 14 | "cron_restart" : "1 0 * * *", 15 | "watch" : false, 16 | "ignore_watch" : ["[\\/\\\\]\\./", "node_modules", "config", "logs"], 17 | "merge_logs" : true, 18 | "exec_interpreter" : "node", 19 | "autorestart" : true, // enable/disable automatic restart when an app crashes or exits 20 | "vizion" : false, // enable/disable vizion features (versioning control) 21 | "env": { 22 | "NODE_ENV": "production", 23 | "APP_NAME": "pagermon" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /portapack/README.md: -------------------------------------------------------------------------------- 1 | # Portapack 2 | 3 | ![Portapack](/images/portapack.jpg) 4 | 5 | The [PortaPack H1](https://github.com/sharebrained/portapack-hackrf) attaches to your HackRF and adds a touchscreen LCD, navigation controls, headphone jack, real-time clock, micro SD card slot, and custom aluminum case. 6 | 7 | Just add a USB battery, and you're ready to explore radio spectrum wherever you are. The PortaPack firmware runs on the fast ARM processors in your HackRF. No computer is necessary (except for reprogramming firmware). 8 | 9 | * For all the usage instructions, read its [Wiki](https://github.com/sharebrained/portapack-hackrf/wiki) 10 | * [Assembly](https://github.com/sharebrained/portapack-hackrf/wiki/Assembly) 11 | * [Installing or updating firmware](https://github.com/sharebrained/portapack-hackrf/wiki/Updating-Firmware) 12 | * [General usage](https://github.com/sharebrained/portapack-hackrf/wiki/General-Use) 13 | 14 | ## Havock 15 | 16 | [HAVOC](https://github.com/furrtek/portapack-havoc) is a fork of the PortaPack H1 firmware, a portability add-on for the HackRF One software-defined radio. 17 | 18 | It is build on top of ShareBrained's firmware, meaning that the original functionalities are kept (except when I don't sync for 2 months). 19 | 20 | * For all the usage instructions, read its [Wiki](https://github.com/furrtek/portapack-havoc/wiki) 21 | * [Updating firmware](https://github.com/furrtek/portapack-havoc/wiki/Updating-firmware) 22 | --------------------------------------------------------------------------------