Having received an early LimeSDR courtesy of Lime Micro, thanks to Andrew Back and Ebrahim Bushehri, I wanted to see if I could get it working with some of the code I had been developing specifically for the Raspberry Pi 3 with a 7 inch touch screen and HPSDR compatible radios.
The first job was to put the LimeSDR into a small case to protect it.
The second job was to install gqrx on my Intel i5 system and test the board out and to investigate the use of SoapySDR as the method of communication with the device.
I downloaded the source code for SoapySDR and for LimeSuite and built them. This would be a good learning curve as I would have to do that on the Raspberry Pi. As it happens this was a fairly simple operation.
The code for the application was already designed and written to run with multiple protocols to communicate with the radio. The protocol used with HPSDR radios has a new protocol in development and I had implemented both the existing protocol and the new protocol. Adding an additional protocol based on SoapySDR was fairly easy.
The existing code discovers what devices are on the network that it can communicate with. I added a similar module to list the USB devices found with SoapySDR.
In the above screen grab the discovery has found 3 HPSDR devices on the network and the LimeSDR on USB.
The Configure button lets the user select the sample rate and some screen configuration options. The Raspberry Pi can have encoders and push buttons in which case the controls are not needed at the bottom of the display. The Start button starts the application running with the selected radio.
This screen grab shows the LimeSDR tuned to 126.825 MHz in the air band and running at 384K samples. I live close to Gatwick Airport so there are plenty of signals the test a radio with.
Note that the signal strength meter has not been calibrated yet with this radio.
The only LimeSDR specific option coded is to select the antenna connection on the LimeSDR.
Next steps are to get the code running on the Raspberry Pi and to add transmit capability to the LimeSDR code and see if I can make a contact on 2Mtrs and 70cm with the ultimate goal of making a satellite contact.
Note that the Raspberry Pi does not have USB 3.0 but should work with restricted sample rates. We have run it at up to 384K with the HPSDR devices.
The code is written in C using GTK+ for the UI. The DSP engine is WDSP, written by Warren Pratt NR0V, that I have ported from Windows to Linux.