FlightAware Discussions

Spektrum - How-to Speedily Scan RF Noise in band 24MHz ~ 1800MHz

The software “Spektrum” scans from 24 MHz to 1800 MHz, which is the full range of a DVB-T/ProStick’s RTL chip. It is pretty fast, and conducts one complete sweep in less than 5 minutes (depends on speed of Windows computer). If left running, it keeps on repeating the sweep.

This software is available in two versions
(1) For Windows
(2) For Linux

Click the link below, and in page opened, under latest version (currently 2.1.0), click “Assets” to expand it and display Windows & Linux downloads.

https://github.com/pavels/spektrum/releases

How to Use Spektrum on WINDOWS computer

IMPORTANT NOTE:
The DVB-T or ProStick or any other dongle should be plugged into the Windows computer to run the scan. It cannot remotely access a dongle which is plugged into another computer such as a Pi.

Windows requires dongle’s Windows driver “Zadig”. If you have not yet installed Zadig, then please see this how-to (use only the step “1-Driver”):

How-to Install Pro Stick & DVB-T on Windows

(1) Download Spektrum for Windows

Direct Download Link for Current Latest release for Windows: spektrum-win64.zip

Check Download page for Latest Release (on page opened, under latest version click “Assets” to expand and show download links):
https://github.com/pavels/spektrum/releases

(2) This sotware does not need installation. Unzip the file, and inside you will find a file named spectrum.exe. Double-click it to start the software.

image

 

(3) Plug the dongle in your Windows Computer. If you have a dongle without integral filter, it will show all the signal existing in your area.

(4) Connet the antenna to yor dongle. Conduct first scan without any external filter (i.e. antenna directly connected to the dongle). Next conduct scan with external filter inserted between antenna and the dongle.

(5) Double click the file spektrum.exe and the program will start

(6) When the program starts, it will detect and list the dongle as shown below. Click on the dongle name, and wait few seconds for scan to start.

image

 

(7) Click on the “Measure” button
image

 

(8) On “Measure” window, “Gain” will be by default 50 (it is actually 5 dB). Adjust gain by bringing mouse pointer above 50 and turning mouse’s scroll wheel. Set it to maximum 496 (it is actually 49.6 dB).

image

(9) Leave her to run for 5 minutes so that it repeats scan several times.

(10) Repeat scan with a filter inserted between Antenna and Dongle.

Here are 3 scans I have done recently:

NOTE-1:
The scans below were done in an urban area with strong Cell/Mobile, TV, FM, Fire, Ambulance, Taxi, and other communication signals at VHF, UHF and Microwave frequencies. Other locations may not have such severe RF interference.

NOTE-2:
The scan 1 shows RF noise picked by antenna and processed without any filter, The scans 2 & 3 were done with filters, and show how filters remove this noise.

Scan 1 of 3 - FA Antenna + Generic DVB-T (no internal or external filter)

Thumb-Generic DVB-T
CLICK ON IMAGE TO SEE LARGER SIZE

 

Scan 2 of 3 - FA Antenna + ProStick Plus (Only Internal filter of ProStick Plus. No External filter)

image
CLICK ON IMAGE TO SEE LARGER SIZE

 

Scan 3 of 3 - FA Antenna + ProStick Plus (with internal filter) + External Filter (FA Light Blue)

imageimage
CLICK ON IMAGE TO SEE LARGER SIZE

 

3 Likes

Install Spektrum on Debian10.6 amd64 and Ububtu 20 amd64 (both with GUI)

Wont work on Linux distros without GUI, such as Raspbian Lite or Piaware SD card image.

1 - INSTALL

wget https://github.com/pavels/spektrum/releases/download/2.1.0/spektrum-linux64.tar.gz  

sudo tar xvzf spektrum-linux64.tar.gz -C /usr/share/   

sudo ln -s /usr/share/spektrum/spektrum /usr/bin/spektrum  

 

2- PREPARE rtl-sdr

2.1 BlLAKLIST

2.1.1 - Create new blank file rtl-sdr.conf

sudo nano /etc/modprobe.d/rtl-sdr.conf   

2.1.2 - Copy-paste following code in the above file:

blacklist dvb_usb_rtl28xxu   

2.1.3 - Save and close the file.

2.2 - ADD RULES

**2.2.1 - Create new blank file 20.rtlsdr.rules

sudo nano /etc/udev/rules.d/20.rtlsdr.rules   

2.2.2 - Copy-paste following code in the above file:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", GROUP="adm", MODE="0666"   

2.2.3 - Save and close the file.
 

2.3 - UNPLUG & RE-PLUG DVB-T / ProStick (OR REBOOT COMPUTER)

 

3 - RUN

Any time you want to run Spektrum, issue following command from Debian’s terminal.

Note:
(1) Wont work from SSH terminal. Use Debian’s terminal.
(2) Leave terminal open. Closing terminal will close Spektrum.

spektrum  & 

 

1 Like

Actually, if one is running something like MobaXterm as your terminal emulator, and connected via ssh, and X11-forwarding is enabled, the spektrum session opens on your client PC. Of course, if you are on the Debian PC itself, it will open there as well. Works fine for me under Debian (Buster) 64-bit.
image

I believe the application is 64-bit, so the OS needs to be 64-bit. If Raspberry PI OS were your choice, the 64-bit version of Raspberry PI OS would need to be used (which is in beta on this date) would need to be used. There is also 64-bit Ubuntu Desktop for Pi4 only if one is so inclined.

1 Like

Too bad Spektrum doesn’t allow font sizing. The display is unreadable on my 4k notebook even with the scale set to maximum 350%.

Thanks a lot for this very useful info. :+1:

 

I tried it on Piaware, but it failed as the Linux version is clearly for 64-bit:
spektrum-linux64.tar.gz

image

 

I have Raspbian 64-bit installed on my RPi-4. Tried on it, but failed

image

 

Checked un-zipped files of spektrum, found it is not only 64-bit, but specifically amd64, so wont work on RPi-4 (aarch64)

image

 

Tried by adding architecture amd64 to RPi-4, but still failed:

image

After some digging, it appears that to run spektrum on a 64-bit OS platform that is not X86_64 chip, one will need to

  1. install the version of java (OpenJDK 1.8 recommended due to Oracle now charging a license fee for Java) suitable for that OS
  2. find and download the Java class files for gluegen and jogl and place them in relative folder spektrum/lib (one place to look is http://www.java2s.com/Code/Jar/g/gluegen.htm and http://www.java2s.com/Code/Jar/j/jogl.htm )
  3. adapt the ‘spektrum’ shell script to use the current OS version of Java and the platform-specific versions of gluegen and jogl downloaded for that platform

This is from a very quick first glance at the pieces/parts that make up the distribution; there could be more platform-specific issues. If one is ambitious, I suppose one could get it running on a Pi. I did, however, find the application very responsive on a 10-year old dual core laptop + 4GB memory running 64-bit Debian (Buster) 10.6 and can live with the font issues (it is looking for Arial font, defaults to something else very small). My gut tells me performance may not be up to expectations on the Pi if/when one got it all running on that platform. Maybe the Pi4 is up to the task. Up to the individual to pick and choose your challenges (opportunities?) and rabbit holes. :wink:

1 Like

Build Spektrum on MacOS/x86_64

First of all, thanks for this great guide! I have been kind of obsessed with Spektrum since I read abcd567's mention from back when, because a $35 spectrum analyzer had never appeared even in my wildest dreams. A GHz analyzer. What?!

I don't have easy access to a WinTel or LinTel device. Besides Raspberry Pi, my main workstations are MacTel. Whereas ARM is still giving me segment fault, I finally managed a Mac/x86 build after patching pavels' source. Specifically, the "build" part focuses on his rtl-sdr fork.

Prerequisites

  • JRE (Java runtime environment), obviously. Pre-Big Sur, this would be a no-brainer because MacOS comes with one Java preinstalled. But if you use Big Sur (MacOS 11) or later, you are on your own.

    In my test, I didn't install OpenJDK because I ran into some complexities in my work prior to this. Instead, I let Processing deal with Java licensing, because prepackaged Processing, like prepackaged Spektrum, comes with JRE, and I already had Processing installed..

    *If you do use OpenJDK, make sure to delete accessibility.properties.

  • cmake. I was able to build from source, but it takes up too much disk so I replaced it with prebuilt package. (Whereas http://sdr.osmocom.org/trac/wiki/rtl-sdr describes autoreconf as an alternative, I found it troublesome on some platforms; in fact there doesn't seem to be a Mac port for it. Although automake is supposed to be an alternative to autoreconf, I didn't have time to try it.)
  • libusb 1.0. I used MacPorts to install a prebuilt package, although you can also build from source. (I know that Homebrew is all the rage; in fact libusb only officially recognize Homebrew. But I already use XCode command lines from App Store. Installing another XCode command line tool feels like calling for trouble to me. (Homebrew forces you to download XCode CLT from their custom site.)
    sudo /opt/local/bin/port install libusb
    One caveat with MacPorts is that it installs everything (including itself) under /opt file system instead of the traditional /usr.
    • Theoretically the installer should add /opt/local/bin to your PATH. But if you already have .profile in your home directory, it won't. So you may want to add to PATH yourself; otherwise you need to invoke the full path.
    • In addition to PATH, many build systems also do not include the more modern /opt paths. This is why I had to patch pavels' code. (The patch is already merged back so it now works with both MacPorts and HomeBrew.)

    Downloads

    • Spektrum Linux tarball.
      curl -Ospektrum-linux64.tar.gz https://github.com/pavels/spektrum/releases/download/2.1.0/spektrum-linux64.tar.gz
    • pavels’ rtl-sdr fork.
      git clone https://github.com/pavels/rtl-sdr
    • Compile and insall

      In this section, I shall assume that you only want to install into your own home directory so everything is done as your own user. Also assume that the tarball as well as rtl-sdr git source are both directly under the home directory.

    1. Install Spektrum Linux tarball.
      cd # return to $HOME
      tar xzf spektrum-linux64.tar.gz
      
    2. Compile librtlsdr and librtlpower.
      cd ~/rtl-sdr
      mkdir build
      cd build
      /Applications/CMake.app/Contents/bin/cmake ../
      make
      
      • /Applications/CMake.app/Contents/bin/cmake is the path used by cmake installer. If you install cmake by some other method or compile it from source, adjust path accordingly.
      • CMake’s Mac port also has a GUI for you to use. I am just too lazy to learn.
    3. (Continue from previous step. You are still in ~/rtl-sdr/build/) Install librtlsdr and librtlpower.
      for name in sdr power; do cp -p src/lib$name.dylib ~/spektrum/lib/; done
      
    4. Update spektrum script.
      cat <<EOM>~/spektrum/specktrum
      #!/bin/sh
      # This is a MacOS hack specific to "borrow" preinstalled Processing 3.5.4
      JRE_HOME=$HOME/Applications/Processing.app/Contents/PlugIns/jdk1.8.0_202.jdk/Contents/Home/jre
      APPDIR=$(dirname "$0")
      
      $JRE_HOME/bin/java -Djna.nosys=true -Djava.ext.dirs="$JRE_HOME/ext" -Djava.library.path="$APPDIR:$APPDIR/lib" -cp "$APPDIR:$APPDIR/lib/spektrum.jar:$APPDIR/lib/core.jar:$APPDIR/lib/jogl-all.jar:$APPDIR/lib/gluegen-rt.jar:$APPDIR/lib/jogl-all-natives-linux-amd64.jar:$APPDIR/lib/gluegen-rt-natives-linux-amd64.jar:$APPDIR/lib/controlP5.jar:$APPDIR/lib/bridj.jar:$APPDIR/lib/rtlspektrum.jar:$APPDIR/lib/serial.jar:$APPDIR/lib/jssc.jar" spektrum "$@“
      EOM
      ^D
      
      • In the above, ^D means to press “control” and “D” keys together.
      • The JRE_HOME is specific to pre-installed Processing 3.5.4 that includes jdk1.8.0_202. If you use another JRE, use its appropriate path. (If you installed any Java, OpenJDK or Oracle, there are many Internet documents to help you find the JRE_HOME. That is where all the “fun” begins.)

    Run spektrum

    From terminal,
    ~/spektrum/spektrum
    
    See this thread for sample scans.
2 Likes

This clearly shows the ProStick Plus’s saw filter, spec’d for a 1,075 MHz – 1,105 MHz passband. No shortage of noise below 900 MHz however, which the internal filter won’t cut off, versus the external FA filter that cuts down everything outside the vicinity of 1090.

Wondering if the noise below 900 MHz using the internal filter stick alone has a material impact on 1090 performance, versus the external filter that gets rid of everything out-of-band. Especially since SNR below 900 exceeds 1090 at several points.

Results of a test which I conducted in November 2016

SAW filter frequency response:
https://www.mouser.com/datasheet/2/412/57215-1500742.pdf

@wmccouch

Another test which I conducted in July 2020