80MHz bandwidth with LimeSDR-Mini and GQRX
LimeSDR-Mini diagram:
Note: DC-removal is based on Linear-phase DC Removal Filter (Dual-MA 1024 taps)
Install
Works on Linux PC distributions (Ubuntu, Manjaro ...) or ARM boards (Rasperry Pi 3/4, Jetson Nano ...). Install the helper script to bootstrap the Docker images:
pip3 install spectrogram
Rasbian/Ubuntu note: Executable is installed to ~/.local/bin/spectrogram
, which is not on PATH by default. You need to execute it by using full path!
Usage
Invoking spectrogram
does following:
- If needed, programs the LimeSDR-Mini with FPGA accelerator ( restore with
spectogram --fpga_restore
) - Starts the local 'SoapySDR-Remote' server
- Starts GQRX - this connects to the SoapySDR server and displays the spectrogram
Warning: You should cool your LimeSDR-Mini, especially the FPGA. It takes 2.5 minutes for FPGA temperature to rise from 30C to 80C, after which you risk damage!
Works on RaspberryPi:
Notes: Current draw was around 1.25A@5V. 5’ TFT-Display created some noise in the spectrogram - this was not a problem with HDMI display. OTOH HDMI supports higher resolution, which may cap the CPU if GQRX window is too big (updating the waterfall is expensive).
Remote usage
Pair your LimeSDR-Mini with RaspberryPi and execute spectrogram --server_only
- this sets up a SoapySDR-Remote server.
Next, on the monitoring device, execute spectrogram
- this scans for remote devices and opens GQRX if one is found.
Network bandwidth will be around 1 MB/s.
MISC
Using without GQRX
Accuracy vs floating-point model
This is a fixed-point accelerator, accuracy against the floating-point model has been verified.
How is 512 point FFT comparable to 131k FFT??
It's about how many samples are averaged e.g. the 131k FFT averages 131k samples - same can be achieved with 512 point FFT and averaging 256 results - 512*256 = 131k.
In general this is a trade-off - hardware complexity is reduced, but you will lose ~3dB dynamic range.
Cooling solutions
No cooling
Took 5 minutes to go from cold to critical FPGA temperature.
You will risk damaging your board!
Heat-sink on FPGA
Temperature is stable at ~65C after 10 minutes.
Heat-sink everything
Temperature is stable at ~54C after 20 minutes.