Gr-limesdr - LimeSDR plugin for GNURadio

jamesg466, I have been able to build it on my Mac just fine following the usual

git clone https://github.com/myriadrf/gr-limesdr
cd gr-limesdr
mkdir build
cd build
cmake …
make
sudo make install

still working on using it…I seem to be confused with device number. LineUtil gives me:

MacBook-Pro:build scott$ limeutil --find
  * [LimeSDR-USB, media=USB 2.0, module=STREAM, addr=1d50:6108, serial=0009070105C6102B]

FYI:
MacBook-Pro:build scott$ limeutil --info
######################################################
## LimeSuite information summary
######################################################

Version information:
  Library version:	v17.09.1-release
  Build timestamp:	2018-01-13
  Interface version:	v2017.9.0
  Binary interface:	17.09-1

Which number do I use in Device Number? GRC complains when I put in 0009070105C6102B or 9070105C6102B as I expect it expects a base 10 value. When I put in the decimal equivalent number of 2540975763623979 I get the following runtime error:

  File "/usr/local/lib/python2.7/site-packages/limesdr/limesdr_swig.py", line 134, in make
    return _limesdr_swig.source_make(device_number, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1)
OverflowError: in method 'source_make', argument 1 of type 'int'

I assume I’m just being dumb here and using the wrong value. Any suggestions for the PAC would be appreciated.

Also a few would love to have request for the driver. Would it be possible to expose the values in the drop-down dialogs of programmatic manipulations? I understand why you would want to make thing easier for user with drop downs. Also, it would be of great value to me to have access to the RSSI value from the lnaW. If there are no limitations in the Lime board I would be happy to work on this and contribute back the code to a pull request.

Further, it seems that these values are not dynamic. The ability to programmatically adjust basic values such as frequency without rebooting your GR flow is critical.

Just heads up: gr-limesdr has been updated. Bugfixes, Windows support, documentation update, more examples added.

3 Likes

Can you add AGC functionality for gr-limesdr? So I can take it as an example in other program. Thanks.

DVB-T transmitter example added in the latest commit. Documentation is here.

2 Likes

Hi,

as a linux newbie, my question is :

How can we update gr-limesdr package from github using terminal commands?

Even am not sure which number to use, were you able to figure out which device number to use?

Hi Nawfal_M,

Uninstall old version of gr-limesdr by typing:

cd gr-limesdr/build
sudo make uninstall
make clean

Then update to the latest version of gr-limesdr by typing:

cd …
git pull origin master
cd build
cmake …
make
sudo make install

Hi Santo,

In the latest version serial number is used in order to identify board. You can find your serial number by using two methods:

  1. By running flow graph with LimeSuite block in it and no serial number. The list of LMS devices is displayed in GNU Radio console and then you can just copy and paste serial number.

GNU Radio serial

  1. By running “LimeUtil --find” command in Linux terminal window. The list of LMS devices is displayed as well as serial number.

Terminal serial

Thanks a lot Osvald…I’ll test it tomorrow

Hi Osvald,

I found the serial number like you mentioned earlier,

But when i enter the serial number I get the following error and the LimeSDR is not detected in GNU console when I run the flow graph

It works perfectly fine in pothosware but I am not able to connect it trough GNUradio.

Hi, Santo.

I see you are using older version where Device Number is used. With this version you can enter 0 in Device Number field, however I strongly recommend updating gr-limesdr plugin and using Device Serial instead.

Thanks a million for this Osvald. This makes it possible for me to run gnuradio-companion with all of my SDRs available as sources (and/or sinks as appropriate). Suggestion for the docs that you point out that the CH0/CH1 H/L/W are the antenna selectors. I figured that was what they had to be (and was right) but it didn’t come across in the docs.

Still looking for a case to replace the Aluminum case that I got originally with the build.

1 Like

I have gnu radio plugin loaded in a flow graph. It will generate a carrier, at the commanded freqency. I have checked all the settings with the app lime suite gui.
The board will run the cdma test OK.
What does not happen is none of the modulations seem to be getting to DACS which should be getting data at the tx sample rate, I am receiving on other equipment to verify modulation.
The same flowgraph does have the expected modulation when run on an ETTUS usrp. I have followed the gnuradio installation instructions for this board.
I am using the limesdr usb board on a windows 7 box. Since the lime suite gui is working, I think its some problem with the python code underlying the limesuite tx sink. I did put in the device serial number, and it is controlling the carrier freq and amplitude, just that any modulations I connect are not going anywhere. Another user here has the same problem, nice carrier but no modulation on an independantly installed setup and the same board.

Hi @chris451,

Are you using the latest gr-limesdr version?

Hi @chris451,

Could you provide the flow graph you are trying to execute? Which GNU Radio version are you using? Did it come with Pothos SDR development environment or is it standalone GNU Radio application?

I have tested gr-limesdr in full MIMO configuration (transmitting BPSK signals at two different frequencies with both TX channels and receiving them at the same time at the same frequencies with both RX channels) and found some obvious bugs in NCO offsets implementation.

I’ve been using sample rate of 6 MHz, center frequency of 2.44 GHz, NCO offsets of -2MHz and +2MHz for channels 0 and 1, respectively. Expected signal is shown in below picture:
bpsk_spectrum

However, with spectrum analyzer I saw only signal from TX channel 1 actually present over-the-air, and none of the signals was correctly received.

All this works just fine with UHD and Osmocom blocks, so this is obviously gr-limesdr issue.

P.S. Probably I should report it in github in a first place, just in case I put it there as well.

Hi, @ccsh

Thank you for posting this. Could you share the flow graph you are trying to execute?

Are you using negative numbers as NCO frequency values? Currently you should use positive numbers and control NCO with CMIX mode setting.

Does gr-limesdr work with gnuradio built on python3.5 or is 2.7 mandatory?

Hello , I installed GnuRadio 3.7.13.4 on Ubuntu 18.04 LTS and LIMESDR package without problem.

I just loaded the file example LimeSDR_USB_DVB_T_Demo_2k.py’

But when start the flow appear the error below :

Generating: ‘/home/sam/Scrivania/gr-limesdr/examples/LimeSDR_USB_DVB_T_Demo_2k.py’

Executing: /usr/bin/python -u /home/sam/Scrivania/gr-limesdr/examples/LimeSDR_USB_DVB_T_Demo_2k.py

Warning: failed to XInitThreads()
Traceback (most recent call last):
File “/home/sam/Scrivania/gr-limesdr/examples/LimeSDR_USB_DVB_T_Demo_2k.py”, line 219, in
main()
File “/home/sam/Scrivania/gr-limesdr/examples/LimeSDR_USB_DVB_T_Demo_2k.py”, line 207, in main
tb = top_block_cls()
File “/home/sam/Scrivania/gr-limesdr/examples/LimeSDR_USB_DVB_T_Demo_2k.py”, line 120, in init
self.lime = limesdr.sink(‘1D423E44F4800C’,
AttributeError: ‘module’ object has no attribute ‘sink’

You have to give respective sink block to the transmitter(Lime Suite Sink (TX)) side,only because of that it is actually throwing an error object has no attribute sink…