righthalfplane / SdrGlut

SdrGlut is a simple software defined radio - using glut and glui for its interface
MIT License
86 stars 15 forks source link
cross-platform digital-filters liquidsdr sdr soapysdr software-defined-radio

SdrGlut

Forced to move to gitlab - go there for lastest updates

SdrGlut V1.32 - Mostly Improvements and Clean up.

What is new ?

SdrGlut now has a device sync option where all open device windows track to the same frequency.
SdeGlut can now use more points in the FFT display

https://github.com/righthalfplane/SdrGlut/releases/tag/v1.32

If you are new to SdrGlut, please view the introduction video -

A users group is just starting - you can ask questions there -

https://groups.google.com/g/sdrglut-users

SdrGlut is a simple software defined radio player. Using glut for drawing and glui for its dialogs makes it tiny compared to programs that use QT5 or wxWidgets. SdrGlut uses liquid-sdr and SoapySDR to preform the SDR calculations. The audio is handled by OpenAL and RtAudio.

SdrGlut has a new Voice Command Module. It can be programed to record any frequency in any mode at any time. Listen is an example of a program that receives the data. Listen can decode AM, FM, NBFM, USB, LSB and output the audio to the speakers or another program. SdrGlut now has digital filter design mode. It can do highpass, lowpass, bandpass and bandstop filters. Best of all - it generates a c++ program that implements and tests the filter - so there is no question about how to make it work. It adds Voltage bias for powered antennas and Direct Sample Mode for RTL devices. It adds a window that can use the transmit capable SDRs as a signal generator for testing AM, NBFM, USB, and LSB devices. It has a prebuild exe for macOS, a zipped folder for Windows.

Demo videos

Installation of RtAudio

The lastest version of SdrGlut needs to have RtAudio installed. Here are videos showing how to do the install on various systems. The Raspberry Pi can follows the instructions that were given for Ubuntu 18.04.

Video of RtAudio installation on:

Problems With libliquid

There are recent versions of libliquid that have the same version number and need different function calls. In MainSource/firstFile.h the defines -

define LIQUID_VERSION_4 1

define WINDOWS_LONG_NAMES 1

can to be turned on or off as needed. The LIQUID_VERSION_NUMBER logic works correctly about 80 percent of the time.

Installation steps on Ubuntu 22.04

In the file "MainSource/firstFile.h" comment out the line -

//#define WINDOWS_LONG_NAMES 1

Then -

bash
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install libsoapysdr-dev
sudo apt-get install libopenal-dev
sudo apt-get install libliquid-dev
sudo apt-get install freeglut3-dev
sudo apt-get install libalut-dev
sudo apt-get install librtaudio-dev
sudo apt-get install git
cd ~/Desktop
git clone --depth=1 https//github.com/righthalfplane/SdrGlut.git
cd SdrGlut
make -f makefileUbunta -j 4
./sdrglut.x

Install on Raspberry pi

SdrGlut runs nicely on the Raspberry pi 4 - Do not know if slower version have enough horsepower for it

To do the normal edition of Raspbian - follow the uBuntu instructions with -

make -f makefileRaspbian

instead of

make -f makefileUbunta

The SDRPlay Edition

This is what I did to get SdrGlut running on the SDRPlay verison of Raspbian.

The SDRPlay verison Raspbian has the SDRPlay libraries already installed.

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install build-essential

sudo apt-get install libopenal-dev

sudo apt-get install libliquid-dev

sudo apt-get install freeglut3

sudo apt-get install freeglut3-dev

sudo apt-get install libalut0

sudo apt-get install libalut-dev

sudo apt-get install git

cd ~/Desktop

git clone https://github.com/righthalfplane/SdrGlut.git

cd SdrGlut

make -f makefileRaspbian

./sdrglut.x

added support for NetSDR -

cd ~/Desktop

git clone https://github.com/pothosware/SoapyNetSDR.git

cd SoapyNetSDR

mkidr build

cd build

cmake ../

make -j 4

sudo make install

added support for LimeSDR -

cd ~/Desktop

git clone https://github.com/myriadrf/LimeSuite.git

cd LimeSuite

mkidr build

cd build

cmake ../

make -j 4

sudo make install

Install on MacOS 12.4 with brew

This is a copy of some of the instruction from -

https://github.com/pothosware/homebrew-pothos/wiki

brew tap pothosware/homebrew-pothos

brew update

brew install soapyremote

brew install soapyrtlsdr

brew install soapyhackrf

brew install soapybladerf

brew install soapyairspy

brew install soapyairspyhf

brew install soapyredpitaya

brew install soapyiris

brew install limesuite

brew install liquid-dsp

brew install rtaudio

brew install libsndfile

cd ~/Desktop

git clone --depth 1 https://github.com/righthalfplane/SdrGlut.git

cd SdrGlut

make -f makefileMACINTOSH

./sdrglut.x

To compile with the GUI envoke - SdrGlut.xcodeproj

Install on MacOS 12.4 (M1) with brew

This is a copy of some of the instruction from -

https://github.com/pothosware/homebrew-pothos/wiki

brew tap pothosware/homebrew-pothos

brew update

brew install libusb

cp /opt/homebrew/include/libusb-1.0/libusb.h /opt/homebrew/include/

brew install soapyremote

brew install soapyrtlsdr

brew install soapyhackrf

brew install soapybladerf

brew install soapyairspy

brew install soapyairspyhf

brew install soapyredpitaya

brew install soapyiris

brew install limesuite

brew install liquid-dsp

brew install rtaudio

brew install libsndfile

cd ~/Desktop

git clone --depth 1 https://github.com/righthalfplane/SdrGlut.git

cd SdrGlut

make -f makefileM1Brew

./sdrglut.x

To compile with the GUI envoke - SdrGlut.xcodeproj

added support for NetSDR -

cd ~/Desktop

git clone https://github.com/pothosware/SoapyNetSDR.git

cd SoapyNetSDR

mkidr build

cd build

cmake ../

make -j 4

sudo make install

added support for SDRPlay -

Get the sdrplay driver installer and install it -

https://www.sdrplay.com/downloads/

SDRplay_RSP_API-MacOSX-3.07.3.pkg

Install SdrGlut on Windows 7 and Windows 10

Install RtAudio

See - above

Install OpenAL -

OpenAL must be loaded on to window. Get the two packages -

OpenAL1.1.CoreSDK

OpenAL 1.1 windows install

from "https://www.openal.org/downloads"

and install them.

Install PothosSDR and SdrGlut -

The easiest way to install SdrGlut is to install the PothosSDR package first -

https://downloads.myriadrf.org/builds/PothosSDR/

Run PothosSDR-2021.07.25-vc16-x64.exe and select

add PothosSDR to system path for all users

full install

git clone https://github.com/righthalfplane/SdrGlut.git

Then use the GUI and go to the directory SdrGlut/Sdrglut-windows and click the project SdrGlut.sln.

Select "Release" and "X64" -

Then select "Start without Debugging", SdrGlut should compile and start running.