Paired with a suitable host platform and thanks to the remote capability provided by the driver infrastructure, LimeSDR can be used as the basis of a remote radio head (RRH) that is mounted closer to the antenna, with configuration and streaming carried over an IP link to another host that is running the actual SDR application. An approach that can bring many benefits, including reduced feeder losses, resource management flexibility and those associated with distributed architectures.
When we recently had an external antenna installed for use with LoRaWAN and The Things Network, we also had a wideband antenna — 25MHz to 3GHz discone — put up at the same time for general receive applications and use with certain amateur radio bands.
Feeder was run from both antennas to a steel enclosure mounted on the wall out in the mechanical workshop. This cabinet was sized such that there would be plenty of space left after the LoRaWAN gateway had been fitted, which can be seen top-left in the image below.
Since we had early access to LimeSDR PA and LNA modules also we decided to include these in the build. Adding a coaxial relay for TX/RX switching, since we’ll be operating half-duplex at most, the many different potential uses/bands would make it impossible to select a duplexer, and much of the time when transmitting we may well be using the same frequency for receive anyway.
An Intel Core i5 NUC (bottom-right in the above image) was selected to provide the host platform, as this packs a lot of power into a very compact form factor — particularly when you use an M.2 SSD. This was fitted with 16GB RAM and a 360GB SSD, which should certainly be more than sufficient for our uses. The “Low Speed Custom Solutions” header on the NUC provides access to GPIO and this is used via a transistor on the perf board to switch the TX/RX relay.
The PA is both powered and programmed — to set the tuning for a particular band — via a Micro USB socket. There are also GPIOs on this board and in future we may well move to using these for TX/RX switching, and perhaps also PA/LNA insertion/bypass switching via additional relays.
Ubuntu 16.04 was installed on the NUC and a static IP address configured, along with SSH server for remote access. The LimeSDR driver and Pothos packages took minutes to install from the PPAs.
At this point I feel that I should note that the configuration pictured is purely for testing purposes and in due course the LimeSDR, PA and LNA will all be mounted in their own diecast aluminium enclosures, similar to the LoRaWAN gateway. Subsequent to testing, some filtering may also be added — likely externally mounted — for use with transmit applications.
SoapyRemote
So with Ubuntu and the driver installed, all that was required to turn our SDR hardware platform into one that can be exported over the network was:
$ sudo apt-get install soapysdr-server soapysdr-remote
Following which the SoapySDRServer process could be started (see the above image).
Next, SoapySDRUtil was used on a remote machine without any SDR hardware, to confirm that the Intel Core i5 NUC+LimeSDR could indeed now be accessed as a network resource.
In a follow-up post I plan to put this through its paces and try out a few different applications. Clearly, a Core i5 system with 16GB RAM will be able to support most if not all of these running locally, in addition to simply exporting the LimeSDR as a network resource where the SDR application is then executed remotely. So, this should give us quite a bit of flexibility.