This repository is a collection of Homebrew formulas and directions to install various SDR software components. After much pain and suffering always trying to get thing installed properly I started using Homebrew which has really simplified the process. Certainly each install will be different, but I hope this provides a good foundation to get up and running with your SDR.
Currently, there are formulas for:
- Python
- GNU Radio 3.7
- rtlsdr
- gr-osmosdr
- GQRX 2.3.2
- gr-gsm
This installation works for macOS Sierra 10.12.1.
You'll need to install Xcode and the Commandline Tools
first. This installation was successful with Xcode 8.
xcode-select --install
softwareupdate --install --all
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install python
brew cask install xquartz
brew tap homebrew/python
brew install matplotlib
brew install numpy
brew install scipy
# Dependencies
pip install Cheetah
pip install lxml
pip install sphinx
pip install Pillow # required for running the heatmap.py script
brew install gsl
brew install pygtk
brew install wxpython
brew install boost
brew install cppunit
brew install fftw
brew install zeromq
brew install doxygen
brew install uhd
brew install portaudio
brew install sdl
brew install jack
brew install swig
brew install sip
Installing GNU Radio usually takes about 25 mins. The formula will make sure all dependencies are met.
brew tap nejohnson2/homebrew-sdr
brew install cmake # install cmake-3.3.2 since gnuradio doesnt like newer versions
# version 3.7.9
brew install gnuradio
I'm using the RTLSDR dongle. For other SDR devices, install the desired driver before installing gr-osmosdr
and gqrx
. Check this page for more information.
brew install librtlsdr
brew install bladerf --HEAD
brew install gr-osmosdr gr-baz --HEAD
brew install gqrx
brew install libosmocore --HEAD
brew install gr-gsm --HEAD
Navigate to the Applications folder and launch GQRX. The application should launch and you should be able to see click the power button on the top left side of the interface to start. Then begin playing with all of the buttons.
After installing the rtlsdr library, there are several python scripts that you can begin to use. The easiest one to use is the rtl_power
located in /usr/local/bin
. This blog give a good overview of specifics. Here is an example:
rtl_power -f 90M:120M:8k -g 50 -i 2 -e 1h data.csv
The -f
command specifies a range of frequencies to scan(lower:upper:bin size). -i
sets the collection time in seconds/minutes/hour(s/m/h) format. -e
sets the run time(though you can always use ctl-c
to exit). And then give a file to save data to.
After recording data, use the heatmap.py
file to generate an high resolution image of the spectrum. It looks something like this:
python heatmap.py input.csv output_file.png
Many thanks to titanous, metacollin, dholm,keenerd and chleggett from whom I compiled this code.
More to come...