80Mhz bandwidth spectrogram on LimeSDR-mini

Accelerated on the FPGA.


This is extremely cool, thanks for sharing and looking forward to trying this out!

I have integrated the driver with SoapySDR-remote and added ARM support. Meaning that you can pair your Lime with Raspberry Pi 3 and monitor the 80MHz band from remote locations - datarate is 2.5MB/s.

Also, fixed some shameful bugs (like inverted spectrum) and added comparison against the floating point model. See the repo.

Have fun!

1 Like

gasparka i have not tried your method yet.
it would be great to see this all on fedora 64bit for pi3
fedora 64bit has native armv8 support
i read that the pi3 on 64bit O.S. with ArmV8 instructions really helps samples per second (especially over the built-in wifi)

one more thing
what is the thermal pad (thickness) you used on the limesdr-mini to bond it to the heatsink?
would it do any good to put little heatsink on the top of the limesdr mini (like the ones on a rpi3)?


The driver is ‘Dockerized’…so it should not matter whether you are running Fedora, Raspbian or Ubuntu…

Thickness of the thermal pad is ~2mm, small heatsinks probably wont cut it.

Is it possible to make use of the much lager FPGA on the normal LimeSDR (40k vs 16k on the mini) for things like dual RX - this would mean 160MHz Bandwidth and from the amount of data still in the realm of USB2 and modern SBCs

Probably yes. But note that both receivers use the same LO signal i.e. they have same center frequency. You will have to do external mixing to get unique bands…

Hi Gasparka
I tried your spectrogram with my lime mini and it worked perfectly.

Finally, I could see a FFT natively in a lime FPGA. Thanks!!

I’m interested in understanding deeply your gateware.
Now, I have a question. I’m not a Altera expert.
I understand the FFT is performed in the IP “fft” in source/fft.
The top is called top.vhd

In which point, is the “top.vhd” introduced in lms7_trx_top.bdf?
How Can I know it?


Hi nemo, good to hear that someone is using it.

This is where the ‘top’ is initialized:

So, it is inside the FT601 component on the block diagram.

Oh!!! great!!
thanks, gasparka!!

now that i got my lime mini working again i will be coming back to this and resting it out hopefully.
still have a few things i need to test to make sure its working as it should after i did a repair

could this program be made to run at less bandwidth so we dont have to have a cooler and also could it be made so i can run it from my intel i7-4800mq laptop with built-in haswell and it also has a dedicated AMD FirePro MS100 GPU
would be nice to have versions of default cooling and then super cooling like your pics

Currently it works with 80 or 40 MHz bandwidth. Should definitely work on your Intel CPU.
Supporting even lower bandwidths will require some work in FPGA, which i dont have time for atm. Maybe in the future, i made a GitHub issue to keep it in mind. Thanks.

i didnt know it could work with 40 MHz bandwidth.
i got to give this a try in the near future.

I am currently working on various enchantments, which i hope to complete this month.So i would suggest you to wait until then, it should become easier to use.

Awesome cant wait to try it. Still need to rder some of that 2mm tape.

Very cool. Does this support LimeNET Micro?


Reached a milestone.

  1. Now using GQRX:
  2. Heat dissipation greatly reduced, can run safely for few minutes without heat sinks. Long-term use needs heat sink on the FPGA.
  3. Wrapper script to bootstrap the docker images, usage should be much easier now.

Better docs at https://github.com/gasparka/spectrogram.

It already works on ARM targets, but LimeNet-Micro support is work in progress.


Very cool :sunglasses: