# 80MHz bandwidth with LimeSDR-Mini and GQRX [](https://travis-ci.org/gasparka/spectrogram)

[LimeSDR-Mini](https://www.crowdsupply.com/lime-micro/limesdr-mini) diagram:

_**Note:** DC-removal is based on [Linear-phase DC Removal Filter](https://www.dsprelated.com/showarticle/58.php) (Dual-MA 1024 taps)_
## Install
Install the helper script to bootstrap the Docker images (Linux PC/ARM architectures):
`pip install spectrogram`
_**Rasbian note:** Use `pip3`. Executable is installed to `/home/pi/.local/bin/spectrogram`, which is not on PATH by default._
_**Ubuntu 20 note:** Does not work! Use 18 :)_
## Usage
Invoking `spectrogram` does following: 1. If needed, programs the LimeSDR-Mini with FPGA accelerator ( restore with spectogram --fpga_restore) 2. Starts the local ‘SoapySDR-Remote’ server 3. Starts GQRX
_**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 [See demo notebook](https://github.com/gasparka/spectrogram/blob/master/doc/usage_demo.ipynb)
### Accuracy vs floating-point model
This is a fixed-point accelerator, accuracy against the floating-point model has been verified.

[Reproduce](https://github.com/gasparka/pyha/blob/develop/pyha/applications/spectrogram_limesdr/spectrogram_limesdr.ipynb)
### 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.
 [Reproduce](https://github.com/gasparka/spectrogram/blob/master/doc/131k_vs_512.ipynb)
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.
Metadata
Release files for spectrogram 1.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| spectrogram-1.0.9.tar.gz | 4.5 kB | Without provenance | Details for spectrogram-1.0.9.tar.gz |
Release files / spectrogram-1.0.9.tar.gz
| Download URL | spectrogram-1.0.9.tar.gz |
|---|---|
| Size | 4.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
645f36cf0689b5f01dd6e5f8ee16b9777df78251fa5f2534d108412c1bf14875
|
|
BLAKE2b-256 checksum How to use checksums |
b35acb62bfcaad04f29597f9134a6d97db0aa48201526a4d7b243ffde238b918
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.6.7
|
Security for spectrogram 1.0.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.