If you have been playing with DATV on the Oscar 100 satellite, then hopefully you know all about the online Wideband Spectrum Monitor provided by the BATC. Its bad form to transmit without keeping an eye on the spectrum because you could be transmitting over someone else. But what if your internet is down, or the online spectrum is undergoing maintenance, or you have a mobile/portable station without internet? Luckily the BATC has shared their backend code for the online version and by using an Airspy SDR we can setup our own version locally running on a Raspberry PI. The reason they are using an Airpy SDR is mostly likely due to the large bandwidth. The wideband transponder is 9 Mhz wide which is more that something like a RTL-SDR dongle can deal with.
The BATC monitor consist of two parts. One is a FFT server which basically retrieves the spectrum data from the Airspy and present it on a websocket connection. The website frontend connects to this websocket and uses the data for its spectrum monitor site. The Quick Tune application gets the spectrum data from the same websocket, even my Longmynd client uses data from that websocket server to display a spectrum.
What we are going to do with this project is connect the SDR to our dish that we use for the Minitiouner by splitting the signal coming from the LNB.
In the rest of this writeup we will setup a pi with the BATC FFT backend and we can optionally load our own simplified web interface based on the original. I also have a modified version of the Rob’s (M0DTS) quick tune where we can point it to get the FFT data from our local pi.
- Raspberry PI (Tested on a Raspberry Pi 3, but others should work as well)
- Airspy R2
Setting up your Raspberry PI
Flash your Raspberry Pi SD card with the Raspberry Pi OS (Legacy) – Buster – released 2022-04-04
Boot Raspberry Pi, connect to network (internet only required for setup)
sudo apt install libairspy-dev libusb-1.0-0-dev libfftw3-dev cmake
Install the Wideband FFT Backend
git clone --recursive https://github.com/BritishAmateurTelevisionClub/eshail-ghy-wb-fft-airspy.git cd eshail-ghy-wb-fft-airspy cd libwebsockets/ mkdir build/ cd build/ cmake .. -DLWS_WITH_SSL=OFF make cd ../../
Plug in your Airspy SDR and run
dmesg to get the serial number of your SDR
Modify main.c with your own serial number
Ctrl-X to exit nano and Y to confirm saving your changes
Your backend should now be up and running.
Lets test by using a modifed version of Rob’s Quick Tune. Changes have been merged back into the original quicktune. Download it here and configure it with the ip of the FFT server you have just setup.
ws://<raspberry pi ip>:7681
If the ip address of your Raspberry PI is 192.168.0.244 then url you want to enter into quick tune configuration is
Restart the Quick Tune application and if all went well then you should now be receiving a wideband spectrum monitor from your own local reception.
If all is working then you can install the FFT backend as a systemd service to start automatically when to raspberry pi boots:
Congratulations, you now have an offline version of Quick Tune running! You can optionally install a web interface in the next step for a browser view of the Wideband Spectrum monitor based on the online version.
Offline Web Interface for the Spectrum Monitor
To install a local offline website of the spectrum monitor we first need to install Apache
sudo apt install apache2 -y
Then clone the simple version from github and copy it to apache2’s /var/www/html folder
git clone https://github.com/tomvdb/eshail-simple-wideband-monitor.git sudo cp -R eshail-simple-wideband-monitor/* /var/www/html/
You should now be able to open your web browser and point it to your Raspberry Pi
Alternative versions have been designed by other Hams. Feel free to send the designs to me and I’ll add it to the github repo. You can find them in the alternative folder
Whats next ?
You now have a local addition to your station to monitor the wideband spectrum monitor. How about adding a 7 inch lcd to your pc and turn it into a clock/spectrum monitor? The possibilities are endless 😉