xmikos / qspectrumanalyzer

Spectrum analyzer for multiple SDR platforms (PyQtGraph based GUI for soapy_power, hackrf_sweep, rtl_power, rx_power and other backends)
GNU General Public License v3.0
1.21k stars 246 forks source link

Plutosdr support - settings for good performance - not possible to control the GAIN via the GUI #72

Closed satfan52 closed 5 years ago

satfan52 commented 5 years ago

Hello,

I am running qspectrumanalyzer under Ubuntu 18.04 . To date I ran it sucessfully with my RTL-SDR device and my red pitaya. I recently decided to try to use it too with PlutoSdr as the dynamic range of the RTL-SDR is really quite limited and I need better performance for my measurements.

I installed the plutosdr module with command: sudo apt-get install soapysdr-module-plutosdr

and chose soapypower as the executable in the settings

Unfortunately, so far the results of my sweeps with the plutosdr have been quite disapointing. I connect without problem to the plutosdr by setting "plutosdr" as the "device" in the setting box of the configuration menu but the results of my sweep are random and there is some high uinstabilility with the signal receiced. It clearly does not work reliably in my environment. The latest version of iio-oscilloscope, though not as nice to use qs qspectrumanalyser, works much better in my environment and seems much more reliable, so the issue is not the plutosdr hardware

I tried with a setting of 61.44 MSP for the "sampling rate" with several combination of "bandwidth" but not much success. I also tried reducing the "sampling rate" to 1 or 2Mhz, but no success either. qspectrumanalyser sweeps of course, but the result of the sweep is rather random and unstable, so not exploitable at all.

I thought that maybe I am using the wrong settings, so if someone has already experimented with the plutosdr and succeeded to make the plutosdr working reliably with qspectrumanalyzer, please share your configuration settings here.

Thanks Regards Peter

satfan52 commented 5 years ago

I answer my own post :

The optimal soapy_power settings to use the plutosdr with qspectrum analyser in my environment are:

sampling rate: 61.440 mhz
bandwith : 56 Mhz

If the bandwidth required is less than 56 Mhz then both parameters above can be set to same value: 2 Mhz, 10 Mhz or 20 Mhz depending on goal of the measurement. For instance to catch the spectra of the FM band, setting the two parameters to 10 Mhz will do a better job.

It is especially important to "force the bandwidth" and to "force the sampling rate" as well as to "to reset the stream" after every hop otherwise there will be plenty of artifacts and qspectrum analyzer will be unusable .

additional parameters: --even --fft-window boxcar --remove-dc --force-rate --force-bandwidth --reset-stream

I had to use a 40dB attenuator to avoid overloading the plutopsdr.... This attenuator was NOT needed with iio-osciloscope (see pictures). I suspect there is something suboptimal in the way gain is managed by soapy_power for the plutosdr. The gain settings of the gui have no effect, the default gain is just too high and it is impossible to reduce via the GUI and that's also why I had to add the 40dB attenuator

See picture below for comparison of performance with iio-oscilloscope that uses libiio as oposed to soapy_power. It's clear that iio-oscilloscope is MUCH faster than qspectrum analyser but the interface is not as good.

Important: My plutosdr is shielded

780-830 Mhz

iio-oscilloscope

It would be great if someone could fix this gain issue so I don't have to use an attenuator for my measurement and can tune the gain via the GUI