Anyone tried a LimeSDR USB/mini with a RPi4

#1

Looking at the information I could find about the new RPi4, it does not technically have full USB 3.0 throughput.
“USB is provided via an external VLI controller, connected over a single PCI Express Gen 2 lane, and providing a total of 4Gbps of bandwidth, shared between the four ports.”

The VLI chip (VL805-Q6) can support PCIe version 2 x16, I’ve seen PCIe x16 cards using this chip that support 4 full speed USB3.0 ports, but at a guess the SoC (BCM2711B0) in the RPi4B can only provide x1.

So anyhow instead of the typical 5Gbps for a single USB 3.0 port there is only 4Gbps shared between all 4 USB ports. I’m curious if anyone has tried a LimeSDR with this, using only one USB 3.0 port (for maximum performance) with nothing else in the other three USB ports.

So far I’ve read that the:
Airspy works, the
SDRplay works,
HackRF no information yet,
USRP no information yet,
BladeRF 2.0 no information yet,
RTL-SDR dongles, some people have reported that they can not get them to work and only see the following error messages “rtlsdr_read_reg failed with -7” and “rtlsdr_write_reg failed with -7”. But traditionally register read and write errors are associated with low voltage and the latest RPi4B uses a more power than the previous RPi hardware, so it could well just be a power issue.

Baseline (no external hardware connected, no overclocking)

Raspberry Pi 2 B  1.6 watts (idle) to 3.7 watts (stress --cpu 4)
Raspberry Pi 3 A+ 1.2 watts (idle) to 5.4 watts (stress --cpu 4)
Raspberry Pi 3 B  2.1 watts (idle) to 5.9 watts (stress --cpu 4)
Raspberry Pi 3 B+ 2.9 watts (idle) to 6.4 watts (stress --cpu 4)
Raspberry Pi 4 B  3.4 watts (idle) to 7.6 watts (stress --cpu 4)

The current recommended RPi4B power supply should output at least 3A@5V which should be enough to also power a LimeSDR (which I would guess would need 4.5 to 5.5 watts).

Anyhow quickly circling back to my original question, do you own a RPi4, if so does it work with the LimeSDR (USB or mini) ?
And with the “USB 3.0 port” (at least 20% lower maximum throughput on the RPi4, if only one device is connected) was there any issues, say running two RX channels at the maximum sample rate (2RX x 61.44MSPS x 2IQ x 12bits / 8bits = 368.64 MB/sec) ?
Any issue if you used a few low traffic devices on the other USB ports at the same time, say a keyboard and a mouse, did that cause any samples to drop.

#2

This!! I’m currently trying to setup my RPI4 with GNURadio and the LimeSDR Mini for wide-bandwidth RX reception, so hopefully that works fine.

#3

It works, however i was unable to set srsLTE or any LTE setup on the RapI 4,4GB with limesdr mini. do you have luck

#4

How did you set up the LimeSDR source block with GNU Radio? Also, what OS did you use? I installed raspbian, is that ok?

#5

I would probably use pybombs (it is how I install on x86_32/x86_64):
https://www.gnuradio.org/blog/pybombs-the-what-the-how-and-the-why has a good overview, but I would use the manual commands from the current README.md at https://github.com/gnuradio/pybombs

Basically pybombs looks at your system, determines what is missing and installs required packages (git, compilers,…), and then almost everything else is downloaded, compiled and installed from the latest source code using the current release/maintenance branch. It is slower to compile everything from source code, but the folder where everything is installed will be in a known good working state. Pybombs may have problems with some unique/uncommon distributions, but it should work for anything based on Debian (deb e.g. Ubuntu, Raspbian), Fedora (rpm e.g. RedHat, CentOS), Arch (pacman) and probably OSX (port).

You could even use pybombs to install the just released (well about 3 weeks ago) gnuradio 3.8 (“pybombs install gnuradio38”) if you really want lots of new and unexplored problems to deal with, since they have a recipe for that, but the default install is gnuradio37 (https://github.com/gnuradio/gr-recipes), and every module still expects to use that as the default. There is a lot of wisdom in picking the well travelled path of least resistance, where most problems have been found, fully dissected and solved. And with a standard “pybombs install gnuradio” you know that a simple “pybombs install gr-limesdr” will add all required dependencies. to get a lime board working with gnuradio 3.7.

The only thing that confused me about pybombs initially when I used it was that before I could use any of the installed programs (grc,gqrx,limesuite,), either after a reboot or on opening a new terminal was that I needed to do something like the following (depending on which directory you initially picked to install) to modify my environment to see that executables:

$ source ~/prefix/setup_env.sh
$ gnuradio-companion
Ubuntu 19.04 support?
#6

I successfully connected my LimeSDR mini to a Raspberry PI 4 (4GB). It was very simple. However, even with the USB3 port used, and no other peripherals connected, 2MSPS was the maximum I could use without dropping samples.

I imagine that USB is not the bottleneck here. USB 2.0 should be able to handle 8MSPS. When I have some more time I’ll investigate the USB speeds on the Pi4 further, although there seems to be a lot of discussion regarding this:

https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=245931
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=244421

1 Like